public class SimpleCompiler extends Cookable implements ISimpleCompiler
ISimpleCompiler
.BOOT_CLASS_LOADER, SYSTEM_PROPERTY_SOURCE_DEBUGGING_DIR, SYSTEM_PROPERTY_SOURCE_DEBUGGING_ENABLE
Constructor and Description |
---|
SimpleCompiler() |
Modifier and Type | Method and Description |
---|---|
protected void |
assertCooked()
Throw an
IllegalStateException if this Cookable is not yet cooked. |
protected void |
assertNotCooked()
Throw an
IllegalStateException if this Cookable is already cooked. |
void |
cook(String optionalFileName,
Reader r)
Reads, scans, parses and compiles Java tokens from the given
Reader . |
ClassLoader |
getClassLoader()
Returns a
ClassLoader object through which the previously compiled classes can be accessed. |
void |
setCompileErrorHandler(ErrorHandler optionalCompileErrorHandler)
By default,
CompileException s are thrown on compile errors, but an application my install its own
ErrorHandler . |
void |
setDebuggingInformation(boolean debugSource,
boolean debugLines,
boolean debugVars)
Determines what kind of debugging information is included in the generates classes.
|
void |
setParentClassLoader(ClassLoader optionalParentClassLoader)
The "parent class loader" is used to load referenced classes.
|
void |
setParentClassLoader(ClassLoader optionalParentClassLoader,
Class<?>[] auxiliaryClasses)
Deprecated.
Auxiliary classes never really worked... don't use them.
|
void |
setWarningHandler(WarningHandler optionalWarningHandler)
By default, warnings are discarded, but an application my install a custom
WarningHandler . |
cook, cook, cook, cook, cook, cook, cook, cookFile, cookFile, cookFile, cookFile, readString
public ClassLoader getClassLoader()
ISimpleCompiler
ClassLoader
object through which the previously compiled classes can be accessed. This ClassLoader
can be used for subsequent ISimpleCompiler
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.
getClassLoader
in interface ISimpleCompiler
public void cook(String optionalFileName, Reader r) throws CompileException, IOException
ICookable
Reader
.cook
in interface ICookable
cook
in class Cookable
optionalFileName
- Used when reporting errors and warnings.CompileException
IOException
ICookable.cook(String, Reader)
public void setDebuggingInformation(boolean debugSource, boolean debugLines, boolean debugVars)
ICookable
setDebuggingInformation
in interface ICookable
public void setParentClassLoader(ClassLoader optionalParentClassLoader)
ICookable
System.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
@Deprecated public void setParentClassLoader(ClassLoader optionalParentClassLoader, Class<?>[] auxiliaryClasses)
public void setCompileErrorHandler(ErrorHandler optionalCompileErrorHandler)
ICookable
CompileException
s are thrown on compile errors, but an application my install its own
ErrorHandler
.
Be aware that a single problem during compilation often causes a bunch of compile errors, so a good ErrorHandler
counts errors and throws a CompileException
when a limit is reached.
If the given ErrorHandler
throws CompileException
s, then the compilation is terminated and
the exception is propagated.
If the given ErrorHandler
does not throw CompileException
s, then the compiler may or may not
continue compilation, but must eventually throw a CompileException
.
In other words: The ErrorHandler
may throw a CompileException
or not, but the compiler must
definitely throw a CompileException
if one or more compile errors have occurred.
setCompileErrorHandler
in interface ICookable
optionalCompileErrorHandler
- null
to restore the default behavior (throwing a CompileException
public void setWarningHandler(WarningHandler optionalWarningHandler)
ICookable
WarningHandler
.setWarningHandler
in interface ICookable
optionalWarningHandler
- null
to indicate that no warnings be issuedprotected void assertCooked()
IllegalStateException
if this Cookable
is not yet cooked.protected void assertNotCooked()
IllegalStateException
if this Cookable
is already cooked.Copyright © 2001–2016. All rights reserved.