Class InMemoryFileManager
java.lang.Object
io.github.mkoncek.classpathless.impl.InMemoryFileManager
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable,JavaFileManager,OptionChecker
-
Nested Class Summary
Nested classes/interfaces inherited from interface javax.tools.JavaFileManager
JavaFileManager.Location -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ClasspathlessCompiler.Argumentsprivate ClassesProviderprivate ArrayList<InMemoryJavaClassFileObject> private JavaFileManagerprivate static final Stringprivate JavaFileObjectprivate LoggingSwitch -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) voidclearAndGetOutput(Collection<JavaFileObject> classOutput) voidclose()booleancontains(JavaFileManager.Location location, FileObject fo) voidflush()getClassLoader(JavaFileManager.Location location) getFileForInput(JavaFileManager.Location location, String packageName, String relativeName) getFileForOutput(JavaFileManager.Location location, String packageName, String relativeName, FileObject sibling) getJavaFileForInput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind) getJavaFileForOutput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling) getLocationForModule(JavaFileManager.Location location, String moduleName) getLocationForModule(JavaFileManager.Location location, JavaFileObject fo) <S> ServiceLoader<S> getServiceLoader(JavaFileManager.Location location, Class<S> service) booleanhandleOption(String current, Iterator<String> remaining) booleanhasLocation(JavaFileManager.Location location) private Collection<String> hostClassesNames(Iterable<JavaFileObject> jfobjects) A utility which extracts the fully qualified names of given file objects assuming they are the host system classes returned by the StandardJavaFileManager.inferBinaryName(JavaFileManager.Location location, JavaFileObject file) inferModuleName(JavaFileManager.Location location) booleanisSameFile(FileObject a, FileObject b) intisSupportedOption(String option) list(JavaFileManager.Location location, String packageName, Set<JavaFileObject.Kind> kinds, boolean recurse) private Iterable<JavaFileObject> listImpl(JavaFileManager.Location location, String packageName, Set<JavaFileObject.Kind> kinds, boolean recurse) private Collection<JavaFileObject> loadClasses(String packageName, boolean recurse) A utility method which loads all available classes as a collection of file objects for a given package name.(package private) voidsetArguments(ClasspathlessCompiler.Arguments arguments) (package private) voidsetAvailableClasses(SortedSet<String> availableClasses) (package private) voidsetClassesProvider(ClassesProvider classesProvider) (package private) voidsetLoggingSwitch(LoggingSwitch loggingSwitch) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface javax.tools.JavaFileManager
getFileForOutputForOriginatingFiles, getJavaFileForOutputForOriginatingFiles
-
Field Details
-
delegate
-
arguments
-
classesProvider
-
availableClasses
-
loggingSwitch
-
classOutputs
-
hostJavaLangObjectFileObject
-
HOST_SYSTEM_MODULES
- See Also:
-
-
Constructor Details
-
InMemoryFileManager
-
-
Method Details
-
setLoggingSwitch
-
setClassesProvider
-
setAvailableClasses
-
setArguments
-
clearAndGetOutput
-
getLocationForModule
public JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, String moduleName) throws IOException - Specified by:
getLocationForModulein interfaceJavaFileManager- Throws:
IOException
-
getLocationForModule
public JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, JavaFileObject fo) throws IOException - Specified by:
getLocationForModulein interfaceJavaFileManager- Throws:
IOException
-
getServiceLoader
public <S> ServiceLoader<S> getServiceLoader(JavaFileManager.Location location, Class<S> service) throws IOException - Specified by:
getServiceLoaderin interfaceJavaFileManager- Throws:
IOException
-
inferModuleName
- Specified by:
inferModuleNamein interfaceJavaFileManager- Throws:
IOException
-
listLocationsForModules
public Iterable<Set<JavaFileManager.Location>> listLocationsForModules(JavaFileManager.Location location) throws IOException - Specified by:
listLocationsForModulesin interfaceJavaFileManager- Throws:
IOException
-
contains
- Specified by:
containsin interfaceJavaFileManager- Throws:
IOException
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Specified by:
closein interfaceJavaFileManager- Throws:
IOException
-
flush
- Specified by:
flushin interfaceFlushable- Specified by:
flushin interfaceJavaFileManager- Throws:
IOException
-
isSupportedOption
- Specified by:
isSupportedOptionin interfaceOptionChecker
-
isSameFile
- Specified by:
isSameFilein interfaceJavaFileManager
-
getClassLoader
- Specified by:
getClassLoaderin interfaceJavaFileManager
-
getFileForInput
public FileObject getFileForInput(JavaFileManager.Location location, String packageName, String relativeName) throws IOException - Specified by:
getFileForInputin interfaceJavaFileManager- Throws:
IOException
-
getFileForOutput
public FileObject getFileForOutput(JavaFileManager.Location location, String packageName, String relativeName, FileObject sibling) throws IOException - Specified by:
getFileForOutputin interfaceJavaFileManager- Throws:
IOException
-
getJavaFileForInput
public JavaFileObject getJavaFileForInput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind) throws IOException - Specified by:
getJavaFileForInputin interfaceJavaFileManager- Throws:
IOException
-
getJavaFileForOutput
public JavaFileObject getJavaFileForOutput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling) throws IOException - Specified by:
getJavaFileForOutputin interfaceJavaFileManager- Throws:
IOException
-
hasLocation
- Specified by:
hasLocationin interfaceJavaFileManager
-
inferBinaryName
- Specified by:
inferBinaryNamein interfaceJavaFileManager
-
loadClasses
private Collection<JavaFileObject> loadClasses(String packageName, boolean recurse) throws IOException A utility method which loads all available classes as a collection of file objects for a given package name.- Throws:
IOException
-
hostClassesNames
A utility which extracts the fully qualified names of given file objects assuming they are the host system classes returned by the StandardJavaFileManager. -
listImpl
private Iterable<JavaFileObject> listImpl(JavaFileManager.Location location, String packageName, Set<JavaFileObject.Kind> kinds, boolean recurse) throws IOException - Throws:
IOException
-
list
public Iterable<JavaFileObject> list(JavaFileManager.Location location, String packageName, Set<JavaFileObject.Kind> kinds, boolean recurse) throws IOException - Specified by:
listin interfaceJavaFileManager- Throws:
IOException
-
handleOption
- Specified by:
handleOptionin interfaceJavaFileManager
-