|
Web Site | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.codehaus.janino.UnitCompiler
public class UnitCompiler
This class actually implements the JavaTM compiler. It is associated with exactly one compilation unit which it compiles.
Nested Class Summary | |
---|---|
static interface |
UnitCompiler.ErrorHandler
Interface type for setCompileErrorHandler(org.codehaus.janino.UnitCompiler.ErrorHandler) . |
static class |
UnitCompiler.SimpleIField
Short-hand implementation of IClass.IField that implements a
non-constant, non-static, package-accessible field. |
Field Summary | |
---|---|
Java.CompilationUnit |
compilationUnit
|
Constructor Summary | |
---|---|
UnitCompiler(Java.CompilationUnit compilationUnit,
IClassLoader iClassLoader)
|
Method Summary | |
---|---|
void |
compile2(Java.AnonymousClassDeclaration acd)
|
void |
compile2(Java.ClassDeclaration cd)
|
void |
compile2(org.codehaus.janino.Java.InnerClassDeclaration icd)
|
void |
compile2(Java.InterfaceDeclaration id)
|
void |
compile2(Java.LocalClassDeclaration lcd)
|
void |
compile2(Java.MemberClassDeclaration mcd)
|
void |
compile2(Java.PackageMemberTypeDeclaration pmtd)
|
ClassFile[] |
compileUnit(EnumeratorSet debuggingInformation)
Generates an array of ClassFile objects which represent the classes and
interfaces defined in the compilation unit. |
IClass |
findClass(java.lang.String className)
Find one class or interface by name. |
IClass.IMethod |
findIMethod(Java.MethodInvocation mi)
Find named methods of "targetType", examine the argument types and choose the most specific method. |
IClass.IMethod |
findIMethod(Java.SuperclassMethodInvocation scmi)
|
IClass.IInvocable |
findMostSpecificIInvocable(Java.Locatable l,
IClass.IInvocable[] iInvocables,
IClass[] argumentTypes,
boolean boxingPermitted)
Determine the applicable invocables and choose the most specific invocable. |
boolean |
generatesCode2(Java.Block b)
|
boolean |
generatesCode2(Java.BlockStatement bs)
|
boolean |
generatesCode2(Java.EmptyStatement es)
|
boolean |
generatesCode2(Java.FieldDeclaration fd)
|
boolean |
generatesCode2(Java.Initializer i)
|
boolean |
generatesCode2(Java.LocalClassDeclarationStatement lcds)
|
java.lang.Object |
getConstantValue(Java.Rvalue rv)
Attempts to evaluate as a constant expression. |
void |
getIMethods(IClass type,
java.lang.String methodName,
java.util.List v)
Add all methods with the given methodName that are declared
by the type , its superclasses and all their superinterfaces
to the result list v . |
Java.LocalVariable |
getLocalVariable(Java.FunctionDeclarator.FormalParameter fp)
|
Java.LocalVariable |
getLocalVariable(Java.LocalVariableDeclarationStatement lvds,
Java.VariableDeclarator vd)
|
java.lang.String[] |
getSingleTypeImport(java.lang.String name)
Check if the given name was imported through a "single type import", e.g. |
CodeContext.Offset |
getWhereToBreak(Java.BreakableStatement bs)
|
IClass |
importTypeOnDemand(java.lang.String simpleTypeName,
Location location)
6.5.2.BL1.B1.B5, 6.5.2.BL1.B1.B6 Type-import-on-demand. 6.5.5.1.6 Type-import-on-demand declaration. |
void |
leave2(Java.BlockStatement bs,
IClass optionalStackValueType)
|
void |
leave2(Java.SynchronizedStatement ss,
IClass optionalStackValueType)
|
void |
leave2(Java.TryStatement ts,
IClass optionalStackValueType)
|
void |
setCompileErrorHandler(UnitCompiler.ErrorHandler optionalCompileErrorHandler)
By default, CompileException s are thrown on compile errors, but an application
my install its own (thread-local) UnitCompiler.ErrorHandler . |
void |
setWarningHandler(WarningHandler optionalWarningHandler)
By default, warnings are discarded, but an application my install a custom WarningHandler . |
IClass.IMethod |
toIMethod(Java.MethodDeclarator md)
|
Java.Lvalue |
toLvalueOrCE(Java.Atom a)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public final Java.CompilationUnit compilationUnit
Constructor Detail |
---|
public UnitCompiler(Java.CompilationUnit compilationUnit, IClassLoader iClassLoader) throws CompileException
CompileException
Method Detail |
---|
public ClassFile[] compileUnit(EnumeratorSet debuggingInformation) throws CompileException
ClassFile
objects which represent the classes and
interfaces defined in the compilation unit.
CompileException
public void compile2(Java.PackageMemberTypeDeclaration pmtd) throws CompileException
CompileException
public void compile2(Java.ClassDeclaration cd) throws CompileException
CompileException
public void compile2(Java.AnonymousClassDeclaration acd) throws CompileException
CompileException
public void compile2(Java.LocalClassDeclaration lcd) throws CompileException
CompileException
public void compile2(org.codehaus.janino.Java.InnerClassDeclaration icd) throws CompileException
CompileException
public void compile2(Java.MemberClassDeclaration mcd) throws CompileException
CompileException
public void compile2(Java.InterfaceDeclaration id) throws CompileException
CompileException
public Java.LocalVariable getLocalVariable(Java.LocalVariableDeclarationStatement lvds, Java.VariableDeclarator vd) throws CompileException
CompileException
public Java.LocalVariable getLocalVariable(Java.FunctionDeclarator.FormalParameter fp) throws CompileException
CompileException
public final java.lang.Object getConstantValue(Java.Rvalue rv) throws CompileException
Expression type | Return value type |
---|---|
String | String |
byte | Byte |
short | Chort |
int | Integer |
boolean | Boolean |
char | Character |
float | Float |
long | Long |
double | Double |
null | Java.Rvalue.CONSTANT_VALUE_NULL |
CompileException
public boolean generatesCode2(Java.BlockStatement bs)
public boolean generatesCode2(Java.EmptyStatement es)
public boolean generatesCode2(Java.LocalClassDeclarationStatement lcds)
public boolean generatesCode2(Java.Initializer i) throws CompileException
CompileException
public boolean generatesCode2(Java.Block b) throws CompileException
CompileException
public boolean generatesCode2(Java.FieldDeclaration fd) throws CompileException
CompileException
public void leave2(Java.BlockStatement bs, IClass optionalStackValueType)
public void leave2(Java.SynchronizedStatement ss, IClass optionalStackValueType)
public void leave2(Java.TryStatement ts, IClass optionalStackValueType)
public final Java.Lvalue toLvalueOrCE(Java.Atom a) throws CompileException
CompileException
public IClass.IMethod findIMethod(Java.MethodInvocation mi) throws CompileException
Notice that the returned IClass.IMethod
may be declared in an enclosing type.
IClass.IMethod
or null
CompileException
public void getIMethods(IClass type, java.lang.String methodName, java.util.List v) throws CompileException
methodName
that are declared
by the type
, its superclasses and all their superinterfaces
to the result list v
.
type
- methodName
- v
-
CompileException
public IClass.IMethod findIMethod(Java.SuperclassMethodInvocation scmi) throws CompileException
CompileException
public IClass.IInvocable findMostSpecificIInvocable(Java.Locatable l, IClass.IInvocable[] iInvocables, IClass[] argumentTypes, boolean boxingPermitted) throws CompileException
IClass.IInvocable
or null
if no IClass.IInvocable
is applicable
CompileException
public IClass.IMethod toIMethod(Java.MethodDeclarator md)
public java.lang.String[] getSingleTypeImport(java.lang.String name)
import java.util.Map
null
public IClass importTypeOnDemand(java.lang.String simpleTypeName, Location location) throws CompileException
null
if the given simpleTypeName
cannot be resolved through any of the import-on-demand directives
CompileException
public IClass findClass(java.lang.String className)
className
- Fully qualified class name, e.g. "pkg1.pkg2.Outer$Inner".
null
if a class with that name is not declared in this compilation unitpublic void setCompileErrorHandler(UnitCompiler.ErrorHandler optionalCompileErrorHandler)
CompileException
s are thrown on compile errors, but an application
my install its own (thread-local) UnitCompiler.ErrorHandler
.
Be aware that a single problem during compilation often causes a bunch of compile errors,
so a good UnitCompiler.ErrorHandler
counts errors and throws a CompileException
when
a limit is reached.
If the given UnitCompiler.ErrorHandler
does not throw CompileException
s, then
compileUnit(EnumeratorSet)
will throw one when the compilation of the unit
is finished, and errors had occurred. In other words: The UnitCompiler.ErrorHandler
may
throw a CompileException
or not, but compileUnit(EnumeratorSet)
will
definitely throw a CompileException
if one or more compile errors have
occurred.
optionalCompileErrorHandler
- null
to restore the default behavior (throwing a CompileException
public void setWarningHandler(WarningHandler optionalWarningHandler)
WarningHandler
.
optionalWarningHandler
- null
to indicate that no warnings be issuedpublic CodeContext.Offset getWhereToBreak(Java.BreakableStatement bs)
|
Web Site | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |