Class SimpleCompiler

    • Field Detail

      • parentClassLoader

        private java.lang.ClassLoader parentClassLoader
      • result

        private java.lang.ClassLoader result
      • debugSource

        private boolean debugSource
      • debugLines

        private boolean debugLines
      • debugVars

        private boolean debugVars
      • optionalCompileErrorHandler

        private ErrorHandler optionalCompileErrorHandler
      • optionalWarningHandler

        private WarningHandler optionalWarningHandler
    • Constructor Detail

      • SimpleCompiler

        public SimpleCompiler()
    • Method Detail

      • getClassLoader

        public java.lang.ClassLoader getClassLoader()
        Description copied from interface: ISimpleCompiler
        Returns a ClassLoader object through which the previously compiled classes can be accessed. This ClassLoader can be used for subsequent ISimpleCompilers in order to compile compilation units that use types (e.g. declare derived types) declared in the previous one.

        This method must only be called after exactly on of the ICookable.cook(String, java.io.Reader) methods was called.

        Specified by:
        getClassLoader in interface ISimpleCompiler
      • cook

        public void cook​(java.lang.String optionalFileName,
                         java.io.Reader r)
                  throws CompileException,
                         java.io.IOException
        Description copied from interface: ICookable
        Reads, scans, parses and compiles Java tokens from the given Reader.
        Specified by:
        cook in interface ICookable
        Specified by:
        cook in class Cookable
        Parameters:
        optionalFileName - Used when reporting errors and warnings.
        Throws:
        CompileException
        java.io.IOException
        See Also:
        ICookable.cook(String, Reader)
      • setDebuggingInformation

        public void setDebuggingInformation​(boolean debugSource,
                                            boolean debugLines,
                                            boolean debugVars)
        Description copied from interface: ICookable
        Determines what kind of debugging information is included in the generates classes. The default is typically '-g:none', and '-g:all' if the system property 'org.codehaus.janino.source_debugging.enable' is set to 'true'.
        Specified by:
        setDebuggingInformation in interface ICookable
      • setParentClassLoader

        public void setParentClassLoader​(java.lang.ClassLoader optionalParentClassLoader)
        Description copied from interface: ICookable
        The "parent class loader" is used to load referenced classes. Useful values are:
        System.getSystemClassLoader() The running JVM's class path
        Thread.currentThread().getContextClassLoader() or null The class loader effective for the invoking thread
        ICookable.BOOT_CLASS_LOADER The running JVM's boot class path
        The parent class loader defaults to the current thread's context class loader.
        Specified by:
        setParentClassLoader in interface ICookable
      • setParentClassLoader

        @Deprecated
        public void setParentClassLoader​(java.lang.ClassLoader optionalParentClassLoader,
                                         java.lang.Class<?>[] auxiliaryClasses)
        Deprecated.
        Auxiliary classes never really worked... don't use them.
      • setWarningHandler

        public void setWarningHandler​(WarningHandler optionalWarningHandler)
        Description copied from interface: ICookable
        By default, warnings are discarded, but an application my install a custom WarningHandler.
        Specified by:
        setWarningHandler in interface ICookable
        Parameters:
        optionalWarningHandler - null to indicate that no warnings be issued
      • assertCooked

        protected void assertCooked()
        Throw an IllegalStateException if this Cookable is not yet cooked.
      • assertNotCooked

        protected void assertNotCooked()
        Throw an IllegalStateException if this Cookable is already cooked.