com.metamatrix.core.util
Class ReflectionHelper

java.lang.Object
  extended by com.metamatrix.core.util.ReflectionHelper

public class ReflectionHelper
extends java.lang.Object


Constructor Summary
ReflectionHelper(java.lang.Class targetClass)
          Construct a ReflectionHelper instance that cache's some information about the target class.
 
Method Summary
static java.lang.Object create(java.lang.String className, java.util.Collection ctorObjs, java.lang.ClassLoader classLoader)
          Helper method to create an instance of the class using the appropriate constructor based on the ctorObjs passed.
static java.lang.Object create(java.lang.String className, java.lang.Object[] ctorObjs, java.lang.Class<?>[] argTypes, java.lang.ClassLoader classLoader)
           
 java.lang.reflect.Method findBestMethodOnTarget(java.lang.String methodName, java.lang.Object[] arguments)
          Find the best method on the target class that matches the signature specified with the specified name and the list of arguments.
 java.lang.reflect.Method findBestMethodWithSignature(java.lang.String methodName, java.util.List argumentsClasses)
          Find the best method on the target class that matches the signature specified with the specified name and the list of argument classes.
 java.lang.reflect.Method findBestMethodWithSignature(java.lang.String methodName, java.lang.Object[] argumentsClasses)
          Find the best method on the target class that matches the signature specified with the specified name and the list of argument classes.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReflectionHelper

public ReflectionHelper(java.lang.Class targetClass)
Construct a ReflectionHelper instance that cache's some information about the target class. The target class is the Class object upon which the methods will be found.

Parameters:
targetClass - the target class
Throws:
java.lang.IllegalArgumentException - if the target class is null
Method Detail

findBestMethodOnTarget

public java.lang.reflect.Method findBestMethodOnTarget(java.lang.String methodName,
                                                       java.lang.Object[] arguments)
                                                throws java.lang.NoSuchMethodException,
                                                       java.lang.SecurityException
Find the best method on the target class that matches the signature specified with the specified name and the list of arguments. This method first attempts to find the method with the specified arguments; if no such method is found, a NoSuchMethodException is thrown.

This method is unable to find methods with signatures that include both primitive arguments and arguments that are instances of Number or its subclasses.

Parameters:
methodName - the name of the method that is to be invoked.
arguments - the array of Object instances that correspond to the arguments passed to the method.
Returns:
the Method object that references the method that satisfies the requirements, or null if no satisfactory method could be found.
Throws:
java.lang.NoSuchMethodException - if a matching method is not found.
java.lang.SecurityException - if access to the information is denied.

findBestMethodWithSignature

public java.lang.reflect.Method findBestMethodWithSignature(java.lang.String methodName,
                                                            java.lang.Object[] argumentsClasses)
                                                     throws java.lang.NoSuchMethodException,
                                                            java.lang.SecurityException
Find the best method on the target class that matches the signature specified with the specified name and the list of argument classes. This method first attempts to find the method with the specified argument classes; if no such method is found, a NoSuchMethodException is thrown.

Parameters:
methodName - the name of the method that is to be invoked.
argumentsClasses - the list of Class instances that correspond to the classes for each argument passed to the method.
Returns:
the Method object that references the method that satisfies the requirements, or null if no satisfactory method could be found.
Throws:
java.lang.NoSuchMethodException - if a matching method is not found.
java.lang.SecurityException - if access to the information is denied.

findBestMethodWithSignature

public java.lang.reflect.Method findBestMethodWithSignature(java.lang.String methodName,
                                                            java.util.List argumentsClasses)
                                                     throws java.lang.NoSuchMethodException,
                                                            java.lang.SecurityException
Find the best method on the target class that matches the signature specified with the specified name and the list of argument classes. This method first attempts to find the method with the specified argument classes; if no such method is found, a NoSuchMethodException is thrown.

Parameters:
methodName - the name of the method that is to be invoked.
argumentsClasses - the list of Class instances that correspond to the classes for each argument passed to the method.
Returns:
the Method object that references the method that satisfies the requirements, or null if no satisfactory method could be found.
Throws:
java.lang.NoSuchMethodException - if a matching method is not found.
java.lang.SecurityException - if access to the information is denied.

create

public static final java.lang.Object create(java.lang.String className,
                                            java.util.Collection ctorObjs,
                                            java.lang.ClassLoader classLoader)
                                     throws MetaMatrixCoreException
Helper method to create an instance of the class using the appropriate constructor based on the ctorObjs passed.

Parameters:
className - is the class to instantiate
ctorObjs - are the objects to pass to the constructor; optional, nullable
classLoader - the class loader to use; may be null if the current class loader is to be used
Returns:
Object is the instance of the class
Throws:
MetaMatrixCoreException - if an error occurrs instantiating the class

create

public static final java.lang.Object create(java.lang.String className,
                                            java.lang.Object[] ctorObjs,
                                            java.lang.Class<?>[] argTypes,
                                            java.lang.ClassLoader classLoader)
                                     throws MetaMatrixCoreException
Throws:
MetaMatrixCoreException


Copyright © 2009. All Rights Reserved.