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

Methods
`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.