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
FieldsModifier and TypeFieldDescriptionprivate ErrorHandler
private static final Logger
private EnumSet<JaninoOption>
private Charset
private ResourceFinder
private int
private int
private final Set<UnitCompiler>
Collection of parsed compilation units.private WarningHandler
Fields inherited from class org.codehaus.janino.IClassLoader
CTOR_java_lang_StringBuilder__java_lang_String, METH_java_lang_Enum__ordinal, METH_java_lang_Iterable__iterator, METH_java_lang_String__concat__java_lang_String, METH_java_lang_String__equals__java_lang_Object, METH_java_lang_String__hashCode, 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__boolean, METH_java_lang_StringBuilder__append__char, METH_java_lang_StringBuilder__append__double, METH_java_lang_StringBuilder__append__float, METH_java_lang_StringBuilder__append__int, METH_java_lang_StringBuilder__append__java_lang_Object, METH_java_lang_StringBuilder__append__java_lang_String, METH_java_lang_StringBuilder__append__long, METH_java_lang_StringBuilder__toString, METH_java_lang_Throwable__addSuppressed, METH_java_util_Iterator__hasNext, METH_java_util_Iterator__next, TYPE_java_io_Serializable, TYPE_java_lang_annotation_Retention, 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_Enum, 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_Override, TYPE_java_lang_RuntimeException, TYPE_java_lang_Short, TYPE_java_lang_String, TYPE_java_lang_StringBuilder, TYPE_java_lang_System, TYPE_java_lang_Throwable, TYPE_java_lang_Void, TYPE_java_util_Iterator
-
Constructor Summary
ConstructorsConstructorDescriptionJavaSourceIClassLoader
(ResourceFinder sourceFinder, String sourceCharsetName, IClassLoader parentIClassLoader) -
Method Summary
Modifier and TypeMethodDescriptionprotected Java.AbstractCompilationUnit
findCompilationUnit
(String className) Finds the Java source file for the named class through the configured 'source resource finder' and parses it.findIClass
(String fieldDescriptor) Finds a newIClass
by descriptor and callsIClassLoader.defineIClass(IClass)
.Returns the set ofUnitCompiler
s that were created so far.options()
options
(EnumSet<JaninoOption> options) Sets the options for all future compilations.void
setCharacterEncoding
(String sourceCharsetName) Deprecated.void
setCompileErrorHandler
(ErrorHandler compileErrorHandler) void
setSourceCharset
(Charset sourceCharset) void
setSourceFinder
(ResourceFinder sourceFinder) void
setSourceVersion
(int version) void
setTargetVersion
(int version) void
setWarningHandler
(WarningHandler warningHandler) Methods inherited from class org.codehaus.janino.IClassLoader
createJavacLikePathIClassLoader, defineIClass, getParentIClassLoader, loadIClass, postConstruct
-
Field Details
-
LOGGER
-
sourceFinder
-
sourceCharset
-
options
-
unitCompilers
Collection of parsed compilation units. -
sourceVersion
private int sourceVersion -
targetVersion
private int targetVersion -
compileErrorHandler
-
warningHandler
-
-
Constructor Details
-
JavaSourceIClassLoader
public JavaSourceIClassLoader(ResourceFinder sourceFinder, @Nullable String sourceCharsetName, @Nullable IClassLoader parentIClassLoader)
-
-
Method Details
-
setSourceVersion
public void setSourceVersion(int version) -
setTargetVersion
public void setTargetVersion(int version) -
getUnitCompilers
Returns the set ofUnitCompiler
s that were created so far. -
setSourceFinder
- Parameters:
sourceFinder
- The source path
-
getSourceFinder
-
setCharacterEncoding
Deprecated.UsesetSourceCharset(Charset)
instead -
setSourceCharset
- Parameters:
sourceCharset
- The charset that is used to read source files
-
setCompileErrorHandler
-
setWarningHandler
-
options
- Returns:
- A reference to the currently effective compilation options; changes to it take effect immediately
-
options
Sets the options for all future compilations. -
findIClass
Description copied from class:IClassLoader
Finds a newIClass
by descriptor and callsIClassLoader.defineIClass(IClass)
.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/Clazz;
(Class declared in package)Lpkg1/pkg2/Outer$Inner;
Member class
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 thread-safe.
- 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
-
findCompilationUnit
@Nullable protected Java.AbstractCompilationUnit 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
-
setSourceCharset(Charset)
instead