Class ReflectHelper

java.lang.Object
org.hibernate.util.ReflectHelper

public final class ReflectHelper extends Object
Utility class for various reflection operations.
  • Field Details

    • NO_PARAM_SIGNATURE

      public static final Class[] NO_PARAM_SIGNATURE
    • NO_PARAMS

      public static final Object[] NO_PARAMS
    • SINGLE_OBJECT_PARAM_SIGNATURE

      public static final Class[] SINGLE_OBJECT_PARAM_SIGNATURE
  • Method Details

    • extractEqualsMethod

      public static Method extractEqualsMethod(Class clazz) throws NoSuchMethodException
      Encapsulation of getting hold of a class's equals method.
      Parameters:
      clazz - The class from which to extract the equals method.
      Returns:
      The equals method reference
      Throws:
      NoSuchMethodException - Should indicate an attempt to extract equals method from interface.
    • extractHashCodeMethod

      public static Method extractHashCodeMethod(Class clazz) throws NoSuchMethodException
      Encapsulation of getting hold of a class's hashCode method.
      Parameters:
      clazz - The class from which to extract the hashCode method.
      Returns:
      The hashCode method reference
      Throws:
      NoSuchMethodException - Should indicate an attempt to extract hashCode method from interface.
    • overridesEquals

      public static boolean overridesEquals(Class clazz)
      Determine if the given class defines an Object.equals(java.lang.Object) override.
      Parameters:
      clazz - The class to check
      Returns:
      True if clazz defines an equals override.
    • overridesHashCode

      public static boolean overridesHashCode(Class clazz)
      Determine if the given class defines a Object.hashCode() override.
      Parameters:
      clazz - The class to check
      Returns:
      True if clazz defines an hashCode override.
    • implementsInterface

      public static boolean implementsInterface(Class clazz, Class intf)
      Determine if the given class implements the given interface.
      Parameters:
      clazz - The class to check
      intf - The interface to check it against.
      Returns:
      True if the class does implement the interface, false otherwise.
    • classForName

      public static Class classForName(String name, Class caller) throws ClassNotFoundException
      Perform resolution of a class name.

      Here we first check the context classloader, if one, before delegating to Class.forName(String, boolean, ClassLoader) using the caller's classloader

      Parameters:
      name - The class name
      caller - The class from which this call originated (in order to access that class's loader).
      Returns:
      The class reference.
      Throws:
      ClassNotFoundException - From Class.forName(String, boolean, ClassLoader).
    • classForName

      public static Class classForName(String name) throws ClassNotFoundException
      Perform resolution of a class name.

      Same as classForName(String, Class) except that here we delegate to Class.forName(String) if the context classloader lookup is unsuccessful.

      Parameters:
      name - The class name
      Returns:
      The class reference.
      Throws:
      ClassNotFoundException - From Class.forName(String).
    • isPublic

      public static boolean isPublic(Member member)
      Is this member publicly accessible.

      Short-hand for isPublic(Class, Member) passing the member + Member.getDeclaringClass()

      Parameters:
      member - The member to check
      Returns:
      True if the member is publicly accessible.
    • isPublic

      public static boolean isPublic(Class clazz, Member member)
      Is this member publicly accessible.
      Parameters:
      clazz - The class which defines the member
      member - The memeber.
      Returns:
      True if the member is publicly accessible, false otherwise.
    • reflectedPropertyClass

      public static Class reflectedPropertyClass(String className, String name) throws MappingException
      Attempt to resolve the specified property type through reflection.
      Parameters:
      className - The name of the class owning the property.
      name - The name of the property.
      Returns:
      The type of the property.
      Throws:
      MappingException - Indicates we were unable to locate the property.
    • getGetter

      public static Getter getGetter(Class theClass, String name) throws MappingException
      Directly retrieve the Getter reference via the BasicPropertyAccessor.
      Parameters:
      theClass - The class owning the property
      name - The name of the property
      Returns:
      The getter.
      Throws:
      MappingException - Indicates we were unable to locate the property.
    • getConstantValue

      public static Object getConstantValue(String name)
      Resolve a constant to its actual value.
      Parameters:
      name - The name
      Returns:
      The value
    • getDefaultConstructor

      public static Constructor getDefaultConstructor(Class clazz) throws PropertyNotFoundException
      Retrieve the default (no arg) constructor from the given class.
      Parameters:
      clazz - The class for which to retrieve the default ctor.
      Returns:
      The default constructor.
      Throws:
      PropertyNotFoundException - Indicates there was not publicly accessible, no-arg constructor (todo : why PropertyNotFoundException???)
    • isAbstractClass

      public static boolean isAbstractClass(Class clazz)
      Determine if the given class is declared abstract.
      Parameters:
      clazz - The class to check.
      Returns:
      True if the class is abstract, false otherwise.
    • isFinalClass

      public static boolean isFinalClass(Class clazz)
      Determine is the given class is declared final.
      Parameters:
      clazz - The class to check.
      Returns:
      True if the class is final, flase otherwise.
    • getConstructor

      public static Constructor getConstructor(Class clazz, Type[] types) throws PropertyNotFoundException
      Retrieve a constructor for the given class, with arguments matching the specified Hibernate mapping types.
      Parameters:
      clazz - The class needing instantiation
      types - The types representing the required ctor param signature
      Returns:
      The matching constructor.
      Throws:
      PropertyNotFoundException - Indicates we could not locate an appropriate constructor (todo : again with PropertyNotFoundException???)
    • getMethod

      public static Method getMethod(Class clazz, Method method)