Package org.h2.util

Class SourceCompiler.ClassFileManager

  • All Implemented Interfaces:
    java.io.Closeable, java.io.Flushable, java.lang.AutoCloseable, javax.tools.JavaFileManager, javax.tools.OptionChecker
    Enclosing class:
    SourceCompiler

    static class SourceCompiler.ClassFileManager
    extends javax.tools.ForwardingJavaFileManager<javax.tools.StandardJavaFileManager>
    An in-memory class file manager.
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface javax.tools.JavaFileManager

        javax.tools.JavaFileManager.Location
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.security.SecureClassLoader classLoader  
      (package private) java.util.Map<java.lang.String,​SourceCompiler.JavaClassObject> classObjectsByName
      We use map because there can be nested, anonymous etc classes.
      • Fields inherited from class javax.tools.ForwardingJavaFileManager

        fileManager
    • Constructor Summary

      Constructors 
      Constructor Description
      ClassFileManager​(javax.tools.StandardJavaFileManager standardManager)  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.ClassLoader getClassLoader​(javax.tools.JavaFileManager.Location location)  
      javax.tools.JavaFileObject getJavaFileForOutput​(javax.tools.JavaFileManager.Location location, java.lang.String className, javax.tools.JavaFileObject.Kind kind, javax.tools.FileObject sibling)  
      • Methods inherited from class javax.tools.ForwardingJavaFileManager

        close, contains, flush, getFileForInput, getFileForOutput, getJavaFileForInput, getLocationForModule, getLocationForModule, getServiceLoader, handleOption, hasLocation, inferBinaryName, inferModuleName, isSameFile, isSupportedOption, list, listLocationsForModules
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • classObjectsByName

        java.util.Map<java.lang.String,​SourceCompiler.JavaClassObject> classObjectsByName
        We use map because there can be nested, anonymous etc classes.
      • classLoader

        private java.security.SecureClassLoader classLoader
    • Constructor Detail

      • ClassFileManager

        public ClassFileManager​(javax.tools.StandardJavaFileManager standardManager)
    • Method Detail

      • getClassLoader

        public java.lang.ClassLoader getClassLoader​(javax.tools.JavaFileManager.Location location)
        Specified by:
        getClassLoader in interface javax.tools.JavaFileManager
        Overrides:
        getClassLoader in class javax.tools.ForwardingJavaFileManager<javax.tools.StandardJavaFileManager>
      • getJavaFileForOutput

        public javax.tools.JavaFileObject getJavaFileForOutput​(javax.tools.JavaFileManager.Location location,
                                                               java.lang.String className,
                                                               javax.tools.JavaFileObject.Kind kind,
                                                               javax.tools.FileObject sibling)
                                                        throws java.io.IOException
        Specified by:
        getJavaFileForOutput in interface javax.tools.JavaFileManager
        Overrides:
        getJavaFileForOutput in class javax.tools.ForwardingJavaFileManager<javax.tools.StandardJavaFileManager>
        Throws:
        java.io.IOException