Class IntrospectorCache
java.lang.Object
org.apache.velocity.util.introspection.IntrospectorCache
This is the internal introspector cache implementation.
- Since:
- 1.5
- Version:
- $Id$
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final String
define a public string so that it can be looked for if interestedprivate final Map<Class<?>,
ClassFieldMap> Holds the field maps for the classes we know about.Holds the method maps for the classes we know about.Keep the names of the classes in another map.private final TypeConversionHandler
Conversion handlerprivate final org.slf4j.Logger
Class logger -
Constructor Summary
ConstructorsConstructorDescriptionIntrospectorCache
(org.slf4j.Logger log, TypeConversionHandler conversionHandler) C'tor -
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
Clears the internal cache.Lookup a given Class object in the cache.getFieldMap
(Class<?> c) Lookup a given Class object in the cache.Creates a class map for specific class and registers it in the cache.
-
Field Details
-
CACHEDUMP_MSG
define a public string so that it can be looked for if interested- See Also:
-
log
private final org.slf4j.Logger logClass logger -
classMapCache
Holds the method maps for the classes we know about. Map: Class --> ClassMap object. -
classFieldMapCache
Holds the field maps for the classes we know about. Map: Class --> ClassFieldMap object. -
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. -
conversionHandler
Conversion handler
-
-
Constructor Details
-
IntrospectorCache
C'tor- Parameters:
log
- logger.conversionHandler
- conversion handler
-
-
Method Details
-
clear
public void clear()Clears the internal cache. -
get
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.- Parameters:
c
- The class to look up.- Returns:
- A ClassMap object or null if it does not exist in the cache.
-
getFieldMap
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.- Parameters:
c
- The class to look up.- Returns:
- A ClassFieldMap object or null if it does not exist in the cache.
-
put
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.- Parameters:
c
- The class for which the class map gets generated.- Returns:
- A ClassMap object.
-