|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectjavassist.tools.reflect.ClassMetaobject
public class ClassMetaobject
A runtime class metaobject.
A ClassMetaobject
is created for every
class of reflective objects. It can be used to hold values
shared among the reflective objects of the same class.
To obtain a class metaobject, calls _getClass()
on a reflective object. For example,
ClassMetaobject cm = ((Metalevel)reflectiveObject)._getClass();
Metaobject
,
Metalevel
,
Serialized FormField Summary | |
---|---|
static boolean |
useContextClassLoader
Specifies how a java.lang.Class object is loaded. |
Constructor Summary | |
---|---|
ClassMetaobject(java.lang.String[] params)
Constructs a ClassMetaobject . |
Method Summary | |
---|---|
java.lang.Class |
getJavaClass()
Obtains the java.lang.Class representing this class. |
java.lang.reflect.Method |
getMethod(int identifier)
Returns the java.lang.reflect.Method object representing
the method specified by identifier . |
int |
getMethodIndex(java.lang.String originalName,
java.lang.Class[] argTypes)
Returns the identifier index of the method, as identified by its original name. |
java.lang.String |
getMethodName(int identifier)
Returns the name of the method specified by identifier . |
java.lang.String |
getName()
Obtains the name of this class. |
java.lang.Class[] |
getParameterTypes(int identifier)
Returns an array of Class objects representing the
formal parameter types of the method specified
by identifier . |
java.lang.reflect.Method[] |
getReflectiveMethods()
Returns an array of the methods defined on the given reflective object. |
java.lang.Class |
getReturnType(int identifier)
Returns a Class objects representing the
return type of the method specified by identifier . |
static java.lang.Object |
invoke(java.lang.Object target,
int identifier,
java.lang.Object[] args)
Invokes a method whose name begins with methodPrefix "_m_" and the identifier. |
boolean |
isInstance(java.lang.Object obj)
Returns true if obj is an instance of this class. |
java.lang.Object |
newInstance(java.lang.Object[] args)
Creates a new instance of the class. |
java.lang.Object |
trapFieldRead(java.lang.String name)
Is invoked when static fields of the base-level
class are read and the runtime system intercepts it. |
void |
trapFieldWrite(java.lang.String name,
java.lang.Object value)
Is invoked when static fields of the base-level
class are modified and the runtime system intercepts it. |
java.lang.Object |
trapMethodcall(int identifier,
java.lang.Object[] args)
Is invoked when static methods of the base-level
class are called and the runtime system intercepts it. |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static boolean useContextClassLoader
java.lang.Class
object is loaded.
If true, it is loaded by:
Thread.currentThread().getContextClassLoader().loadClass()
If false, it is loaded by Class.forName()
.
The default value is false.
Constructor Detail |
---|
public ClassMetaobject(java.lang.String[] params)
ClassMetaobject
.
params
- params[0]
is the name of the class
of the reflective objects.Method Detail |
---|
public final java.lang.Class getJavaClass()
java.lang.Class
representing this class.
public final java.lang.String getName()
public final boolean isInstance(java.lang.Object obj)
obj
is an instance of this class.
public final java.lang.Object newInstance(java.lang.Object[] args) throws CannotCreateException
args
- the arguments passed to the constructor.
CannotCreateException
public java.lang.Object trapFieldRead(java.lang.String name)
static
fields of the base-level
class are read and the runtime system intercepts it.
This method simply returns the value of the field.
Every subclass of this class should redefine this method.
public void trapFieldWrite(java.lang.String name, java.lang.Object value)
static
fields of the base-level
class are modified and the runtime system intercepts it.
This method simply sets the field to the given value.
Every subclass of this class should redefine this method.
public static java.lang.Object invoke(java.lang.Object target, int identifier, java.lang.Object[] args) throws java.lang.Throwable
methodPrefix "_m_"
and the identifier.
CannotInvokeException
- if the invocation fails.
java.lang.Throwable
public java.lang.Object trapMethodcall(int identifier, java.lang.Object[] args) throws java.lang.Throwable
static
methods of the base-level
class are called and the runtime system intercepts it.
This method simply executes the intercepted method invocation
with the original parameters and returns the resulting value.
Every subclass of this class should redefine this method.
java.lang.Throwable
public final java.lang.reflect.Method[] getReflectiveMethods()
public final java.lang.reflect.Method getMethod(int identifier)
java.lang.reflect.Method
object representing
the method specified by identifier
.
Note that the actual method returned will be have an altered,
reflective name i.e. _m_2_..
.
identifier
- the identifier index
given to trapMethodcall()
etc.Metaobject.trapMethodcall(int,Object[])
,
trapMethodcall(int,Object[])
public final java.lang.String getMethodName(int identifier)
identifier
.
public final java.lang.Class[] getParameterTypes(int identifier)
Class
objects representing the
formal parameter types of the method specified
by identifier
.
public final java.lang.Class getReturnType(int identifier)
Class
objects representing the
return type of the method specified by identifier
.
public final int getMethodIndex(java.lang.String originalName, java.lang.Class[] argTypes) throws java.lang.NoSuchMethodException
This method is useful, in conjuction with ClassMetaobject#getMethod(), to obtain a quick reference to the original method in the reflected class (i.e. not the proxy method), using the original name of the method.
Written by Brett Randall and Shigeru Chiba.
originalName
- The original name of the reflected methodargTypes
- array of Class specifying the method signature
java.lang.NoSuchMethodException
- if the method does not existgetMethod(int)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |