Interface TraversableResolver


public interface TraversableResolver
Contract determining if a property can be accessed by the Jakarta 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

    Modifier and Type
    Method
    Description
    boolean
    isCascadable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType)
    Determines if the Jakarta 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 Validation provider is allowed to reach the property state.
  • Method Details

    • isReachable

      boolean isReachable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType)
      Determines if the Jakarta 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 Validation)
      elementType - either FIELD or METHOD
      Returns:
      true if the Jakarta 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 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 Validation)
      elementType - either FIELD or METHOD
      Returns:
      true if the Jakarta Validation provider is allowed to cascade validation, false otherwise