Apply "instance of patten matching" in context and messaging modules
Closes gh-29994
This commit is contained in:
parent
7c50464bba
commit
40672c3715
|
|
@ -760,8 +760,8 @@ public class DataBinder implements PropertyEditorRegistry, TypeConverter {
|
||||||
* @see #doBind(org.springframework.beans.MutablePropertyValues)
|
* @see #doBind(org.springframework.beans.MutablePropertyValues)
|
||||||
*/
|
*/
|
||||||
public void bind(PropertyValues pvs) {
|
public void bind(PropertyValues pvs) {
|
||||||
MutablePropertyValues mpvs = (pvs instanceof MutablePropertyValues ?
|
MutablePropertyValues mpvs = (pvs instanceof MutablePropertyValues mutablePropertyValues ?
|
||||||
(MutablePropertyValues) pvs : new MutablePropertyValues(pvs));
|
mutablePropertyValues : new MutablePropertyValues(pvs));
|
||||||
doBind(mpvs);
|
doBind(mpvs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -925,8 +925,8 @@ public class DataBinder implements PropertyEditorRegistry, TypeConverter {
|
||||||
BindingResult bindingResult = getBindingResult();
|
BindingResult bindingResult = getBindingResult();
|
||||||
// Call each validator with the same binding result
|
// Call each validator with the same binding result
|
||||||
for (Validator validator : getValidators()) {
|
for (Validator validator : getValidators()) {
|
||||||
if (!ObjectUtils.isEmpty(validationHints) && validator instanceof SmartValidator) {
|
if (!ObjectUtils.isEmpty(validationHints) && validator instanceof SmartValidator smartValidator) {
|
||||||
((SmartValidator) validator).validate(target, bindingResult, validationHints);
|
smartValidator.validate(target, bindingResult, validationHints);
|
||||||
}
|
}
|
||||||
else if (validator != null) {
|
else if (validator != null) {
|
||||||
validator.validate(target, bindingResult);
|
validator.validate(target, bindingResult);
|
||||||
|
|
|
||||||
|
|
@ -82,8 +82,8 @@ public abstract class ValidationUtils {
|
||||||
"Validator [" + validator.getClass() + "] does not support [" + target.getClass() + "]");
|
"Validator [" + validator.getClass() + "] does not support [" + target.getClass() + "]");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!ObjectUtils.isEmpty(validationHints) && validator instanceof SmartValidator) {
|
if (!ObjectUtils.isEmpty(validationHints) && validator instanceof SmartValidator smartValidator) {
|
||||||
((SmartValidator) validator).validate(target, errors, validationHints);
|
smartValidator.validate(target, errors, validationHints);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
validator.validate(target, errors);
|
validator.validate(target, errors);
|
||||||
|
|
|
||||||
|
|
@ -170,13 +170,13 @@ public class PayloadMethodArgumentResolver implements HandlerMethodArgumentResol
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
private Flux<DataBuffer> extractContent(MethodParameter parameter, Message<?> message) {
|
private Flux<DataBuffer> extractContent(MethodParameter parameter, Message<?> message) {
|
||||||
Object payload = message.getPayload();
|
Object payload = message.getPayload();
|
||||||
if (payload instanceof DataBuffer) {
|
if (payload instanceof DataBuffer dataBuffer) {
|
||||||
return Flux.just((DataBuffer) payload);
|
return Flux.just(dataBuffer);
|
||||||
}
|
}
|
||||||
if (payload instanceof Publisher) {
|
if (payload instanceof Publisher<?> publisher) {
|
||||||
return Flux.from((Publisher<?>) payload).map(value -> {
|
return Flux.from(publisher).map(value -> {
|
||||||
if (value instanceof DataBuffer) {
|
if (value instanceof DataBuffer dataBuffer) {
|
||||||
return (DataBuffer) value;
|
return dataBuffer;
|
||||||
}
|
}
|
||||||
String className = value.getClass().getName();
|
String className = value.getClass().getName();
|
||||||
throw getUnexpectedPayloadError(message, parameter, "Publisher<" + className + ">");
|
throw getUnexpectedPayloadError(message, parameter, "Publisher<" + className + ">");
|
||||||
|
|
@ -204,11 +204,11 @@ public class PayloadMethodArgumentResolver implements HandlerMethodArgumentResol
|
||||||
if (headerValue == null) {
|
if (headerValue == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
else if (headerValue instanceof String) {
|
else if (headerValue instanceof String stringHeader) {
|
||||||
return MimeTypeUtils.parseMimeType((String) headerValue);
|
return MimeTypeUtils.parseMimeType(stringHeader);
|
||||||
}
|
}
|
||||||
else if (headerValue instanceof MimeType) {
|
else if (headerValue instanceof MimeType mimeTypeHeader) {
|
||||||
return (MimeType) headerValue;
|
return mimeTypeHeader;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
throw new IllegalArgumentException("Unexpected MimeType value: " + headerValue);
|
throw new IllegalArgumentException("Unexpected MimeType value: " + headerValue);
|
||||||
|
|
@ -290,12 +290,12 @@ public class PayloadMethodArgumentResolver implements HandlerMethodArgumentResol
|
||||||
Validated validatedAnn = AnnotationUtils.getAnnotation(ann, Validated.class);
|
Validated validatedAnn = AnnotationUtils.getAnnotation(ann, Validated.class);
|
||||||
if (validatedAnn != null || ann.annotationType().getSimpleName().startsWith("Valid")) {
|
if (validatedAnn != null || ann.annotationType().getSimpleName().startsWith("Valid")) {
|
||||||
Object hints = (validatedAnn != null ? validatedAnn.value() : AnnotationUtils.getValue(ann));
|
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);
|
String name = Conventions.getVariableNameForParameter(parameter);
|
||||||
return target -> {
|
return target -> {
|
||||||
BeanPropertyBindingResult bindingResult = new BeanPropertyBindingResult(target, name);
|
BeanPropertyBindingResult bindingResult = new BeanPropertyBindingResult(target, name);
|
||||||
if (!ObjectUtils.isEmpty(validationHints) && this.validator instanceof SmartValidator) {
|
if (!ObjectUtils.isEmpty(validationHints) && this.validator instanceof SmartValidator sv) {
|
||||||
((SmartValidator) this.validator).validate(target, bindingResult, validationHints);
|
sv.validate(target, bindingResult, validationHints);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.validator.validate(target, bindingResult);
|
this.validator.validate(target, bindingResult);
|
||||||
|
|
|
||||||
|
|
@ -216,11 +216,11 @@ public class PayloadMethodArgumentResolver implements HandlerMethodArgumentResol
|
||||||
Validated validatedAnn = AnnotationUtils.getAnnotation(ann, Validated.class);
|
Validated validatedAnn = AnnotationUtils.getAnnotation(ann, Validated.class);
|
||||||
if (validatedAnn != null || ann.annotationType().getSimpleName().startsWith("Valid")) {
|
if (validatedAnn != null || ann.annotationType().getSimpleName().startsWith("Valid")) {
|
||||||
Object hints = (validatedAnn != null ? validatedAnn.value() : AnnotationUtils.getValue(ann));
|
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 =
|
BeanPropertyBindingResult bindingResult =
|
||||||
new BeanPropertyBindingResult(target, getParameterName(parameter));
|
new BeanPropertyBindingResult(target, getParameterName(parameter));
|
||||||
if (!ObjectUtils.isEmpty(validationHints) && this.validator instanceof SmartValidator) {
|
if (!ObjectUtils.isEmpty(validationHints) && this.validator instanceof SmartValidator sv) {
|
||||||
((SmartValidator) this.validator).validate(target, bindingResult, validationHints);
|
sv.validate(target, bindingResult, validationHints);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.validator.validate(target, bindingResult);
|
this.validator.validate(target, bindingResult);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue