Package org.evrete.api
Interface JavaSourceCompiler
-
public interface JavaSourceCompilerA plain source Java compiler for current
RuntimeContext. Compiled classes are automatically added to the current context's classloader.- See Also:
RuntimeContext.getSourceCompiler()
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interfaceJavaSourceCompiler.ClassSourceThe ClassSource interface represents a source code file that can be compiled by a Java compiler.static interfaceJavaSourceCompiler.Result<S extends JavaSourceCompiler.ClassSource>The Result interface represents the result of compiling a source code file using a Java compiler.
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default Class<?>compile(String source)<S extends JavaSourceCompiler.ClassSource>
Collection<JavaSourceCompiler.Result<S>>compile(Collection<S> sources)default Map<String,Class<?>>compile(Set<String> 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.JavaSourceCompiler.ClassSourceresolve(String classSource)Resolves plain String java class source into aJavaSourceCompiler.ClassSourceinstance by deriving the class's binary name
-
-
-
Method Detail
-
compile
<S extends JavaSourceCompiler.ClassSource> Collection<JavaSourceCompiler.Result<S>> compile(Collection<S> sources) throws org.evrete.runtime.compiler.CompilationException
- Parameters:
sources- Java sources to compile- Returns:
- compiled classes.
- Throws:
org.evrete.runtime.compiler.CompilationException- if compilation failed
-
resolve
JavaSourceCompiler.ClassSource resolve(String classSource)
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
default Map<String,Class<?>> compile(Set<String> sources) throws org.evrete.runtime.compiler.CompilationException
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:
org.evrete.runtime.compiler.CompilationException- if compilation failed
-
compile
default Class<?> compile(String source) throws org.evrete.runtime.compiler.CompilationException
- Parameters:
source- plain Java source code- Returns:
- compiled class
- Throws:
org.evrete.runtime.compiler.CompilationException- if compilation failed
-
defineClass
void defineClass(String binaryName, byte[] classBytes)
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
-
-