Class JXPathIntrospector

java.lang.Object
org.apache.commons.jxpath.JXPathIntrospector

public class JXPathIntrospector extends Object
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 Details

    • byClass

      private static HashMap byClass
    • byInterface

      private static HashMap byInterface
  • Constructor Details

    • JXPathIntrospector

      public JXPathIntrospector()
  • Method Details

    • registerAtomicClass

      public static void registerAtomicClass(Class beanClass)
      Automatically creates and registers a JXPathBeanInfo object for the specified class. That object returns true to isAtomic().
      Parameters:
      beanClass - to register
    • registerDynamicClass

      public static void registerDynamicClass(Class beanClass, Class dynamicPropertyHandlerClass)
      Automatically creates and registers a JXPathBeanInfo object for the specified class. That object returns true to JXPathBeanInfo.isDynamic().
      Parameters:
      beanClass - to register
      dynamicPropertyHandlerClass - to handle beanClass
    • getBeanInfo

      public static JXPathBeanInfo getBeanInfo(Class beanClass)
      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
    • findDynamicBeanInfo

      private static JXPathBeanInfo findDynamicBeanInfo(Class beanClass)
      Find a dynamic bean info if available for any superclasses or interfaces.
      Parameters:
      beanClass - to search for
      Returns:
      JXPathBeanInfo
    • findInformant

      private static JXPathBeanInfo findInformant(Class beanClass)
      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

      private static Object instantiate(Class sibling, String className) throws Exception
      Try to create an instance of a named class. First try the classloader of "sibling", then try the system classloader.
      Parameters:
      sibling - Class
      className - to instantiate
      Returns:
      new Object
      Throws:
      Exception - if instantiation fails