Class JXPathIntrospector


  • public class JXPathIntrospector
    extends java.lang.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 Summary

      Fields 
      Modifier and Type Field Description
      private static java.util.HashMap byClass  
      private static java.util.HashMap byInterface  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      private static JXPathBeanInfo findDynamicBeanInfo​(java.lang.Class beanClass)
      Find a dynamic bean info if available for any superclasses or interfaces.
      private static JXPathBeanInfo findInformant​(java.lang.Class beanClass)
      find a JXPathBeanInfo instance for the specified class.
      static JXPathBeanInfo getBeanInfo​(java.lang.Class beanClass)
      Creates and registers a JXPathBeanInfo object for the supplied class.
      private static java.lang.Object instantiate​(java.lang.Class sibling, java.lang.String className)
      Try to create an instance of a named class.
      static void registerAtomicClass​(java.lang.Class beanClass)
      Automatically creates and registers a JXPathBeanInfo object for the specified class.
      static void registerDynamicClass​(java.lang.Class beanClass, java.lang.Class dynamicPropertyHandlerClass)
      Automatically creates and registers a JXPathBeanInfo object for the specified class.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • byClass

        private static java.util.HashMap byClass
      • byInterface

        private static java.util.HashMap byInterface
    • Constructor Detail

      • JXPathIntrospector

        public JXPathIntrospector()
    • Method Detail

      • registerAtomicClass

        public static void registerAtomicClass​(java.lang.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​(java.lang.Class beanClass,
                                                java.lang.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​(java.lang.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​(java.lang.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​(java.lang.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 java.lang.Object instantiate​(java.lang.Class sibling,
                                                    java.lang.String className)
                                             throws java.lang.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:
        java.lang.Exception - if instantiation fails