Interface JavaSourceCompiler


public interface JavaSourceCompiler

A plain source Java compiler for current RuntimeContext. Compiled classes are automatically added to the current context's classloader and become available for subsequent compilation tasks, both explicit and implicit (e.g., compiling literal conditions or actions).

See Also:
  • Method Details

    • compile

      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

      <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
    • 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)
      Parameters:
      binaryName - class binary name
      classBytes - class bytes