Class ObjectTools


  • public class ObjectTools
    extends java.lang.Object
    A tool class for convenient object related tasks.

    This tool contains some simple reflection implementations.

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String GET_PREFIX  
      static java.lang.String IS_PREFIX  
    • Constructor Summary

      Constructors 
      Constructor Description
      ObjectTools()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      protected static java.lang.Object basicGet​(java.lang.Object object, java.lang.String name)  
      protected static java.lang.Object basicInsert​(java.lang.Object object, java.lang.String name, java.lang.Object value)  
      protected static java.lang.Object basicInvoke​(java.lang.Object object, java.lang.String name, java.lang.Object... values)  
      protected static java.lang.Object basicRemove​(java.lang.Object object, java.lang.String name, java.lang.Object value)  
      protected static java.lang.Object basicSet​(java.lang.Object object, java.lang.String name, java.lang.Object value)  
      protected static boolean checkCandidate​(java.lang.reflect.Method method, java.lang.String methodName, java.lang.Class[] pClasses)  
      protected static boolean checkCandidateClass​(java.lang.Class mClass, java.lang.Class pClass)  
      protected static boolean checkCandidateClasses​(java.lang.Class[] mClasses, java.lang.Class[] pClasses)  
      static <T> T createObject​(java.lang.Class clazz, java.lang.Class<T> expectedClass)
      Create a new instance of Class "class"
      static <T> T createObject​(java.lang.Class clazz, java.lang.Class<T> expectedClass, java.lang.Class[] parameterTypes, java.lang.Object[] parameters)
      Create a new instance of Class "class"
      static <T> T createObject​(java.lang.String className, java.lang.Class<T> expectedClass, java.lang.ClassLoader classLoader)
      Create a new instance of Class "className" via "classLoader".
      protected static java.lang.reflect.Method findAnyMethod​(java.lang.Class clazz, java.lang.String name, java.lang.Class... classes)  
      static java.lang.reflect.Method findGetter​(java.lang.Object object, java.lang.String name)  
      static java.lang.reflect.Method findInserter​(java.lang.Object object, java.lang.String attribute, java.lang.Object value)  
      protected static java.lang.reflect.Method findMatchingMethod​(java.lang.Class clazz, java.lang.String name, java.lang.Class[] classes)  
      static java.lang.reflect.Method findMethod​(java.lang.Object object, java.lang.String methodName, java.lang.Object... parameters)  
      static java.lang.reflect.Method findRemover​(java.lang.Object object, java.lang.String attribute, java.lang.Object value)  
      static java.lang.reflect.Method findSetter​(java.lang.Object object, java.lang.String attribute, java.lang.Object value)  
      protected static java.lang.reflect.Method findSimpleMethod​(java.lang.Class clazz, java.lang.String name, java.lang.Class... classes)  
      static java.lang.Object get​(java.lang.Object object, java.lang.String name)
      Get the value for field name in object.
      static java.lang.Object insert​(java.lang.Object object, java.lang.String name, java.lang.Object value)
      Insert value in the relation field name in object.
      static java.lang.Object invoke​(java.lang.Object object, java.lang.String name, java.lang.Object... values)
      Invoke method name in object.
      static java.lang.Object remove​(java.lang.Object object, java.lang.String name, java.lang.Object value)
      Remove value in the relation field name in object.
      static java.lang.Object set​(java.lang.Object object, java.lang.String name, java.lang.Object value)
      Set field name in object to value.
      • Methods inherited from class java.lang.Object

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

      • ObjectTools

        public ObjectTools()
    • Method Detail

      • basicGet

        protected static java.lang.Object basicGet​(java.lang.Object object,
                                                   java.lang.String name)
                                            throws FieldException
        Throws:
        FieldException
      • basicInsert

        protected static java.lang.Object basicInsert​(java.lang.Object object,
                                                      java.lang.String name,
                                                      java.lang.Object value)
                                               throws FieldException
        Throws:
        FieldException
      • basicInvoke

        protected static java.lang.Object basicInvoke​(java.lang.Object object,
                                                      java.lang.String name,
                                                      java.lang.Object... values)
                                               throws MethodException
        Throws:
        MethodException
      • basicRemove

        protected static java.lang.Object basicRemove​(java.lang.Object object,
                                                      java.lang.String name,
                                                      java.lang.Object value)
                                               throws FieldException
        Throws:
        FieldException
      • basicSet

        protected static java.lang.Object basicSet​(java.lang.Object object,
                                                   java.lang.String name,
                                                   java.lang.Object value)
                                            throws FieldException
        Throws:
        FieldException
      • checkCandidate

        protected static boolean checkCandidate​(java.lang.reflect.Method method,
                                                java.lang.String methodName,
                                                java.lang.Class[] pClasses)
      • checkCandidateClass

        protected static boolean checkCandidateClass​(java.lang.Class mClass,
                                                     java.lang.Class pClass)
      • checkCandidateClasses

        protected static boolean checkCandidateClasses​(java.lang.Class[] mClasses,
                                                       java.lang.Class[] pClasses)
      • createObject

        public static <T> T createObject​(java.lang.Class clazz,
                                         java.lang.Class<T> expectedClass)
                                  throws ObjectCreationException
        Create a new instance of Class "class"
        Parameters:
        clazz -
        expectedClass -
        Returns:
        The new instance
        Throws:
        ObjectCreationException
      • createObject

        public static <T> T createObject​(java.lang.Class clazz,
                                         java.lang.Class<T> expectedClass,
                                         java.lang.Class[] parameterTypes,
                                         java.lang.Object[] parameters)
                                  throws ObjectCreationException
        Create a new instance of Class "class"
        Parameters:
        className -
        expectedClass -
        parameterTypes -
        parameters -
        Returns:
        The new instance
        Throws:
        ObjectCreationException
      • createObject

        public static <T> T createObject​(java.lang.String className,
                                         java.lang.Class<T> expectedClass,
                                         java.lang.ClassLoader classLoader)
                                  throws ObjectCreationException
        Create a new instance of Class "className" via "classLoader".
        Parameters:
        className -
        expectedClass -
        classLoader -
        Returns:
        The new instance
        Throws:
        ObjectCreationException
      • findAnyMethod

        protected static java.lang.reflect.Method findAnyMethod​(java.lang.Class clazz,
                                                                java.lang.String name,
                                                                java.lang.Class... classes)
                                                         throws MethodException
        Throws:
        MethodException
      • findGetter

        public static java.lang.reflect.Method findGetter​(java.lang.Object object,
                                                          java.lang.String name)
                                                   throws MethodException
        Throws:
        MethodException
      • findInserter

        public static java.lang.reflect.Method findInserter​(java.lang.Object object,
                                                            java.lang.String attribute,
                                                            java.lang.Object value)
                                                     throws MethodException
        Throws:
        MethodException
      • findMatchingMethod

        protected static java.lang.reflect.Method findMatchingMethod​(java.lang.Class clazz,
                                                                     java.lang.String name,
                                                                     java.lang.Class[] classes)
                                                              throws MethodException
        Throws:
        MethodException
      • findMethod

        public static java.lang.reflect.Method findMethod​(java.lang.Object object,
                                                          java.lang.String methodName,
                                                          java.lang.Object... parameters)
                                                   throws MethodException
        Throws:
        MethodException
      • findRemover

        public static java.lang.reflect.Method findRemover​(java.lang.Object object,
                                                           java.lang.String attribute,
                                                           java.lang.Object value)
                                                    throws MethodException
        Throws:
        MethodException
      • findSetter

        public static java.lang.reflect.Method findSetter​(java.lang.Object object,
                                                          java.lang.String attribute,
                                                          java.lang.Object value)
                                                   throws MethodException
        Throws:
        MethodException
      • findSimpleMethod

        protected static java.lang.reflect.Method findSimpleMethod​(java.lang.Class clazz,
                                                                   java.lang.String name,
                                                                   java.lang.Class... classes)
                                                            throws MethodException
        Throws:
        MethodException
      • get

        public static java.lang.Object get​(java.lang.Object object,
                                           java.lang.String name)
                                    throws FieldException
        Get the value for field name in object.
        Parameters:
        object -
        name -
        Returns:
        the value for field name in object.
        Throws:
        java.lang.IllegalAccessException
        java.lang.reflect.InvocationTargetException
        java.lang.NoSuchFieldException
        FieldException
      • insert

        public static java.lang.Object insert​(java.lang.Object object,
                                              java.lang.String name,
                                              java.lang.Object value)
                                       throws FieldException
        Insert value in the relation field name in object. The value that was really inserted is returned (if supported by the underlying object implementation). To be exact, the result of the insert method invoked is returned.
        Parameters:
        object -
        name -
        value -
        Returns:
        the result of the insert method invoked is returned.
        Throws:
        java.lang.IllegalAccessException
        java.lang.reflect.InvocationTargetException
        java.lang.NoSuchFieldException
        FieldException
      • invoke

        public static java.lang.Object invoke​(java.lang.Object object,
                                              java.lang.String name,
                                              java.lang.Object... values)
                                       throws MethodException
        Invoke method name in object. The result of the invocation is returned.
        Parameters:
        object -
        name -
        values -
        Returns:
        The result of the invocation is returned.
        Throws:
        MethodException
      • remove

        public static java.lang.Object remove​(java.lang.Object object,
                                              java.lang.String name,
                                              java.lang.Object value)
                                       throws FieldException
        Remove value in the relation field name in object. The value that was removed is returned (if supported by the underlying object implementation). To be exact, the result of the remove method invoked is returned.
        Parameters:
        object -
        name -
        value -
        Returns:
        the result of the remove method invoked is returned.
        Throws:
        java.lang.IllegalAccessException
        java.lang.reflect.InvocationTargetException
        java.lang.NoSuchFieldException
        FieldException
      • set

        public static java.lang.Object set​(java.lang.Object object,
                                           java.lang.String name,
                                           java.lang.Object value)
                                    throws FieldException
        Set field name in object to value. The old value is returned (if supported by the underlying object implementation). To be exact, the result of the setter method invoked is returned.
        Parameters:
        object -
        name -
        value -
        Returns:
        the result of the setter method invoked is returned.
        Throws:
        java.lang.IllegalAccessException
        java.lang.reflect.InvocationTargetException
        java.lang.NoSuchFieldException
        FieldException