org.apache.bval.jsr303.resolver
Class CachingTraversableResolver

java.lang.Object
  extended by org.apache.bval.jsr303.resolver.CachingTraversableResolver
All Implemented Interfaces:
TraversableResolver, CachingRelevant

public class CachingTraversableResolver
extends Object
implements TraversableResolver, CachingRelevant

Cache results of a delegated traversable resovler to optimize calls It works only for a single validate* call and should not be used if the TraversableResolver is accessed concurrently

Date: 25.11.2009
Time: 13:56:18

Author:
Roman Stumm (based on the code of Emmanuel Bernard)

Constructor Summary
CachingTraversableResolver(TraversableResolver delegate)
          Create a new CachingTraversableResolver instance.
 
Method Summary
static TraversableResolver cacheFor(TraversableResolver traversableResolver)
          If necessary, return a caching wrapper for the specified TraversableResolver.
 boolean isCascadable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType)
          
 boolean isReachable(Object traversableObject, Path.Node traversableProperty, Class<?> rootBeanType, Path pathToTraversableObject, ElementType elementType)
          
 boolean needsCaching()
          Learn whether the results of the TraversableResolver should be cached.
static boolean needsCaching(TraversableResolver resolver)
          Convenience method to check whether caching is necessary on a given TraversableResolver.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CachingTraversableResolver

public CachingTraversableResolver(TraversableResolver delegate)
Create a new CachingTraversableResolver instance.

Parameters:
delegate -
Method Detail

needsCaching

public static boolean needsCaching(TraversableResolver resolver)
Convenience method to check whether caching is necessary on a given TraversableResolver.

Parameters:
resolver - to check
Returns:
true when a CachingTraversableResolver is to be used during validation

cacheFor

public static TraversableResolver cacheFor(TraversableResolver traversableResolver)
If necessary, return a caching wrapper for the specified TraversableResolver.

Parameters:
traversableResolver -
Returns:
TraversableResolver
See Also:
needsCaching(TraversableResolver)

isReachable

public boolean isReachable(Object traversableObject,
                           Path.Node traversableProperty,
                           Class<?> rootBeanType,
                           Path pathToTraversableObject,
                           ElementType elementType)

Specified by:
isReachable in interface TraversableResolver

isCascadable

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

Specified by:
isCascadable in interface TraversableResolver

needsCaching

public boolean needsCaching()
Learn whether the results of the TraversableResolver should be cached.

Specified by:
needsCaching in interface CachingRelevant
Returns:
boolean


Copyright © 2010-2014 The Apache Software Foundation. All Rights Reserved.