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

pack-priv Class CachingJPATraversableResolverForSingleValidation

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

Cache results of a delegated JPATraversableResolver to optimize calls.

It should only be used to wrap a JPATraversableResolver as it relies on the contract defined in the Bean Validation specification.

It works only for a single validate* call and should not be used if TraversableResolver is accessed concurrently.

Author
Guillaume Smet

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 HashMap<CachingJPATraversableResolverForSingleValidation.TraversableHolder, Boolean>

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 HashMap<CachingJPATraversableResolverForSingleValidation.TraversableHolder, Boolean> traversables

Constructor Detail

CachingJPATraversableResolverForSingleValidationback to summary
public CachingJPATraversableResolverForSingleValidation(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 Class CachingJPATraversableResolverForSingleValidation.TraversableHolder

extends AbstractTraversableHolder
Class Inheritance

Constructor Summary

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

Method Summary

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

Constructor Detail

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