Interface TraversableResolver


  • public interface TraversableResolver
    Contract determining if a property can be accessed by the Jakarta Bean Validation provider. This contract is called for each property that is being either validated or cascaded.

    A traversable resolver implementation must be thread-safe.

    Author:
    Emmanuel Bernard
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      boolean isCascadable​(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType)
      Determines if the Jakarta Bean Validation provider is allowed to cascade validation on the bean instance returned by the property value marked as @Valid.
      boolean isReachable​(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType)
      Determines if the Jakarta Bean Validation provider is allowed to reach the property state.
    • Method Detail

      • isReachable

        boolean isReachable​(Object traversableObject,
                            Path.Node traversableProperty,
                            Class<?> rootBeanType,
                            Path pathToTraversableObject,
                            ElementType elementType)
        Determines if the Jakarta Bean Validation provider is allowed to reach the property state.
        Parameters:
        traversableObject - object hosting traversableProperty or null if validateValue is called
        traversableProperty - the traversable property
        rootBeanType - type of the root object passed to the Validator or hosting the method or constructor validated
        pathToTraversableObject - path from the root object to traversableObject (using the path specification defined by Bean Validation)
        elementType - either FIELD or METHOD
        Returns:
        true if the Jakarta Bean Validation provider is allowed to reach the property state, false otherwise
      • isCascadable

        boolean isCascadable​(Object traversableObject,
                             Path.Node traversableProperty,
                             Class<?> rootBeanType,
                             Path pathToTraversableObject,
                             ElementType elementType)
        Determines if the Jakarta Bean Validation provider is allowed to cascade validation on the bean instance returned by the property value marked as @Valid.

        Note that this method is called only if isReachable(Object, jakarta.validation.Path.Node, Class, Path, java.lang.annotation.ElementType) returns true for the same set of arguments and if the property is marked as Valid.

        Parameters:
        traversableObject - object hosting traversableProperty or null if validateValue is called
        traversableProperty - the traversable property
        rootBeanType - type of the root object passed to the Validator or hosting the method or constructor validated
        pathToTraversableObject - path from the root object to traversableObject (using the path specification defined by Bean Validation)
        elementType - either FIELD or METHOD
        Returns:
        true if the Jakarta Bean Validation provider is allowed to cascade validation, false otherwise