Package org.apache.commons.jxpath
Class JXPathIntrospector
java.lang.Object
org.apache.commons.jxpath.JXPathIntrospector
JXPathIntrospector maintains a registry of
JXPathBeanInfo
objects for Java classes.- Version:
- $Revision: 670727 $ $Date: 2008-06-23 15:10:38 -0500 (Mon, 23 Jun 2008) $
-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate static JXPathBeanInfo
findDynamicBeanInfo
(Class beanClass) Find a dynamic bean info if available for any superclasses or interfaces.private static JXPathBeanInfo
findInformant
(Class beanClass) find a JXPathBeanInfo instance for the specified class.static JXPathBeanInfo
getBeanInfo
(Class beanClass) Creates and registers a JXPathBeanInfo object for the supplied class.private static Object
instantiate
(Class sibling, String className) Try to create an instance of a named class.static void
registerAtomicClass
(Class beanClass) Automatically creates and registers a JXPathBeanInfo object for the specified class.static void
registerDynamicClass
(Class beanClass, Class dynamicPropertyHandlerClass) Automatically creates and registers aJXPathBeanInfo
object for the specified class.
-
Field Details
-
byClass
-
byInterface
-
-
Constructor Details
-
JXPathIntrospector
public JXPathIntrospector()
-
-
Method Details
-
registerAtomicClass
Automatically creates and registers a JXPathBeanInfo object for the specified class. That object returns true to isAtomic().- Parameters:
beanClass
- to register
-
registerDynamicClass
Automatically creates and registers aJXPathBeanInfo
object for the specified class. That object returns true toJXPathBeanInfo.isDynamic()
.- Parameters:
beanClass
- to registerdynamicPropertyHandlerClass
- to handle beanClass
-
getBeanInfo
Creates and registers a JXPathBeanInfo object for the supplied class. If the class has already been registered, returns the registered JXPathBeanInfo object.The process of creation of JXPathBeanInfo is as follows:
- If class named
<beanClass>XBeanInfo
exists, an instance of that class is allocated. - Otherwise, an instance of
JXPathBasicBeanInfo
is allocated.
- Parameters:
beanClass
- whose info to get- Returns:
- JXPathBeanInfo
- If class named
-
findDynamicBeanInfo
Find a dynamic bean info if available for any superclasses or interfaces.- Parameters:
beanClass
- to search for- Returns:
- JXPathBeanInfo
-
findInformant
find a JXPathBeanInfo instance for the specified class. Similar to javax.beans property handler discovery; search for a class with "XBeanInfo" appended to beanClass.name, then check whether beanClass implements JXPathBeanInfo for itself. Invokes the default constructor for any class it finds.- Parameters:
beanClass
- for which to look for an info provider- Returns:
- JXPathBeanInfo instance or null if none found
-
instantiate
Try to create an instance of a named class. First try the classloader of "sibling", then try the system classloader.- Parameters:
sibling
- ClassclassName
- to instantiate- Returns:
- new Object
- Throws:
Exception
- if instantiation fails
-