Class SimpleCompiler
- java.lang.Object
-
- org.codehaus.commons.compiler.Cookable
-
- org.codehaus.commons.compiler.jdk.SimpleCompiler
-
- All Implemented Interfaces:
ICookable
,ISimpleCompiler
- Direct Known Subclasses:
ClassBodyEvaluator
public class SimpleCompiler extends Cookable implements ISimpleCompiler
-
-
Field Summary
-
Fields inherited from interface org.codehaus.commons.compiler.ICookable
BOOT_CLASS_LOADER, SYSTEM_PROPERTY_SOURCE_DEBUGGING_DIR, SYSTEM_PROPERTY_SOURCE_DEBUGGING_ENABLE
-
-
Constructor Summary
Constructors Constructor Description SimpleCompiler()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description protected void
assertCooked()
Throw anIllegalStateException
if thisCookable
is not yet cooked.protected void
assertNotCooked()
Throw anIllegalStateException
if thisCookable
is already cooked.void
cook(java.lang.String optionalFileName, java.io.Reader r)
Reads, scans, parses and compiles Java tokens from the givenReader
.protected void
cook(javax.tools.JavaFileObject compilationUnit)
java.lang.ClassLoader
getClassLoader()
Returns aClassLoader
object through which the previously compiled classes can be accessed.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)
Deprecated.-
Methods inherited from class org.codehaus.commons.compiler.Cookable
cook, cook, cook, cook, cook, cook, cook, cookFile, cookFile, cookFile, cookFile, readString
-
-
-
-
Method Detail
-
getClassLoader
public java.lang.ClassLoader getClassLoader()
Description copied from interface:ISimpleCompiler
Returns aClassLoader
object through which the previously compiled classes can be accessed. ThisClassLoader
can be used for subsequentISimpleCompiler
s 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.- Specified by:
getClassLoader
in interfaceISimpleCompiler
-
cook
public void cook(java.lang.String optionalFileName, java.io.Reader r) throws CompileException, java.io.IOException
Description copied from interface:ICookable
Reads, scans, parses and compiles Java tokens from the givenReader
.- Specified by:
cook
in interfaceICookable
- Specified by:
cook
in classCookable
- Parameters:
optionalFileName
- Used when reporting errors and warnings.- Throws:
CompileException
java.io.IOException
- See Also:
ICookable.cook(String, Reader)
-
cook
protected void cook(javax.tools.JavaFileObject compilationUnit) throws CompileException, java.io.IOException
- Throws:
CompileException
java.io.IOException
-
setDebuggingInformation
public void setDebuggingInformation(boolean debugSource, boolean debugLines, boolean debugVars)
Description copied from interface:ICookable
Determines what kind of debugging information is included in the generates classes. The default is typically '-g:none', and '-g:all' if the system property 'org.codehaus.janino.source_debugging.enable' is set to 'true'.- Specified by:
setDebuggingInformation
in interfaceICookable
-
setParentClassLoader
public void setParentClassLoader(java.lang.ClassLoader optionalParentClassLoader)
Description copied from interface:ICookable
The "parent class loader" is used to load referenced classes. Useful values are:
The parent class loader defaults to the current thread's context class loader.System.getSystemClassLoader()
The running JVM's class path Thread.currentThread().getContextClassLoader()
ornull
The class loader effective for the invoking thread ICookable.BOOT_CLASS_LOADER
The running JVM's boot class path - Specified by:
setParentClassLoader
in interfaceICookable
-
setParentClassLoader
@Deprecated public void setParentClassLoader(java.lang.ClassLoader optionalParentClassLoader, java.lang.Class<?>[] auxiliaryClasses)
Deprecated.Auxiliary classes never really worked... don't use them.- Parameters:
optionalParentClassLoader
-auxiliaryClasses
-
-
assertCooked
protected void assertCooked()
Throw anIllegalStateException
if thisCookable
is not yet cooked.
-
assertNotCooked
protected void assertNotCooked()
Throw anIllegalStateException
if thisCookable
is already cooked.
-
-