javax.validation

## Interface TraversableResolver

-     public interface TraversableResolver

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

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `isCascadable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType)` Determines if the 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 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 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 Validator)
        `elementType` - either `FIELD` or `METHOD`
      Returns:
        `true` if the 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 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, javax.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 Validator)
        `elementType` - either `FIELD` or `METHOD`
      Returns:
        `true` if the Bean Validation provider is allowed to cascade validation, `false` otherwise

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.