|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.codehaus.commons.compiler.Cookable
org.codehaus.janino.SimpleCompiler
public class SimpleCompiler
To set up a SimpleCompiler object, proceed as described for ISimpleCompiler.
Alternatively, a number of "convenience constructors" exist that execute the described steps
instantly.
| Field Summary | |
|---|---|
protected boolean |
debugLines
|
protected boolean |
debugSource
|
protected boolean |
debugVars
|
| Fields inherited from interface org.codehaus.commons.compiler.ICookable |
|---|
BOOT_CLASS_LOADER, SYSTEM_PROPERTY_SOURCE_DEBUGGING_DIR, SYSTEM_PROPERTY_SOURCE_DEBUGGING_ENABLE |
| Constructor Summary | |
|---|---|
SimpleCompiler()
|
|
SimpleCompiler(Scanner scanner,
java.lang.ClassLoader optionalParentClassLoader)
Equivalent to |
|
SimpleCompiler(java.lang.String fileName)
Equivalent to |
|
SimpleCompiler(java.lang.String optionalFileName,
java.io.InputStream is)
Equivalent to |
|
SimpleCompiler(java.lang.String optionalFileName,
java.io.Reader in)
Equivalent to |
|
| Method Summary | |
|---|---|
protected void |
assertNotCooked()
Throw an IllegalStateException if this Cookable is already cooked. |
protected Java.Type[] |
classesToTypes(Location location,
java.lang.Class[] classes)
Convert an array of Classes into an array ofJava.Types. |
protected Java.Type |
classToType(Location location,
java.lang.Class optionalClass)
Wrap a reflection Class in a Java.Type object. |
protected java.lang.ClassLoader |
compileToClassLoader(Java.CompilationUnit compilationUnit)
Compile the given compilation unit. |
void |
cook(Java.CompilationUnit compilationUnit)
Cook this compilation unit directly. |
void |
cook(Scanner scanner)
|
void |
cook(java.lang.String optionalFileName,
java.io.Reader r)
Reads, scans, parses and compiles Java tokens from the given Reader. |
boolean |
equals(java.lang.Object o)
Two SimpleCompilers are regarded equal iff
Both are objects of the same class (e.g. |
java.lang.ClassLoader |
getClassLoader()
Returns a ClassLoader object through which the previously compiled classes can be accessed. |
int |
hashCode()
|
static void |
main(java.lang.String[] args)
|
void |
setDebuggingInformation(boolean debugSource,
boolean debugLines,
boolean debugVars)
Determines what kind of debugging information is included in the generates classes. |
void |
setParentClassLoader(java.lang.ClassLoader optionalParentClassLoader)
The "parent class loader" is used to load referenced classes. |
void |
setParentClassLoader(java.lang.ClassLoader optionalParentClassLoader,
java.lang.Class[] auxiliaryClasses)
Allow references to the classes loaded through this parent class loader (@see setParentClassLoader(ClassLoader)), plus the extra
auxiliaryClasses. |
protected void |
setUpClassLoaders()
Initializes classLoader and iClassLoader from the configured
parentClassLoader and optionalAuxiliaryClasses. |
| Methods inherited from class org.codehaus.commons.compiler.Cookable |
|---|
cook, cook, cook, cook, cook, cook, cook, cookFile, cookFile, cookFile, cookFile, readString |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface org.codehaus.commons.compiler.ICookable |
|---|
cook, cook, cook, cook, cook, cook, cook, cookFile, cookFile, cookFile, cookFile |
| Field Detail |
|---|
protected boolean debugSource
protected boolean debugLines
protected boolean debugVars
| Constructor Detail |
|---|
public SimpleCompiler(java.lang.String optionalFileName,
java.io.Reader in)
throws java.io.IOException,
CompileException
SimpleCompiler sc = new SimpleCompiler(); sc.cook(optionalFileName, in);
java.io.IOException
CompileExceptionSimpleCompiler(),
Cookable.cook(String, Reader)
public SimpleCompiler(java.lang.String optionalFileName,
java.io.InputStream is)
throws java.io.IOException,
CompileException
SimpleCompiler sc = new SimpleCompiler(); sc.cook(optionalFileName, is);
java.io.IOException
CompileExceptionSimpleCompiler(),
Cookable.cook(String, InputStream)
public SimpleCompiler(java.lang.String fileName)
throws java.io.IOException,
CompileException
SimpleCompiler sc = new SimpleCompiler(); sc.cook(fileName);
java.io.IOException
CompileExceptionSimpleCompiler(),
Cookable.cookFile(String)
public SimpleCompiler(Scanner scanner,
java.lang.ClassLoader optionalParentClassLoader)
throws java.io.IOException,
CompileException
SimpleCompiler sc = new SimpleCompiler(); sc.setParentClassLoader(optionalParentClassLoader); sc.cook(scanner);
java.io.IOException
CompileExceptionSimpleCompiler(),
setParentClassLoader(ClassLoader),
Cookable.cook(Reader)public SimpleCompiler()
| Method Detail |
|---|
public static void main(java.lang.String[] args)
throws java.lang.Exception
java.lang.Exceptionpublic void setParentClassLoader(java.lang.ClassLoader optionalParentClassLoader)
ICookableSystem.getSystemClassLoader() |
The running JVM's class path |
Thread.currentThread().getContextClassLoader() or null |
The class loader effective for the invoking thread |
ICookable.BOOT_CLASS_LOADER |
The running JVM's boot class path |
setParentClassLoader in interface ICookable
public void setParentClassLoader(java.lang.ClassLoader optionalParentClassLoader,
java.lang.Class[] auxiliaryClasses)
setParentClassLoader(ClassLoader)), plus the extra
auxiliaryClasses.
Notice that the auxiliaryClasses must either be loadable through the
optionalParentClassLoader (in which case they have no effect), or
no class with the same name must be loadable through the
optionalParentClassLoader.
public void setDebuggingInformation(boolean debugSource,
boolean debugLines,
boolean debugVars)
ICookable
setDebuggingInformation in interface ICookable
public final void cook(java.lang.String optionalFileName,
java.io.Reader r)
throws CompileException,
java.io.IOException
ICookableReader.
cook in interface ICookablecook in class CookableoptionalFileName - Used when reporting errors and warnings.
CompileException
java.io.IOException
public void cook(Scanner scanner)
throws CompileException,
java.io.IOException
CompileException
java.io.IOException
public void cook(Java.CompilationUnit compilationUnit)
throws CompileException
Cookable.cook(java.lang.String, java.io.Reader)
CompileExceptionprotected final void setUpClassLoaders()
classLoader and iClassLoader from the configured
parentClassLoader and optionalAuxiliaryClasses. These are needed by
classToType(Location, Class) and friends which are used when creating the AST.
public java.lang.ClassLoader getClassLoader()
ISimpleCompilerClassLoader object through which the previously compiled classes can be accessed. This ClassLoader can be used for subsequent ISimpleCompilers in order to compile compilation units that use
types (e.g. declare derived types) declared in the previous one.
This method must only be called after exactly on of the ICookable.cook(String, java.io.Reader) methods was called.
getClassLoader in interface ISimpleCompilerpublic boolean equals(java.lang.Object o)
SimpleCompilers are regarded equal iff
ScriptEvaluators)
ByteArrayClassLoader.equals(Object)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Object
protected Java.Type classToType(Location location,
java.lang.Class optionalClass)
Class in a Java.Type object.
protected Java.Type[] classesToTypes(Location location,
java.lang.Class[] classes)
Classes into an array ofJava.Types.
protected final java.lang.ClassLoader compileToClassLoader(Java.CompilationUnit compilationUnit)
throws CompileException
compilationUnit - The parsed compilation unit
ClassLoader into which the compiled classes were defined
CompileExceptionprotected void assertNotCooked()
IllegalStateException if this Cookable is already cooked.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||