Class BeanInfoManager
- java.lang.Object
-
- org.apache.taglibs.standard.lang.jstl.BeanInfoManager
-
public class BeanInfoManager extends java.lang.Object
Manages the BeanInfo for one class - contains the BeanInfo, and also a mapping from property name to BeanInfoProperty. There are also static methods for accessing the BeanInfoManager for a class - those mappings are cached permanently so that once the BeanInfoManager is calculated, it doesn't have to be calculated again.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) java.lang.Class
mBeanClass
(package private) java.beans.BeanInfo
mBeanInfo
(package private) static java.util.Map
mBeanInfoManagerByClass
(package private) java.util.Map
mEventSetByName
(package private) java.util.Map
mIndexedPropertyByName
(package private) boolean
mInitialized
(package private) java.util.Map
mPropertyByName
-
Constructor Summary
Constructors Constructor Description BeanInfoManager(java.lang.Class pBeanClass)
Constructor
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
checkInitialized(Logger pLogger)
Makes sure that this class has been initialized, and synchronizes the initialization if it's required.(package private) static BeanInfoManager
createBeanInfoManager(java.lang.Class pClass)
Creates and registers the BeanInfoManager for the given class if it isn't already registered.java.lang.Class
getBeanClass()
(package private) java.beans.BeanInfo
getBeanInfo(Logger pLogger)
Returns the BeanInfo for the classstatic BeanInfoIndexedProperty
getBeanInfoIndexedProperty(java.lang.Class pClass, java.lang.String pIndexedPropertyName, Logger pLogger)
Returns the BeanInfoIndexedProperty for the specified property in the given class, or null if not found.static BeanInfoManager
getBeanInfoManager(java.lang.Class pClass)
Returns the BeanInfoManager for the specified classstatic BeanInfoProperty
getBeanInfoProperty(java.lang.Class pClass, java.lang.String pPropertyName, Logger pLogger)
Returns the BeanInfoProperty for the specified property in the given class, or null if not found.java.beans.EventSetDescriptor
getEventSet(java.lang.String pEventSetName, Logger pLogger)
Returns the EventSetDescriptor for the given event set name, or null if not found.BeanInfoIndexedProperty
getIndexedProperty(java.lang.String pIndexedPropertyName, Logger pLogger)
Returns the BeanInfoIndexedProperty for the given property name, or null if not found.BeanInfoProperty
getProperty(java.lang.String pPropertyName, Logger pLogger)
Returns the BeanInfoProperty for the given property name, or null if not found.(package private) static java.lang.reflect.Method
getPublicMethod(java.lang.Class pClass, java.lang.reflect.Method pMethod)
If the given class is public and has a Method that declares the same name and arguments as the given method, then that method is returned.(package private) static java.lang.reflect.Method
getPublicMethod(java.lang.reflect.Method pMethod)
Returns a publicly-accessible version of the given method, by searching for a public declaring class.(package private) void
initialize(Logger pLogger)
Initializes by mapping property names to BeanInfoProperties
-
-
-
Field Detail
-
mBeanClass
java.lang.Class mBeanClass
-
mBeanInfo
java.beans.BeanInfo mBeanInfo
-
mPropertyByName
java.util.Map mPropertyByName
-
mIndexedPropertyByName
java.util.Map mIndexedPropertyByName
-
mEventSetByName
java.util.Map mEventSetByName
-
mInitialized
boolean mInitialized
-
mBeanInfoManagerByClass
static java.util.Map mBeanInfoManagerByClass
-
-
Method Detail
-
getBeanClass
public java.lang.Class getBeanClass()
-
getBeanInfoManager
public static BeanInfoManager getBeanInfoManager(java.lang.Class pClass)
Returns the BeanInfoManager for the specified class
-
createBeanInfoManager
static BeanInfoManager createBeanInfoManager(java.lang.Class pClass)
Creates and registers the BeanInfoManager for the given class if it isn't already registered.
-
getBeanInfoProperty
public static BeanInfoProperty getBeanInfoProperty(java.lang.Class pClass, java.lang.String pPropertyName, Logger pLogger) throws ELException
Returns the BeanInfoProperty for the specified property in the given class, or null if not found.- Throws:
ELException
-
getBeanInfoIndexedProperty
public static BeanInfoIndexedProperty getBeanInfoIndexedProperty(java.lang.Class pClass, java.lang.String pIndexedPropertyName, Logger pLogger) throws ELException
Returns the BeanInfoIndexedProperty for the specified property in the given class, or null if not found.- Throws:
ELException
-
checkInitialized
void checkInitialized(Logger pLogger) throws ELException
Makes sure that this class has been initialized, and synchronizes the initialization if it's required.- Throws:
ELException
-
initialize
void initialize(Logger pLogger) throws ELException
Initializes by mapping property names to BeanInfoProperties- Throws:
ELException
-
getBeanInfo
java.beans.BeanInfo getBeanInfo(Logger pLogger) throws ELException
Returns the BeanInfo for the class- Throws:
ELException
-
getProperty
public BeanInfoProperty getProperty(java.lang.String pPropertyName, Logger pLogger) throws ELException
Returns the BeanInfoProperty for the given property name, or null if not found.- Throws:
ELException
-
getIndexedProperty
public BeanInfoIndexedProperty getIndexedProperty(java.lang.String pIndexedPropertyName, Logger pLogger) throws ELException
Returns the BeanInfoIndexedProperty for the given property name, or null if not found.- Throws:
ELException
-
getEventSet
public java.beans.EventSetDescriptor getEventSet(java.lang.String pEventSetName, Logger pLogger) throws ELException
Returns the EventSetDescriptor for the given event set name, or null if not found.- Throws:
ELException
-
getPublicMethod
static java.lang.reflect.Method getPublicMethod(java.lang.reflect.Method pMethod)
Returns a publicly-accessible version of the given method, by searching for a public declaring class.
-
getPublicMethod
static java.lang.reflect.Method getPublicMethod(java.lang.Class pClass, java.lang.reflect.Method pMethod)
If the given class is public and has a Method that declares the same name and arguments as the given method, then that method is returned. Otherwise the superclass and interfaces are searched recursively.
-
-