javassist.tools.reflect

Class Reflection

public class Reflection extends Object implements Translator

The class implementing the behavioral reflection mechanism.

If a class is reflective, then all the method invocations on every instance of that class are intercepted by the runtime metaobject controlling that instance. The methods inherited from the super classes are also intercepted except final methods. To intercept a final method in a super class, that super class must be also reflective.

To do this, the original class file representing a reflective class:

is modified so that it represents a class:

See Also: ClassMetaobject Metaobject Loader Compiler

Constructor Summary
Reflection()
Constructs a new Reflection object.
Method Summary
booleanmakeReflective(String classname, String metaobject, String metaclass)
Produces a reflective class.
booleanmakeReflective(Class clazz, Class metaobject, Class metaclass)
Produces a reflective class.
booleanmakeReflective(CtClass clazz, CtClass metaobject, CtClass metaclass)
Produces a reflective class.
voidonLoad(ClassPool pool, String classname)
Inserts hooks for intercepting accesses to the fields declared in reflective classes.
voidstart(ClassPool pool)
Initializes the object.

Constructor Detail

Reflection

public Reflection()
Constructs a new Reflection object.

Method Detail

makeReflective

public boolean makeReflective(String classname, String metaobject, String metaclass)
Produces a reflective class. If the super class is also made reflective, it must be done before the sub class.

Parameters: classname the name of the reflective class metaobject the class name of metaobjects. metaclass the class name of the class metaobject.

Returns: false if the class is already reflective.

See Also: Metaobject ClassMetaobject

makeReflective

public boolean makeReflective(Class clazz, Class metaobject, Class metaclass)
Produces a reflective class. If the super class is also made reflective, it must be done before the sub class.

Parameters: clazz the reflective class. metaobject the class of metaobjects. It must be a subclass of Metaobject. metaclass the class of the class metaobject. It must be a subclass of ClassMetaobject.

Returns: false if the class is already reflective.

See Also: Metaobject ClassMetaobject

makeReflective

public boolean makeReflective(CtClass clazz, CtClass metaobject, CtClass metaclass)
Produces a reflective class. It modifies the given CtClass object and makes it reflective. If the super class is also made reflective, it must be done before the sub class.

Parameters: clazz the reflective class. metaobject the class of metaobjects. It must be a subclass of Metaobject. metaclass the class of the class metaobject. It must be a subclass of ClassMetaobject.

Returns: false if the class is already reflective.

See Also: Metaobject ClassMetaobject

onLoad

public void onLoad(ClassPool pool, String classname)
Inserts hooks for intercepting accesses to the fields declared in reflective classes.

start

public void start(ClassPool pool)
Initializes the object.
Javassist, a Java-bytecode translator toolkit.
Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.