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 JXPathBeanInfofindDynamicBeanInfo(Class beanClass) Find a dynamic bean info if available for any superclasses or interfaces.private static JXPathBeanInfofindInformant(Class beanClass) find a JXPathBeanInfo instance for the specified class.static JXPathBeanInfogetBeanInfo(Class beanClass) Creates and registers a JXPathBeanInfo object for the supplied class.private static Objectinstantiate(Class sibling, String className) Try to create an instance of a named class.static voidregisterAtomicClass(Class beanClass) Automatically creates and registers a JXPathBeanInfo object for the specified class.static voidregisterDynamicClass(Class beanClass, Class dynamicPropertyHandlerClass) Automatically creates and registers aJXPathBeanInfoobject 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 aJXPathBeanInfoobject 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>XBeanInfoexists, an instance of that class is allocated. - Otherwise, an instance of
JXPathBasicBeanInfois 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
-