janino.net

org.codehaus.janino
Class JavaSourceIClassLoader

java.lang.Object
  extended by org.codehaus.janino.IClassLoader
      extended by org.codehaus.janino.JavaSourceIClassLoader

public class JavaSourceIClassLoader
extends IClassLoader

This IClassLoader finds, scans and parses compilation units.

Notice that it does not compile them!


Field Summary
 
Fields inherited from class org.codehaus.janino.IClassLoader
ANNO_java_lang_Override, CTOR_java_lang_StringBuilder__java_lang_String, METH_java_lang_Iterable__iterator, METH_java_lang_String__concat__java_lang_String, METH_java_lang_String__valueOf__boolean, METH_java_lang_String__valueOf__char, METH_java_lang_String__valueOf__double, METH_java_lang_String__valueOf__float, METH_java_lang_String__valueOf__int, METH_java_lang_String__valueOf__java_lang_Object, METH_java_lang_String__valueOf__long, METH_java_lang_StringBuilder__append__java_lang_String, METH_java_lang_StringBuilder__toString, METH_java_util_Iterator__hasNext, METH_java_util_Iterator__next, TYPE_java_io_Serializable, TYPE_java_lang_AssertionError, TYPE_java_lang_Boolean, TYPE_java_lang_Byte, TYPE_java_lang_Character, TYPE_java_lang_Class, TYPE_java_lang_Cloneable, TYPE_java_lang_Double, TYPE_java_lang_Error, TYPE_java_lang_Exception, TYPE_java_lang_Float, TYPE_java_lang_Integer, TYPE_java_lang_Iterable, TYPE_java_lang_Long, TYPE_java_lang_Object, TYPE_java_lang_RuntimeException, TYPE_java_lang_Short, TYPE_java_lang_String, TYPE_java_lang_StringBuilder, TYPE_java_lang_Throwable, TYPE_java_util_Iterator
 
Constructor Summary
JavaSourceIClassLoader(ResourceFinder sourceFinder, String optionalCharacterEncoding, IClassLoader optionalParentIClassLoader)
           
 
Method Summary
protected  Java.CompilationUnit findCompilationUnit(String className)
          Finds the Java™ source file for the named class through the configured 'source resource finder' and parses it.
 IClass findIClass(String fieldDescriptor)
          Find a new IClass by descriptor; return null if a class for that descriptor could not be found.
 Set<UnitCompiler> getUnitCompilers()
          Returns the set of UnitCompilers that were created so far.
 void setCharacterEncoding(String optionalCharacterEncoding)
           
 void setCompileErrorHandler(ErrorHandler optionalCompileErrorHandler)
           
 void setSourceFinder(ResourceFinder pathResourceFinder)
           
 void setWarningHandler(WarningHandler optionalWarningHandler)
           
 
Methods inherited from class org.codehaus.janino.IClassLoader
createJavacLikePathIClassLoader, defineIClass, loadIClass, postConstruct
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JavaSourceIClassLoader

public JavaSourceIClassLoader(ResourceFinder sourceFinder,
                              String optionalCharacterEncoding,
                              IClassLoader optionalParentIClassLoader)
Method Detail

getUnitCompilers

public Set<UnitCompiler> getUnitCompilers()
Returns the set of UnitCompilers that were created so far.


setSourceFinder

public void setSourceFinder(ResourceFinder pathResourceFinder)
Parameters:
pathResourceFinder - The source path

setCharacterEncoding

public void setCharacterEncoding(String optionalCharacterEncoding)
Parameters:
optionalCharacterEncoding - The name of the charset that is used to read source files, or null to use the platform's 'default charset'

setCompileErrorHandler

public void setCompileErrorHandler(ErrorHandler optionalCompileErrorHandler)
See Also:
UnitCompiler.setCompileErrorHandler(ErrorHandler)

setWarningHandler

public void setWarningHandler(WarningHandler optionalWarningHandler)
See Also:
Parser.setWarningHandler(WarningHandler), UnitCompiler.setCompileErrorHandler(ErrorHandler)

findIClass

public IClass findIClass(String fieldDescriptor)
                  throws ClassNotFoundException
Description copied from class: IClassLoader
Find a new IClass by descriptor; return null if a class for that descriptor could not be found.

Similar ClassLoader.findClass(java.lang.String), this method must

The format of a descriptor is defined in JVMS 4.3.2. Typical descriptors are:

Notice that this method is never called for array types.

Notice that this method is never called from more than one thread at a time. In other words, implementations of this method need not be synchronized.

Specified by:
findIClass in class IClassLoader
Parameters:
fieldDescriptor - Field descriptor of the IClass to load, e.g. "Lpkg1/pkg2/Outer$Inner;"
Returns:
null if a class with that descriptor could not be found
Throws:
ClassNotFoundException - An exception was raised while loading the IClass

findCompilationUnit

protected Java.CompilationUnit findCompilationUnit(String className)
                                            throws IOException,
                                                   CompileException
Finds the Java™ source file for the named class through the configured 'source resource finder' and parses it.

Returns:
null iff the source file could not be found
Throws:
IOException
CompileException

janino.net