net.sf.antcontrib.util

Class Reflector


public class Reflector
extends java.lang.Object

Utility class to handle reflection on java objects. Its main purpose is to allow ant-contrib classes to compile under ant1.5 but allow the classes to use ant1.6 classes and code if present. The class is a holder class for an object and uses java reflection to call methods on the objects. If things go wrong, BuildExceptions are thrown.
Author:
Peter Reilly

Constructor Summary

Reflector(Object obj)
Constructor using a passed in object.
Reflector(String name)
Constructor for the wrapper using a classname

Method Summary

Object
call(String methodName)
Call a method on the object with no parameters.
Object
call(String methodName, Object o)
Call a method with one parameter.
Object
call(String methodName, Object o1, Object o2)
Call a method with two parameters.
Object
callExplicit(String methodName, Class classType, Object o)
Call a method with an object using a specific type as for the method parameter.
Object
callExplicit(String methodName, String className, Object o)
Call a method with an object using a specific type as for the method parameter.
Object
getObject()

Constructor Details

Reflector

public Reflector(Object obj)
Constructor using a passed in object.
Parameters:
obj - the object to wrap.

Reflector

public Reflector(String name)
Constructor for the wrapper using a classname
Parameters:
name - the classname of the object to construct.

Method Details

call

public Object call(String methodName)
Call a method on the object with no parameters.
Parameters:
methodName - the name of the method to call
Returns:
the object returned by the method

call

public Object call(String methodName,
                   Object o)
Call a method with one parameter.
Parameters:
methodName - the name of the method to call
o - the object to use as the parameter, this must be of the same type as the method parameter (not a subclass).
Returns:
the object returned by the method

call

public Object call(String methodName,
                   Object o1,
                   Object o2)
Call a method with two parameters.
Parameters:
methodName - the name of the method to call
o1 - the object to use as the first parameter, this must be of the same type as the method parameter (not a subclass).
o2 - the object to use as the second parameter, this must be of the same type as the method parameter (not a subclass).
Returns:
the object returned by the method

callExplicit

public Object callExplicit(String methodName,
                           Class classType,
                           Object o)
Call a method with an object using a specific type as for the method parameter.
Parameters:
methodName - the name of the method
classType - the class of the parameter of the method
o - the object to use as the argument of the method
Returns:
the object returned by the method

callExplicit

public Object callExplicit(String methodName,
                           String className,
                           Object o)
Call a method with an object using a specific type as for the method parameter.
Parameters:
methodName - the name of the method
className - the name of the class of the parameter of the method
o - the object to use as the argument of the method
Returns:
the object returned by the method

getObject

public Object getObject()
Returns:
the wrapped object.