Browse Source

Specify generic type nullness in spring-r2dbc

See gh-34140
pull/34266/head
Sébastien Deleuze 1 year ago
parent
commit
5be36ce8ce
  1. 11
      spring-r2dbc/src/main/java/org/springframework/r2dbc/core/BeanPropertyRowMapper.java
  2. 7
      spring-r2dbc/src/main/java/org/springframework/r2dbc/core/DataClassRowMapper.java

11
spring-r2dbc/src/main/java/org/springframework/r2dbc/core/BeanPropertyRowMapper.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -125,7 +125,7 @@ public class BeanPropertyRowMapper<T> implements Function<Readable, T> { @@ -125,7 +125,7 @@ public class BeanPropertyRowMapper<T> implements Function<Readable, T> {
* Remove the specified property from the mapped properties.
* @param propertyName the property name (as used by property descriptors)
*/
protected void suppressProperty(String propertyName) {
protected void suppressProperty(@Nullable String propertyName) {
this.mappedProperties.remove(lowerCaseName(propertyName));
this.mappedProperties.remove(underscoreName(propertyName));
}
@ -136,7 +136,10 @@ public class BeanPropertyRowMapper<T> implements Function<Readable, T> { @@ -136,7 +136,10 @@ public class BeanPropertyRowMapper<T> implements Function<Readable, T> {
* @param name the original name
* @return the converted name
*/
protected String lowerCaseName(String name) {
protected String lowerCaseName(@Nullable String name) {
if (!StringUtils.hasLength(name)) {
return "";
}
return name.toLowerCase(Locale.US);
}
@ -147,7 +150,7 @@ public class BeanPropertyRowMapper<T> implements Function<Readable, T> { @@ -147,7 +150,7 @@ public class BeanPropertyRowMapper<T> implements Function<Readable, T> {
* @return the converted name
* @see #lowerCaseName
*/
protected String underscoreName(String name) {
protected String underscoreName(@Nullable String name) {
if (!StringUtils.hasLength(name)) {
return "";
}

7
spring-r2dbc/src/main/java/org/springframework/r2dbc/core/DataClassRowMapper.java

@ -1,5 +1,5 @@ @@ -1,5 +1,5 @@
/*
* Copyright 2002-2023 the original author or authors.
* Copyright 2002-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -21,6 +21,7 @@ import java.util.List; @@ -21,6 +21,7 @@ import java.util.List;
import io.r2dbc.spi.Readable;
import io.r2dbc.spi.ReadableMetadata;
import org.jspecify.annotations.Nullable;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.TypeConverter;
@ -66,7 +67,7 @@ public class DataClassRowMapper<T> extends BeanPropertyRowMapper<T> { @@ -66,7 +67,7 @@ public class DataClassRowMapper<T> extends BeanPropertyRowMapper<T> {
private final Constructor<T> mappedConstructor;
private final String[] constructorParameterNames;
private final @Nullable String[] constructorParameterNames;
private final TypeDescriptor[] constructorParameterTypes;
@ -98,7 +99,7 @@ public class DataClassRowMapper<T> extends BeanPropertyRowMapper<T> { @@ -98,7 +99,7 @@ public class DataClassRowMapper<T> extends BeanPropertyRowMapper<T> {
@Override
protected T constructMappedInstance(Readable readable, List<? extends ReadableMetadata> itemMetadatas, TypeConverter tc) {
Object[] args = new Object[this.constructorParameterNames.length];
@Nullable Object[] args = new Object[this.constructorParameterNames.length];
for (int i = 0; i < args.length; i++) {
String name = this.constructorParameterNames[i];
int index = findIndex(itemMetadatas, lowerCaseName(name));

Loading…
Cancel
Save