org.codehaus.commons.compiler.jdk
Class SimpleCompiler

java.lang.Object
  extended by org.codehaus.commons.compiler.Cookable
      extended by 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
SimpleCompiler()
           
 
Method Summary
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.
protected  void cook(javax.tools.JavaFileObject compilationUnit)
           
 void cook(java.lang.String optionalFileName, java.io.Reader r)
          Reads, scans, parses and compiles Java tokens from the given Reader.
 java.lang.ClassLoader getClassLoader()
          Returns a ClassLoader 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, 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
 

Constructor Detail

SimpleCompiler

public SimpleCompiler()
Method Detail

getClassLoader

public java.lang.ClassLoader getClassLoader()
Description copied from interface: ISimpleCompiler
Returns a ClassLoader 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.

Specified by:
getClassLoader in interface ISimpleCompiler

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 given Reader.

Specified by:
cook in interface ICookable
Specified by:
cook in class Cookable
Parameters:
optionalFileName - Used when reporting errors and warnings.
Throws:
CompileException
java.io.IOException

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 interface ICookable

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:
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
The parent class loader defaults to the current thread's context class loader.

Specified by:
setParentClassLoader in interface ICookable

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 an IllegalStateException if this Cookable is not yet cooked.


assertNotCooked

protected void assertNotCooked()
Throw an IllegalStateException if this Cookable is already cooked.



Copyright © 2001-2011. All Rights Reserved.