/*
* TclPkgInvoker --
*
* This class tests the tcl.lang.reflect.PkgInvoker class. Please
* see the comments in PkgInvoker.java for details.
*
* Copyright (c) 1997 Sun Microsystems, Inc.
*
* See the file "license.terms" for information on usage and
* redistribution of this file, and for a DISCLAIMER OF ALL
* WARRANTIES.
*
* RCS: @(#) $Id: TclPkgInvoker.java,v 1.1 1999/05/10 04:08:57 dejong Exp $
*
*/
package pkg1;
import tcl.lang.reflect.*;
import java.lang.reflect.*;
import java.beans.*;
public class TclPkgInvoker extends PkgInvoker {
/*
*----------------------------------------------------------------------
*
* invokeConstructor --
*
* Invoke the given constructor with the arguments.
*
* Results:
* The new object instance returned by the constructor.
*
* Side effects:
* The constructor may have arbitraty side effects.
*
*----------------------------------------------------------------------
*/
public Object
invokeConstructor(
Constructor constructor, // The constructor to invoke.
Object args[]) // Arguments for the constructor.
throws
InstantiationException, // Standard exceptions thrown by
IllegalAccessException, // Constructor.newInstance.
IllegalArgumentException,
InvocationTargetException
{
return constructor.newInstance(args);
}
/*
*----------------------------------------------------------------------
*
* invokeMethod --
*
* Invoke the given method of the obj with the arguments.
*
* Results:
* The value returned by the method.
*
* Side effects:
* The method may have arbitraty side effects.
*
*----------------------------------------------------------------------
*/
public Object
invokeMethod(
Method method, // The method to invoke.
Object obj, // The object associated with the method.
// May be null if the method is static.
Object args[]) // The arguments for the method.
throws
IllegalAccessException, // Standard exceptions throw by Method.Invoke.
IllegalArgumentException,
InvocationTargetException
{
return method.invoke(obj, args);
}
/*
*----------------------------------------------------------------------
*
* getField --
*
* Query the value of the given field.
*
* Results:
* The value of the field.
*
* Side effects:
* None.
*
*----------------------------------------------------------------------
*/
public Object
getField(
Field field, // The field to query.
Object obj) // The object that owns the field. May be
// null for static fields.
throws
IllegalArgumentException, // Standard exceptions thrown by Field.get().
IllegalAccessException
{
return field.get(obj);
}
/*
*----------------------------------------------------------------------
*
* setField --
*
* Modify the value of the given field.
*
* Results:
* None.
*
* Side effects:
* When successful, the field is modified to be the new value.
*
*----------------------------------------------------------------------
*/
public void
setField(
Field field, // The field to modify.
Object obj, // The object that owns the field. May be
// null for static fields.
Object value) // New value for the field.
throws
IllegalArgumentException, // Standard exceptions thrown by Field.set().
IllegalAccessException
{
field.set(obj, value);
}
} // end TclPkgInvoker