public interface JavaSourceCompiler
A plain source Java compiler for current RuntimeContext.
Compiled classes are automatically added to the current context's classloader.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic interfaceThe ClassSource interface represents a source code file that can be compiled by a Java compiler.static interfaceThe Result interface represents the result of compiling a source code file using a Java compiler. -
Method Summary
Modifier and TypeMethodDescriptiondefault Class<?><S extends JavaSourceCompiler.ClassSource>
Collection<JavaSourceCompiler.Result<S>>compile(Collection<S> sources) This method tries to resolve every source's package and class names and calls thecompile(Collection)afterwardsvoiddefineClass(String binaryName, byte[] classBytes) Defines a class by loading its binary representation into the current runtime context's classloader.Resolves plain String java class source into aJavaSourceCompiler.ClassSourceinstance by deriving the class's binary name
-
Method Details
-
compile
<S extends JavaSourceCompiler.ClassSource> Collection<JavaSourceCompiler.Result<S>> compile(Collection<S> sources) throws CompilationException - Type Parameters:
S- the type of class sources- Parameters:
sources- Java sources to compile- Returns:
- compiled classes.
- Throws:
CompilationException- if compilation failed
-
resolve
Resolves plain String java class source into aJavaSourceCompiler.ClassSourceinstance by deriving the class's binary name- Parameters:
classSource- plain Java class source- Returns:
- resolved
JavaSourceCompiler.ClassSourceinstance
-
compile
This method tries to resolve every source's package and class names and calls the
compile(Collection)afterwards- Parameters:
sources- Java sources to compile- Returns:
- map that associates sources and their respective compilation results
- Throws:
CompilationException- if compilation failed
-
compile
- Parameters:
source- plain Java source code- Returns:
- compiled class
- Throws:
CompilationException- if compilation failed
-
defineClass
Defines a class by loading its binary representation into the current runtime context's classloader. This method is used when dynamically generating classes at runtime.- Parameters:
binaryName- the fully qualified binary name of the classclassBytes- the byte array of the class's binary representation
-