Package org.codehaus.janino
Class JavaSourceIClassLoader
java.lang.Object
org.codehaus.janino.IClassLoader
org.codehaus.janino.JavaSourceIClassLoader
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
JAVA_IO_SERIALIZABLE, JAVA_LANG_ASSERTIONERROR, JAVA_LANG_BOOLEAN, JAVA_LANG_BYTE, JAVA_LANG_CHARACTER, JAVA_LANG_CLASS, JAVA_LANG_CLONEABLE, JAVA_LANG_DOUBLE, JAVA_LANG_ERROR, JAVA_LANG_FLOAT, JAVA_LANG_INTEGER, JAVA_LANG_LONG, JAVA_LANG_OBJECT, JAVA_LANG_OVERRIDE, JAVA_LANG_RUNTIMEEXCEPTION, JAVA_LANG_SHORT, JAVA_LANG_STRING, JAVA_LANG_THROWABLE
-
Constructor Summary
ConstructorsConstructorDescriptionJavaSourceIClassLoader
(ResourceFinder sourceFinder, String optionalCharacterEncoding, Set unitCompilers, IClassLoader optionalParentIClassLoader) Notice that theunitCompilers
set is both read and written by theJavaSourceIClassLoader
: As it searches forIClass
es, it looks intounitCompilers
for class declarations, and as it opens, scans and parses compilation units on-the-fly, it adds them tounitCompilers
. -
Method Summary
Modifier and TypeMethodDescriptionfindIClass
(String fieldDescriptor) void
setCharacterEncoding
(String optionalCharacterEncoding) void
setCompileErrorHandler
(UnitCompiler.ErrorHandler optionalCompileErrorHandler) void
setSourceFinder
(ResourceFinder pathResourceFinder) void
setWarningHandler
(WarningHandler optionalWarningHandler) Methods inherited from class org.codehaus.janino.IClassLoader
createJavacLikePathIClassLoader, defineIClass, loadIClass, postConstruct
-
Constructor Details
-
JavaSourceIClassLoader
public JavaSourceIClassLoader(ResourceFinder sourceFinder, String optionalCharacterEncoding, Set unitCompilers, IClassLoader optionalParentIClassLoader) Notice that theunitCompilers
set is both read and written by theJavaSourceIClassLoader
: As it searches forIClass
es, it looks intounitCompilers
for class declarations, and as it opens, scans and parses compilation units on-the-fly, it adds them tounitCompilers
.
-
-
Method Details
-
setSourceFinder
-
setCharacterEncoding
-
setCompileErrorHandler
-
setWarningHandler
-
findIClass
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:
ClassNotFoundException
- An exception was raised while loading theIClass
- Get an
-