Top Description Inners Fields Constructors Methods
org.hibernate.validator.internal.engine.resolver

pack-priv Class CachingTraversableResolverForSingleValidation

extends Object
implements TraversableResolver
Class Inheritance
All Implemented Interfaces
jakarta.validation.TraversableResolver
Imports
java.lang.annotation.ElementType, java.util.HashMap, .Map, jakarta.validation.Path, .TraversableResolver

Cache results of a delegated traversable resolver to optimize calls. It works only for a single validate* call and should not be used if TraversableResolver is accessed concurrently.
Author
Emmanuel Bernard

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class

Field Summary

Modifier and TypeField and Description
private final TraversableResolver
private final Map<CachingTraversableResolverForSingleValidation.TraversableHolder, CachingTraversableResolverForSingleValidation.TraversableHolder>

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public boolean
isCascadable(Object
object hosting traversableProperty or null if validateValue is called
traversableObject
,
Path.Node
the traversable property
traversableProperty
,
Class<?>
type of the root object passed to the Validator or hosting the method or constructor validated
rootBeanType
,
Path
path from the root object to traversableObject (using the path specification defined by Bean Validation)
pathToTraversableObject
,
ElementType
either FIELD or METHOD
elementType
)

Implements jakarta.validation.TraversableResolver.isCascadable.

Determines if the Jakarta Bean Validation provider is allowed to cascade validation on the bean instance returned by the property value marked as @Valid.
public boolean
isReachable(Object
object hosting traversableProperty or null if validateValue is called
traversableObject
,
Path.Node
the traversable property
traversableProperty
,
Class<?>
type of the root object passed to the Validator or hosting the method or constructor validated
rootBeanType
,
Path
path from the root object to traversableObject (using the path specification defined by Bean Validation)
pathToTraversableObject
,
ElementType
either FIELD or METHOD
elementType
)

Implements jakarta.validation.TraversableResolver.isReachable.

Determines if the Jakarta Bean Validation provider is allowed to reach the property state.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

delegateback to summary
private final TraversableResolver delegate
traversablesback to summary
private final Map<CachingTraversableResolverForSingleValidation.TraversableHolder, CachingTraversableResolverForSingleValidation.TraversableHolder> traversables

Constructor Detail

CachingTraversableResolverForSingleValidationback to summary
public CachingTraversableResolverForSingleValidation(TraversableResolver delegate)

Method Detail

isCascadableback to summary
public boolean isCascadable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType)

Implements jakarta.validation.TraversableResolver.isCascadable.

Doc from jakarta.validation.TraversableResolver.isCascadable.

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

object hosting traversableProperty or null if validateValue is called

traversableProperty:Path.Node

the traversable property

rootBeanType:Class<?>

type of the root object passed to the Validator or hosting the method or constructor validated

pathToTraversableObject:Path

path from the root object to traversableObject (using the path specification defined by Bean Validation)

elementType:ElementType

either FIELD or METHOD

Returns:boolean

true if the Jakarta Bean Validation provider is allowed to cascade validation, false otherwise

Annotations
@Override
isReachableback to summary
public boolean isReachable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType)

Implements jakarta.validation.TraversableResolver.isReachable.

Doc from jakarta.validation.TraversableResolver.isReachable.

Determines if the Jakarta Bean Validation provider is allowed to reach the property state.

Parameters
traversableObject:Object

object hosting traversableProperty or null if validateValue is called

traversableProperty:Path.Node

the traversable property

rootBeanType:Class<?>

type of the root object passed to the Validator or hosting the method or constructor validated

pathToTraversableObject:Path

path from the root object to traversableObject (using the path specification defined by Bean Validation)

elementType:ElementType

either FIELD or METHOD

Returns:boolean

true if the Jakarta Bean Validation provider is allowed to reach the property state, false otherwise

Annotations
@Override
org.hibernate.validator.internal.engine.resolver back to summary

private final Class CachingTraversableResolverForSingleValidation.TraversableHolder

extends AbstractTraversableHolder
Class Inheritance

Field Summary

Modifier and TypeField and Description
private Boolean
private Boolean

Constructor Summary

AccessConstructor and Description
private
TraversableHolder(Object traversableObject, Path.Node traversableProperty)

Method Summary

Inherited from org.hibernate.validator.internal.engine.resolver.AbstractTraversableHolder:
buildHashCodeequalshashCode

Field Detail

isCascadableback to summary
private Boolean isCascadable
isReachableback to summary
private Boolean isReachable

Constructor Detail

TraversableHolderback to summary
private TraversableHolder(Object traversableObject, Path.Node traversableProperty)