Class ReflectionUtility


  • public final class ReflectionUtility
    extends Object
    The Class ReflectionUtility.
    • Method Detail

      • annotations

        public static Set<Annotation> annotations​(Class<?> aClass)
        Gatherers all annotations annotating a provided Class.
        Parameters:
        aClass - the Class for which to gather all annotations.
        Returns:
        the Set containing all according annotations annotating the given Class
      • annotations

        public static Set<Annotation> annotations​(Field aField)
        Gatherers all annotations annotating a provided Field.
        Parameters:
        aField - the Field for which to gather all annotations.
        Returns:
        the Set containing all according annotations annotating the given Field
      • annotations

        public static Set<Annotation> annotations​(Method aMethod)
        Gatherers all annotations annotating a provided Method.
        Parameters:
        aMethod - the Method for which to gather all annotations.
        Returns:
        the Set containing all according annotations annotating the given Method
      • annotations

        public static Set<Annotation> annotations​(Object aObj)
        Gatherers all annotations annotating a provided Object.
        Parameters:
        aObj - the Object for which to gather all annotations.
        Returns:
        the Set containing all according annotations annotating the given Object
      • findAnnotation

        public static Annotation findAnnotation​(Class<? extends Annotation> aAnnotation,
                                                Class<?> aClass)
        Seeks for an Annotation of the given type annotating a provided Class, also reckoning annotations nested inside annotations (recursively).
        Parameters:
        aAnnotation - the Annotation type for which to seek.
        aClass - the Class which's annotations to crawl.
        Returns:
        the Annotation annotating the given Class or null if none was found
      • findAnnotation

        public static Annotation findAnnotation​(Class<? extends Annotation> aAnnotation,
                                                Field aField)
        Seeks for an Annotation of the given type annotating a provided Field, also reckoning annotations nested inside annotations (recursively).
        Parameters:
        aAnnotation - the Annotation type for which to seek.
        aField - the Field which's annotations to crawl.
        Returns:
        the Annotation annotating the given Field or null if none was found
      • findAnnotation

        public static Annotation findAnnotation​(Class<? extends Annotation> aAnnotation,
                                                Method aMethod)
        Seeks for an Annotation of the given type annotating a provided Method, also reckoning annotations nested inside annotations (recursively).
        Parameters:
        aAnnotation - the Annotation type for which to seek.
        aMethod - the Method which's annotations to crawl.
        Returns:
        the Annotation annotating the given Method or null if none was found
      • findAnnotation

        public static Annotation findAnnotation​(Class<? extends Annotation> aAnnotation,
                                                Object aObj)
        Seeks for an Annotation of the given type annotating a provided Object, also reckoning annotations nested inside annotations (recursively).
        Parameters:
        aAnnotation - the Annotation type for which to seek.
        aObj - the Object which's annotations to crawl.
        Returns:
        the Annotation annotating the given Object or null if none was found
      • hasAnnotation

        public static boolean hasAnnotation​(Class<? extends Annotation> aAnnotation,
                                            Class<?> aClass)
        Tests if an Annotation of the given type annotates a provided Class, also reckoning annotations nested inside annotations (recursively).
        Parameters:
        aAnnotation - the Annotation type for which to seek.
        aClass - the Class which's annotations to crawl.
        Returns:
        True in case the Annotation annotates the given Class.
      • hasAnnotation

        public static boolean hasAnnotation​(Class<? extends Annotation> aAnnotation,
                                            Field aField)
        Tests if an Annotation of the given type annotates a provided Field, also reckoning annotations nested inside annotations (recursively).
        Parameters:
        aAnnotation - the Annotation type for which to seek.
        aField - the Field which's annotations to crawl.
        Returns:
        True in case the Annotation annotates the given Field.
      • hasAnnotation

        public static boolean hasAnnotation​(Class<? extends Annotation> aAnnotation,
                                            Method aMethod)
        Tests if an Annotation of the given type annotates a provided Method, also reckoning annotations nested inside annotations (recursively).
        Parameters:
        aAnnotation - the Annotation type for which to seek.
        aMethod - the Method which's annotations to crawl.
        Returns:
        True in case the Annotation annotates the given Method.
      • hasAnnotation

        public static boolean hasAnnotation​(Class<? extends Annotation> aAnnotation,
                                            Object aObj)
        Tests if an Annotation of the given type annotates a provided Object, also reckoning annotations nested inside annotations (recursively).
        Parameters:
        aAnnotation - the Annotation type for which to seek.
        aObj - the Object which's annotations to crawl.
        Returns:
        True in case the Annotation annotates the given Object.
      • hasGetterAttribute

        public static boolean hasGetterAttribute​(Object anObject,
                                                 String anAttributeName,
                                                 Class<?> aReturnType)
        This method tests whether the given java beans getter attribute is found for the given object.
        Parameters:
        anObject - The object which is to be tested.
        anAttributeName - The attribute name.
        aReturnType - The expected (sub-) aClass of the return value
        Returns:
        True if the object has a method with the given java beans name which returns the given (super-) aClass.
      • hasSetterAttribute

        public static boolean hasSetterAttribute​(Object anObject,
                                                 String anAttributeName,
                                                 Class<?> anAttributeType)
        This method tests whether the given java beans setter attribute is found for the given object.
        Parameters:
        anObject - The object which is to be tested.
        anAttributeName - The attribute name.
        anAttributeType - The expected (sub-) aClass of the attribute
        Returns:
        True if the object has a method with the given java beans name which can be called with an argument of the given aClass.
      • setAttribute

        public static void setAttribute​(Object anObject,
                                        org.refcodes.struct.Attribute anAttributeValueStruct)
                                 throws NoSuchMethodException
        This method sets a java beans attribute for the given object.
        Parameters:
        anObject - The object which's attribute is to be set.
        anAttributeValueStruct - The name-to-value struct for the attrubute to be set.
        Throws:
        NoSuchMethodException - Description of the Exception
      • setAttribute

        public static void setAttribute​(Object anObject,
                                        String anAttributeName,
                                        Object anAttributeValue)
                                 throws NoSuchMethodException
        This method sets a java beans attribute for the given object. The corresponding java beans method must begin with a 'set', the following letter must be in upper case and it must only take one argument being of the same (or super-) aClass as the attribute's aClass.
        Parameters:
        anObject - The object which's java beans method is to be called.
        anAttributeName - The attribute name of the java beans method.
        anAttributeValue - The value of the attribute to be set.
        Throws:
        NoSuchMethodException - Description of the Exception
      • toBeanAttributes

        public static org.refcodes.struct.Attribute[] toBeanAttributes​(Object anObject)
        This method uses reflection on order to analyze a given object. The java beans attributes and their values are retrieved and returned in an array of name-to-value pairs.
        Parameters:
        anObject - The object to be analyzed.
        Returns:
        An array of objects containing the java beans name-to-value pairs.