Class ReflectionUtility

java.lang.Object
org.refcodes.runtime.ReflectionUtility

public final class ReflectionUtility extends Object
The Class ReflectionUtility.
  • Field Details

  • Method Details

    • 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.