Browse Source

Apply "instance of patten matching" in context and messaging modules

Closes gh-29994
pull/30047/head
divcon 3 years ago committed by Sam Brannen
parent
commit
40672c3715
  1. 8
      spring-context/src/main/java/org/springframework/validation/DataBinder.java
  2. 4
      spring-context/src/main/java/org/springframework/validation/ValidationUtils.java
  3. 26
      spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/reactive/PayloadMethodArgumentResolver.java
  4. 6
      spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/PayloadMethodArgumentResolver.java

8
spring-context/src/main/java/org/springframework/validation/DataBinder.java

@ -760,8 +760,8 @@ public class DataBinder implements PropertyEditorRegistry, TypeConverter { @@ -760,8 +760,8 @@ public class DataBinder implements PropertyEditorRegistry, TypeConverter {
* @see #doBind(org.springframework.beans.MutablePropertyValues)
*/
public void bind(PropertyValues pvs) {
MutablePropertyValues mpvs = (pvs instanceof MutablePropertyValues ?
(MutablePropertyValues) pvs : new MutablePropertyValues(pvs));
MutablePropertyValues mpvs = (pvs instanceof MutablePropertyValues mutablePropertyValues ?
mutablePropertyValues : new MutablePropertyValues(pvs));
doBind(mpvs);
}
@ -925,8 +925,8 @@ public class DataBinder implements PropertyEditorRegistry, TypeConverter { @@ -925,8 +925,8 @@ public class DataBinder implements PropertyEditorRegistry, TypeConverter {
BindingResult bindingResult = getBindingResult();
// Call each validator with the same binding result
for (Validator validator : getValidators()) {
if (!ObjectUtils.isEmpty(validationHints) && validator instanceof SmartValidator) {
((SmartValidator) validator).validate(target, bindingResult, validationHints);
if (!ObjectUtils.isEmpty(validationHints) && validator instanceof SmartValidator smartValidator) {
smartValidator.validate(target, bindingResult, validationHints);
}
else if (validator != null) {
validator.validate(target, bindingResult);

4
spring-context/src/main/java/org/springframework/validation/ValidationUtils.java

@ -82,8 +82,8 @@ public abstract class ValidationUtils { @@ -82,8 +82,8 @@ public abstract class ValidationUtils {
"Validator [" + validator.getClass() + "] does not support [" + target.getClass() + "]");
}
if (!ObjectUtils.isEmpty(validationHints) && validator instanceof SmartValidator) {
((SmartValidator) validator).validate(target, errors, validationHints);
if (!ObjectUtils.isEmpty(validationHints) && validator instanceof SmartValidator smartValidator) {
smartValidator.validate(target, errors, validationHints);
}
else {
validator.validate(target, errors);

26
spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/reactive/PayloadMethodArgumentResolver.java

@ -170,13 +170,13 @@ public class PayloadMethodArgumentResolver implements HandlerMethodArgumentResol @@ -170,13 +170,13 @@ public class PayloadMethodArgumentResolver implements HandlerMethodArgumentResol
@SuppressWarnings("unchecked")
private Flux<DataBuffer> extractContent(MethodParameter parameter, Message<?> message) {
Object payload = message.getPayload();
if (payload instanceof DataBuffer) {
return Flux.just((DataBuffer) payload);
if (payload instanceof DataBuffer dataBuffer) {
return Flux.just(dataBuffer);
}
if (payload instanceof Publisher) {
return Flux.from((Publisher<?>) payload).map(value -> {
if (value instanceof DataBuffer) {
return (DataBuffer) value;
if (payload instanceof Publisher<?> publisher) {
return Flux.from(publisher).map(value -> {
if (value instanceof DataBuffer dataBuffer) {
return dataBuffer;
}
String className = value.getClass().getName();
throw getUnexpectedPayloadError(message, parameter, "Publisher<" + className + ">");
@ -204,11 +204,11 @@ public class PayloadMethodArgumentResolver implements HandlerMethodArgumentResol @@ -204,11 +204,11 @@ public class PayloadMethodArgumentResolver implements HandlerMethodArgumentResol
if (headerValue == null) {
return null;
}
else if (headerValue instanceof String) {
return MimeTypeUtils.parseMimeType((String) headerValue);
else if (headerValue instanceof String stringHeader) {
return MimeTypeUtils.parseMimeType(stringHeader);
}
else if (headerValue instanceof MimeType) {
return (MimeType) headerValue;
else if (headerValue instanceof MimeType mimeTypeHeader) {
return mimeTypeHeader;
}
else {
throw new IllegalArgumentException("Unexpected MimeType value: " + headerValue);
@ -290,12 +290,12 @@ public class PayloadMethodArgumentResolver implements HandlerMethodArgumentResol @@ -290,12 +290,12 @@ public class PayloadMethodArgumentResolver implements HandlerMethodArgumentResol
Validated validatedAnn = AnnotationUtils.getAnnotation(ann, Validated.class);
if (validatedAnn != null || ann.annotationType().getSimpleName().startsWith("Valid")) {
Object hints = (validatedAnn != null ? validatedAnn.value() : AnnotationUtils.getValue(ann));
Object[] validationHints = (hints instanceof Object[] ? (Object[]) hints : new Object[] {hints});
Object[] validationHints = (hints instanceof Object[] objectHint ? objectHint : new Object[] {hints});
String name = Conventions.getVariableNameForParameter(parameter);
return target -> {
BeanPropertyBindingResult bindingResult = new BeanPropertyBindingResult(target, name);
if (!ObjectUtils.isEmpty(validationHints) && this.validator instanceof SmartValidator) {
((SmartValidator) this.validator).validate(target, bindingResult, validationHints);
if (!ObjectUtils.isEmpty(validationHints) && this.validator instanceof SmartValidator sv) {
sv.validate(target, bindingResult, validationHints);
}
else {
this.validator.validate(target, bindingResult);

6
spring-messaging/src/main/java/org/springframework/messaging/handler/annotation/support/PayloadMethodArgumentResolver.java

@ -216,11 +216,11 @@ public class PayloadMethodArgumentResolver implements HandlerMethodArgumentResol @@ -216,11 +216,11 @@ public class PayloadMethodArgumentResolver implements HandlerMethodArgumentResol
Validated validatedAnn = AnnotationUtils.getAnnotation(ann, Validated.class);
if (validatedAnn != null || ann.annotationType().getSimpleName().startsWith("Valid")) {
Object hints = (validatedAnn != null ? validatedAnn.value() : AnnotationUtils.getValue(ann));
Object[] validationHints = (hints instanceof Object[] ? (Object[]) hints : new Object[] {hints});
Object[] validationHints = (hints instanceof Object[] objectHint ? objectHint : new Object[] {hints});
BeanPropertyBindingResult bindingResult =
new BeanPropertyBindingResult(target, getParameterName(parameter));
if (!ObjectUtils.isEmpty(validationHints) && this.validator instanceof SmartValidator) {
((SmartValidator) this.validator).validate(target, bindingResult, validationHints);
if (!ObjectUtils.isEmpty(validationHints) && this.validator instanceof SmartValidator sv) {
sv.validate(target, bindingResult, validationHints);
}
else {
this.validator.validate(target, bindingResult);

Loading…
Cancel
Save