Class IntrospectorCacheImpl
- java.lang.Object
-
- org.apache.velocity.util.introspection.IntrospectorCacheImpl
-
- All Implemented Interfaces:
IntrospectorCache
public final class IntrospectorCacheImpl extends java.lang.Object implements IntrospectorCache
This is the internal introspector cache implementation.- Since:
- 1.5
- Version:
- $Id: IntrospectorCacheImpl.java 898032 2010-01-11 19:51:03Z nbubna $
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
CACHEDUMP_MSG
define a public string so that it can be looked for if interestedprivate java.util.Map
classMapCache
Holds the method maps for the classes we know about.private java.util.Set
classNameCache
Keep the names of the classes in another map.private Log
log
Class logger
-
Constructor Summary
Constructors Constructor Description IntrospectorCacheImpl(Log log)
C'tor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
clear()
Clears the internal cache.ClassMap
get(java.lang.Class c)
Lookup a given Class object in the cache.ClassMap
put(java.lang.Class c)
Creates a class map for specific class and registers it in the cache.
-
-
-
Field Detail
-
CACHEDUMP_MSG
public static final java.lang.String CACHEDUMP_MSG
define a public string so that it can be looked for if interested- See Also:
- Constant Field Values
-
log
private final Log log
Class logger
-
classMapCache
private final java.util.Map classMapCache
Holds the method maps for the classes we know about. Map: Class --> ClassMap object.
-
classNameCache
private final java.util.Set classNameCache
Keep the names of the classes in another map. This is needed for a multi-classloader environment where it is possible to have Class 'Foo' loaded by a classloader and then get asked to introspect on 'Foo' from another class loader. While these two Class objects have the same name, aclassMethodMaps.get(Foo.class)
will return null. For that case, we keep a set of class names to recognize this case.
-
-
Constructor Detail
-
IntrospectorCacheImpl
public IntrospectorCacheImpl(Log log)
C'tor
-
-
Method Detail
-
clear
public void clear()
Clears the internal cache.- Specified by:
clear
in interfaceIntrospectorCache
-
get
public ClassMap get(java.lang.Class c)
Lookup a given Class object in the cache. If it does not exist, check whether this is due to a class change and purge the caches eventually.- Specified by:
get
in interfaceIntrospectorCache
- Parameters:
c
- The class to look up.- Returns:
- A ClassMap object or null if it does not exist in the cache.
-
put
public ClassMap put(java.lang.Class c)
Creates a class map for specific class and registers it in the cache. Also adds the qualified name to the name->class map for later Classloader change detection.- Specified by:
put
in interfaceIntrospectorCache
- Parameters:
c
- The class for which the class map gets generated.- Returns:
- A ClassMap object.
-
-