Package org.codehaus.janino
Class JavaSourceIClassLoader
- java.lang.Object
-
- org.codehaus.janino.IClassLoader
-
- org.codehaus.janino.JavaSourceIClassLoader
-
public class JavaSourceIClassLoader extends IClassLoader
ThisIClassLoader
finds, scans and parses compilation units.Notice that it does not compile them!
-
-
Field Summary
Fields Modifier and Type Field Description private static boolean
DEBUG
private java.lang.String
optionalCharacterEncoding
private ErrorHandler
optionalCompileErrorHandler
private WarningHandler
optionalWarningHandler
private ResourceFinder
sourceFinder
private java.util.Set<UnitCompiler>
unitCompilers
Collection of parsed compilation units.-
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
Constructors Constructor Description JavaSourceIClassLoader(ResourceFinder sourceFinder, java.lang.String optionalCharacterEncoding, IClassLoader optionalParentIClassLoader)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Java.CompilationUnit
findCompilationUnit(java.lang.String className)
Finds the Java™ source file for the named class through the configured 'source resource finder' and parses it.IClass
findIClass(java.lang.String fieldDescriptor)
java.util.Set<UnitCompiler>
getUnitCompilers()
Returns the set ofUnitCompiler
s that were created so far.void
setCharacterEncoding(java.lang.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
-
-
-
-
Field Detail
-
DEBUG
private static final boolean DEBUG
- See Also:
- Constant Field Values
-
sourceFinder
private ResourceFinder sourceFinder
-
optionalCharacterEncoding
private java.lang.String optionalCharacterEncoding
-
unitCompilers
private final java.util.Set<UnitCompiler> unitCompilers
Collection of parsed compilation units.
-
optionalCompileErrorHandler
private ErrorHandler optionalCompileErrorHandler
-
optionalWarningHandler
private WarningHandler optionalWarningHandler
-
-
Constructor Detail
-
JavaSourceIClassLoader
public JavaSourceIClassLoader(ResourceFinder sourceFinder, java.lang.String optionalCharacterEncoding, IClassLoader optionalParentIClassLoader)
-
-
Method Detail
-
getUnitCompilers
public java.util.Set<UnitCompiler> getUnitCompilers()
Returns the set ofUnitCompiler
s that were created so far.
-
setSourceFinder
public void setSourceFinder(ResourceFinder pathResourceFinder)
- Parameters:
pathResourceFinder
- The source path
-
setCharacterEncoding
public void setCharacterEncoding(java.lang.String optionalCharacterEncoding)
- Parameters:
optionalCharacterEncoding
- The name of the charset that is used to read source files, ornull
to use the platform's 'default charset'
-
setCompileErrorHandler
public void setCompileErrorHandler(ErrorHandler optionalCompileErrorHandler)
-
setWarningHandler
public void setWarningHandler(WarningHandler optionalWarningHandler)
-
findIClass
public IClass findIClass(java.lang.String fieldDescriptor) throws java.lang.ClassNotFoundException
Description copied from class:IClassLoader
Find a newIClass
by descriptor; returnnull
if a class for thatdescriptor
could not be found.Similar
ClassLoader.findClass(java.lang.String)
, this method must- Get an
IClass
object from somewhere for the given type - Call
IClassLoader.defineIClass(IClass)
with thatIClass
object as the argument - Return the
IClass
object
The format of a
descriptor
is defined in JVMS 4.3.2. Typical descriptors are:I
(Integer)Lpkg1/pkg2/Cls;
(Class declared in package)Lpkg1/pkg2/Outer$Inner;
Member class
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 classIClassLoader
- Parameters:
fieldDescriptor
- Field descriptor of theIClass
to load, e.g. "Lpkg1/pkg2/Outer$Inner;"- Returns:
null
if a class with that descriptor could not be found- Throws:
java.lang.ClassNotFoundException
- An exception was raised while loading theIClass
- Get an
-
findCompilationUnit
protected Java.CompilationUnit findCompilationUnit(java.lang.String className) throws java.io.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:
java.io.IOException
CompileException
-
-