FilteredMethodValidationPostProcessor Class — spring-boot Architecture
Architecture documentation for the FilteredMethodValidationPostProcessor class in FilteredMethodValidationPostProcessor.java from the spring-boot codebase.
Entity Profile
Source Code
core/spring-boot/src/main/java/org/springframework/boot/validation/beanvalidation/FilteredMethodValidationPostProcessor.java lines 37–80
public class FilteredMethodValidationPostProcessor extends MethodValidationPostProcessor {
private final Collection<MethodValidationExcludeFilter> excludeFilters;
/**
* Creates a new {@code FilteredMethodValidationPostProcessor} that will apply the
* given {@code excludeFilters} when identifying beans that are eligible for method
* validation post-processing.
* @param excludeFilters filters to apply
*/
public FilteredMethodValidationPostProcessor(Stream<? extends MethodValidationExcludeFilter> excludeFilters) {
this.excludeFilters = excludeFilters.map(MethodValidationExcludeFilter.class::cast).toList();
}
/**
* Creates a new {@code FilteredMethodValidationPostProcessor} that will apply the
* given {@code excludeFilters} when identifying beans that are eligible for method
* validation post-processing.
* @param excludeFilters filters to apply
*/
public FilteredMethodValidationPostProcessor(Collection<? extends MethodValidationExcludeFilter> excludeFilters) {
this.excludeFilters = new ArrayList<>(excludeFilters);
}
@Override
public void afterPropertiesSet() {
super.afterPropertiesSet();
DefaultPointcutAdvisor advisor = (DefaultPointcutAdvisor) this.advisor;
Assert.state(advisor != null, "'advisor' must not be null");
ClassFilter classFilter = advisor.getPointcut().getClassFilter();
MethodMatcher methodMatcher = advisor.getPointcut().getMethodMatcher();
advisor.setPointcut(new ComposablePointcut(classFilter, methodMatcher).intersection(this::isIncluded));
}
private boolean isIncluded(Class<?> candidate) {
for (MethodValidationExcludeFilter exclusionFilter : this.excludeFilters) {
if (exclusionFilter.isExcluded(candidate)) {
return false;
}
}
return true;
}
}
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free