Package javassist.tools.rmi
Class StubGenerator
- java.lang.Object
-
- javassist.tools.rmi.StubGenerator
-
- All Implemented Interfaces:
Translator
public class StubGenerator extends java.lang.Object implements Translator
A stub-code generator. It is used for producing a proxy class.The proxy class for class A is as follows:
public class A implements Proxy, Serializable { private ObjectImporter importer; private int objectId; public int _getObjectId() { return objectId; } public A(ObjectImporter oi, int id) { importer = oi; objectId = id; } ... the same methods that the original class A declares ... }
Instances of the proxy class is created by an
ObjectImporter
object.
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.String
accessorObjectId
private ClassPool
classPool
private CtClass[]
exceptionForProxy
private static java.lang.String
fieldImporter
private static java.lang.String
fieldObjectId
private CtMethod
forwardMethod
private CtMethod
forwardStaticMethod
private CtClass[]
interfacesForProxy
private java.util.Hashtable
proxyClasses
private CtClass[]
proxyConstructorParamTypes
private static java.lang.String
sampleClass
-
Constructor Summary
Constructors Constructor Description StubGenerator()
Constructs a stub-code generator.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
addMethods(CtClass proxy, java.lang.reflect.Method[] ms)
boolean
isProxyClass(java.lang.String name)
Returnstrue
if the specified class is a proxy class recorded bymakeProxyClass()
.boolean
makeProxyClass(java.lang.Class clazz)
Makes a proxy class.private void
modifySuperclass(CtClass orgclass)
Adds a default constructor to the super classes.void
onLoad(ClassPool pool, java.lang.String classname)
Does nothing.private CtClass
produceProxyClass(CtClass orgclass, java.lang.Class orgRtClass)
void
start(ClassPool pool)
Initializes the object.private CtClass
toCtClass(java.lang.Class rtclass)
private CtClass[]
toCtClass(java.lang.Class[] rtclasses)
-
-
-
Field Detail
-
fieldImporter
private static final java.lang.String fieldImporter
- See Also:
- Constant Field Values
-
fieldObjectId
private static final java.lang.String fieldObjectId
- See Also:
- Constant Field Values
-
accessorObjectId
private static final java.lang.String accessorObjectId
- See Also:
- Constant Field Values
-
sampleClass
private static final java.lang.String sampleClass
- See Also:
- Constant Field Values
-
classPool
private ClassPool classPool
-
proxyClasses
private java.util.Hashtable proxyClasses
-
forwardMethod
private CtMethod forwardMethod
-
forwardStaticMethod
private CtMethod forwardStaticMethod
-
proxyConstructorParamTypes
private CtClass[] proxyConstructorParamTypes
-
interfacesForProxy
private CtClass[] interfacesForProxy
-
exceptionForProxy
private CtClass[] exceptionForProxy
-
-
Method Detail
-
start
public void start(ClassPool pool) throws NotFoundException
Initializes the object. This is a method declared in javassist.Translator.- Specified by:
start
in interfaceTranslator
- Parameters:
pool
- theClassPool
that this translator should use.- Throws:
NotFoundException
- if aCtClass
cannot be found.- See Also:
Translator.start(ClassPool)
-
onLoad
public void onLoad(ClassPool pool, java.lang.String classname)
Does nothing. This is a method declared in javassist.Translator.- Specified by:
onLoad
in interfaceTranslator
- Parameters:
pool
- theClassPool
that this translator should use.classname
- the name of the class being loaded.- See Also:
Translator.onLoad(ClassPool,String)
-
isProxyClass
public boolean isProxyClass(java.lang.String name)
Returnstrue
if the specified class is a proxy class recorded bymakeProxyClass()
.- Parameters:
name
- a fully-qualified class name
-
makeProxyClass
public boolean makeProxyClass(java.lang.Class clazz) throws CannotCompileException, NotFoundException
Makes a proxy class. The produced class is substituted for the original class.- Parameters:
clazz
- the class referenced through the proxy class.- Returns:
false
if the proxy class has been already produced.- Throws:
CannotCompileException
NotFoundException
-
produceProxyClass
private CtClass produceProxyClass(CtClass orgclass, java.lang.Class orgRtClass) throws CannotCompileException, NotFoundException
-
toCtClass
private CtClass toCtClass(java.lang.Class rtclass) throws NotFoundException
- Throws:
NotFoundException
-
toCtClass
private CtClass[] toCtClass(java.lang.Class[] rtclasses) throws NotFoundException
- Throws:
NotFoundException
-
addMethods
private void addMethods(CtClass proxy, java.lang.reflect.Method[] ms) throws CannotCompileException, NotFoundException
-
modifySuperclass
private void modifySuperclass(CtClass orgclass) throws CannotCompileException, NotFoundException
Adds a default constructor to the super classes.
-
-