| java.lang.Object javassist.compiler.Javac
Javac | public class Javac (Code) | | |
Inner Class :public static class CtFieldWithInit extends CtField | |
Method Summary | |
public CtMember | compile(String src) Compiles a method, constructor, or field declaration
to a class.
A field declaration can declare only one field.
In a method or constructor body, $0, $1, ... | public Bytecode | compileBody(CtBehavior method, String src) Compiles a method (or constructor) body. | public void | compileExpr(String src) Compiles an exression. | public void | compileExpr(ASTree e) Compiles an exression. | public void | compileStmnt(String src) Compiles a statement (or a block).
recordParams() must be called before invoking
this method.
Local variables that are not declared
in the compiled source text might not be accessible within that
source text. | public Bytecode | getBytecode() Returns the produced bytecode. | public static ASTree | parseExpr(String src, SymbolTable st) Parsers an expression. | public boolean | recordLocalVariables(CodeAttribute ca, int pc) Records local variables available at the specified program counter.
If the LocalVariableAttribute is not available, this method does not
record any local variable. | public boolean | recordParamNames(CodeAttribute ca, int numOfLocalVars) Records parameter names if the LocalVariableAttribute is available.
It returns false unless the LocalVariableAttribute is available.
Parameters: numOfLocalVars - the number of local variables usedfor storing the parameters. | public int | recordParams(CtClass[] params, boolean isStatic) Makes variables $0 (this), $1, $2, ..., and $args represent method
parameters. | public int | recordParams(String target, CtClass[] params, boolean use0, int varNo, boolean isStatic) Makes variables $0, $1, $2, ..., and $args represent method
parameters. | public void | recordProceed(String target, String method) Prepares to use $proceed(). | public void | recordProceed(ProceedHandler h) Prepares to use $proceed(). | public int | recordReturnType(CtClass type, boolean useResultVar) Prepares to use cast $r, $w, $_, and $type.
$type is made to represent the specified return type.
It also enables to write a return statement with a return value
for void method.
If the return type is void, ($r) does nothing.
The type of $_ is java.lang.Object.
Parameters: type - the return type. Parameters: useResultVar - true if $_ is used. | public void | recordSpecialProceed(String target, String classname, String methodname, String descriptor) Prepares to use $proceed() representing a private/super's method.
If the return type of $proceed() is void, null is pushed on the
stack. | public void | recordStaticProceed(String targetClass, String method) Prepares to use $proceed() representing a static method. | public void | recordType(CtClass t) Prepares to use $type. | public int | recordVariable(CtClass type, String name) Makes the given variable available. | public void | setMaxLocals(int max) Sets maxLocals to max .
This method tells the compiler the local variables that have been
allocated for the rest of the code. |
Javac | public Javac(CtClass thisClass)(Code) | | Constructs a compiler.
Parameters: thisClass - the class that a compiled method/fieldbelongs to. |
Javac | public Javac(Bytecode b, CtClass thisClass)(Code) | | Constructs a compiler.
The produced bytecode is stored in the Bytecode object
specified by b .
Parameters: thisClass - the class that a compiled method/fieldbelongs to. |
compile | public CtMember compile(String src) throws CompileError(Code) | | Compiles a method, constructor, or field declaration
to a class.
A field declaration can declare only one field.
In a method or constructor body, $0, $1, ... and $_
are not available.
a CtMethod , CtConstructor ,or CtField object. See Also: Javac.recordProceed(String,String) |
compileExpr | public void compileExpr(String src) throws CompileError(Code) | | Compiles an exression. recordParams() must be
called before invoking this method.
Local variables are not accessible
within the compiled source text. Fields and method parameters
($0, $1, ..) are available if recordParams()
have been invoked.
|
compileExpr | public void compileExpr(ASTree e) throws CompileError(Code) | | Compiles an exression. recordParams() must be
called before invoking this method.
Local variables are not accessible
within the compiled source text. Fields and method parameters
($0, $1, ..) are available if recordParams()
have been invoked.
|
compileStmnt | public void compileStmnt(String src) throws CompileError(Code) | | Compiles a statement (or a block).
recordParams() must be called before invoking
this method.
Local variables that are not declared
in the compiled source text might not be accessible within that
source text. Fields and method parameters ($0, $1, ..) are available.
|
getBytecode | public Bytecode getBytecode()(Code) | | Returns the produced bytecode.
|
recordLocalVariables | public boolean recordLocalVariables(CodeAttribute ca, int pc) throws CompileError(Code) | | Records local variables available at the specified program counter.
If the LocalVariableAttribute is not available, this method does not
record any local variable. It only returns false.
Parameters: pc - program counter (>= 0) false if the CodeAttribute does not include aLocalVariableAttribute. |
recordParamNames | public boolean recordParamNames(CodeAttribute ca, int numOfLocalVars) throws CompileError(Code) | | Records parameter names if the LocalVariableAttribute is available.
It returns false unless the LocalVariableAttribute is available.
Parameters: numOfLocalVars - the number of local variables usedfor storing the parameters. false if the CodeAttribute does not include aLocalVariableAttribute. |
recordParams | public int recordParams(CtClass[] params, boolean isStatic) throws CompileError(Code) | | Makes variables $0 (this), $1, $2, ..., and $args represent method
parameters. $args represents an array of all the parameters.
It also makes $$ available as a parameter list of method call.
This must be called before calling compileStmnt() and
compileExpr() . The correct value of
isStatic must be recorded before compilation.
maxLocals is updated to include $0,...
|
recordParams | public int recordParams(String target, CtClass[] params, boolean use0, int varNo, boolean isStatic) throws CompileError(Code) | | Makes variables $0, $1, $2, ..., and $args represent method
parameters. $args represents an array of all the parameters.
It also makes $$ available as a parameter list of method call.
$0 can represent a local variable other than THIS (variable 0).
$class is also made available.
This must be called before calling compileStmnt() and
compileExpr() . The correct value of
isStatic must be recorded before compilation.
maxLocals is updated to include $0,...
Parameters: varNo - the register number of $0 (use0 is true)or $1 (otherwise). Parameters: target - the type of $0 (it can be null if use0 is false).It is used as the name of the type representedby $class. Parameters: isStatic - true if the method in which the compiled bytecodeis embedded is static. |
recordProceed | public void recordProceed(String target, String method) throws CompileError(Code) | | Prepares to use $proceed().
If the return type of $proceed() is void, null is pushed on the
stack.
Parameters: target - an expression specifying the target object.if null, "this" is the target. Parameters: method - the method name. |
recordReturnType | public int recordReturnType(CtClass type, boolean useResultVar) throws CompileError(Code) | | Prepares to use cast $r, $w, $_, and $type.
$type is made to represent the specified return type.
It also enables to write a return statement with a return value
for void method.
If the return type is void, ($r) does nothing.
The type of $_ is java.lang.Object.
Parameters: type - the return type. Parameters: useResultVar - true if $_ is used. -1 or the variable index assigned to $_. See Also: Javac.recordType(CtClass) |
recordSpecialProceed | public void recordSpecialProceed(String target, String classname, String methodname, String descriptor) throws CompileError(Code) | | Prepares to use $proceed() representing a private/super's method.
If the return type of $proceed() is void, null is pushed on the
stack. This method is for methods invoked by INVOKESPECIAL.
Parameters: target - an expression specifying the target object.if null, "this" is the target. Parameters: classname - the class name declaring the method. Parameters: methodname - the method name. Parameters: descriptor - the method descriptor. |
recordStaticProceed | public void recordStaticProceed(String targetClass, String method) throws CompileError(Code) | | Prepares to use $proceed() representing a static method.
If the return type of $proceed() is void, null is pushed on the
stack.
Parameters: targetClass - the fully-qualified dot-separated nameof the class declaring the method. Parameters: method - the method name. |
recordType | public void recordType(CtClass t)(Code) | | Prepares to use $type. Note that recordReturnType() overwrites
the value of $type.
Parameters: t - the type represented by $type. |
recordVariable | public int recordVariable(CtClass type, String name) throws CompileError(Code) | | Makes the given variable available.
Parameters: type - variable type Parameters: name - variable name |
setMaxLocals | public void setMaxLocals(int max)(Code) | | Sets maxLocals to max .
This method tells the compiler the local variables that have been
allocated for the rest of the code. When the compiler needs
new local variables, the local variables at the index max ,
max + 1 , ... are assigned.
This method is indirectly called by recordParams .
|
|
|