org.codehaus.plexus.util.reflection

## Class Reflector

- java.lang.Object
- - org.codehaus.plexus.util.reflection.Reflector

-     public final class Reflector
      extends java.lang.Object

  Utility class used to instantiate an object using reflection. This utility hides many of the gory details needed to do this.
  Author:
    John Casey

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Reflector()` Ensure no instances of Reflector are created...this is a utility.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.lang.reflect.Constructor` | `getConstructor(java.lang.Class targetClass, java.lang.Class[] params)` Return the constructor, checking the cache first and storing in cache if not already there..
    `java.lang.Object` | `getField(java.lang.Object target, java.lang.String fieldName)`
    `java.lang.Object` | `getField(java.lang.Object target, java.lang.String fieldName, boolean breakAccessibility)`
    `java.lang.reflect.Method` | `getMethod(java.lang.Class targetClass, java.lang.String methodName, java.lang.Class[] params)` Return the method, checking the cache first and storing in cache if not already there..
    `java.lang.Object` | `getObjectProperty(java.lang.Object target, java.lang.String propertyName)`
    `java.lang.Object` | `getSingleton(java.lang.Class theClass, java.lang.Object[] initParams)` Retrieve the singleton instance of a class, given the array of parameters...
    `java.lang.Object` | `getStaticField(java.lang.Class targetClass, java.lang.String fieldName)`
    `java.lang.Object` | `invoke(java.lang.Object target, java.lang.String methodName, java.lang.Object[] params)` Invoke the specified method on the specified target with the specified params...
    `java.lang.Object` | `invokeStatic(java.lang.Class targetClass, java.lang.String methodName, java.lang.Object[] params)` Invoke the specified static method with the specified params...
    `java.lang.Object` | `newInstance(java.lang.Class theClass, java.lang.Object[] params)` Create a new instance of a class, given the array of parameters...

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Reflector

          public Reflector()

      Ensure no instances of Reflector are created...this is a utility.

  - ### Method Detail

    - #### newInstance

          public java.lang.Object newInstance(java.lang.Class theClass,
                                              java.lang.Object[] params)
                                       throws ReflectorException

      Create a new instance of a class, given the array of parameters... Uses constructor caching to find a constructor that matches the parameter types, either specifically (first choice) or abstractly...
      Parameters:
        `theClass` - The class to instantiate
        `params` - The parameters to pass to the constructor
      Returns:
        The instantiated object
      Throws:
        `ReflectorException` - In case anything goes wrong here...

    - #### getSingleton

          public java.lang.Object getSingleton(java.lang.Class theClass,
                                               java.lang.Object[] initParams)
                                        throws ReflectorException

      Retrieve the singleton instance of a class, given the array of parameters... Uses constructor caching to find a constructor that matches the parameter types, either specifically (first choice) or abstractly...
      Parameters:
        `theClass` - The class to retrieve the singleton of
        `initParams` - The parameters to pass to the constructor
      Returns:
        The singleton object
      Throws:
        `ReflectorException` - In case anything goes wrong here...

    - #### invoke

          public java.lang.Object invoke(java.lang.Object target,
                                         java.lang.String methodName,
                                         java.lang.Object[] params)
                                  throws ReflectorException

      Invoke the specified method on the specified target with the specified params...
      Parameters:
        `target` - The target of the invocation
        `methodName` - The method name to invoke
        `params` - The parameters to pass to the method invocation
      Returns:
        The result of the method call
      Throws:
        `ReflectorException` - In case of an error looking up or invoking the method.

    - #### getStaticField

          public java.lang.Object getStaticField(java.lang.Class targetClass,
                                                 java.lang.String fieldName)
                                          throws ReflectorException

      Throws:
        `ReflectorException`

    - #### getField

          public java.lang.Object getField(java.lang.Object target,
                                           java.lang.String fieldName)
                                    throws ReflectorException

      Throws:
        `ReflectorException`

    - #### getField

          public java.lang.Object getField(java.lang.Object target,
                                           java.lang.String fieldName,
                                           boolean breakAccessibility)
                                    throws ReflectorException

      Throws:
        `ReflectorException`

    - #### invokeStatic

          public java.lang.Object invokeStatic(java.lang.Class targetClass,
                                               java.lang.String methodName,
                                               java.lang.Object[] params)
                                        throws ReflectorException

      Invoke the specified static method with the specified params...
      Parameters:
        `targetClass` - The target class of the invocation
        `methodName` - The method name to invoke
        `params` - The parameters to pass to the method invocation
      Returns:
        The result of the method call
      Throws:
        `ReflectorException` - In case of an error looking up or invoking the method.

    - #### getConstructor

          public java.lang.reflect.Constructor getConstructor(java.lang.Class targetClass,
                                                              java.lang.Class[] params)
                                                       throws ReflectorException

      Return the constructor, checking the cache first and storing in cache if not already there..
      Parameters:
        `targetClass` - The class to get the constructor from
        `params` - The classes of the parameters which the constructor should match.
      Returns:
        the Constructor object that matches.
      Throws:
        `ReflectorException` - In case we can't retrieve the proper constructor.

    - #### getObjectProperty

          public java.lang.Object getObjectProperty(java.lang.Object target,
                                                    java.lang.String propertyName)
                                             throws ReflectorException

      Throws:
        `ReflectorException`

    - #### getMethod

          public java.lang.reflect.Method getMethod(java.lang.Class targetClass,
                                                    java.lang.String methodName,
                                                    java.lang.Class[] params)
                                             throws ReflectorException

      Return the method, checking the cache first and storing in cache if not already there..
      Parameters:
        `targetClass` - The class to get the method from
        `params` - The classes of the parameters which the method should match.
      Returns:
        the Method object that matches.
      Throws:
        `ReflectorException` - In case we can't retrieve the proper method.