diff --git a/engine/src/main/java/org/hibernate/validator/BaseHibernateValidatorConfiguration.java b/engine/src/main/java/org/hibernate/validator/BaseHibernateValidatorConfiguration.java index dc0de5525..5db0cc56e 100644 --- a/engine/src/main/java/org/hibernate/validator/BaseHibernateValidatorConfiguration.java +++ b/engine/src/main/java/org/hibernate/validator/BaseHibernateValidatorConfiguration.java @@ -488,6 +488,14 @@ default S locales(Locale... locales) { @Incubating S failFastOnPropertyViolation(boolean failFastOnPropertyViolation); + /** + * Allows providing a custom bean tracking voter that helps to identify whether + * the processed beans have to be tracked when cascaded into. + * + * @param processedBeanTrackingVoter the {@link ProcessedBeansTrackingVoter bean tracking voter} to apply. + * @return {@code this} following the chaining method pattern + * @since 9.1 + */ @Incubating S processedBeansTrackingVoter(ProcessedBeansTrackingVoter processedBeanTrackingVoter); } diff --git a/engine/src/main/java/org/hibernate/validator/spi/tracking/ProcessedBeansTrackingVoter.java b/engine/src/main/java/org/hibernate/validator/spi/tracking/ProcessedBeansTrackingVoter.java index 14462de15..bd489b0a7 100644 --- a/engine/src/main/java/org/hibernate/validator/spi/tracking/ProcessedBeansTrackingVoter.java +++ b/engine/src/main/java/org/hibernate/validator/spi/tracking/ProcessedBeansTrackingVoter.java @@ -8,6 +8,14 @@ import org.hibernate.validator.Incubating; +/** + * Helps to determine whether the processed beans of a particular type have to be tracked + * when cascaded into. Used during metadata building step. + *
+ * The default voter returns {@link Vote#DEFAULT} which means that if the bean has any cascading properties, + * it will be considered as such that requires tracking, + * and if there are no cascading properties -- the bean tracking is ignored for this type. + */ @Incubating public interface ProcessedBeansTrackingVoter {