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.Arguments
private ClassesProvider
private ArrayList<InMemoryJavaClassFileObject>
private JavaFileManager
private static final String
private JavaFileObject
private LoggingSwitch
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) void
clearAndGetOutput
(Collection<JavaFileObject> classOutput) void
close()
boolean
contains
(JavaFileManager.Location location, FileObject fo) void
flush()
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) boolean
handleOption
(String current, Iterator<String> remaining) boolean
hasLocation
(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) boolean
isSameFile
(FileObject a, FileObject b) int
isSupportedOption
(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) void
setArguments
(ClasspathlessCompiler.Arguments arguments) (package private) void
setAvailableClasses
(SortedSet<String> availableClasses) (package private) void
setClassesProvider
(ClassesProvider classesProvider) (package private) void
setLoggingSwitch
(LoggingSwitch loggingSwitch)
-
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:
getLocationForModule
in interfaceJavaFileManager
- Throws:
IOException
-
getLocationForModule
public JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, JavaFileObject fo) throws IOException - Specified by:
getLocationForModule
in interfaceJavaFileManager
- Throws:
IOException
-
getServiceLoader
public <S> ServiceLoader<S> getServiceLoader(JavaFileManager.Location location, Class<S> service) throws IOException - Specified by:
getServiceLoader
in interfaceJavaFileManager
- Throws:
IOException
-
inferModuleName
- Specified by:
inferModuleName
in interfaceJavaFileManager
- Throws:
IOException
-
listLocationsForModules
public Iterable<Set<JavaFileManager.Location>> listLocationsForModules(JavaFileManager.Location location) throws IOException - Specified by:
listLocationsForModules
in interfaceJavaFileManager
- Throws:
IOException
-
contains
- Specified by:
contains
in interfaceJavaFileManager
- Throws:
IOException
-
close
- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- Specified by:
close
in interfaceJavaFileManager
- Throws:
IOException
-
flush
- Specified by:
flush
in interfaceFlushable
- Specified by:
flush
in interfaceJavaFileManager
- Throws:
IOException
-
isSupportedOption
- Specified by:
isSupportedOption
in interfaceOptionChecker
-
isSameFile
- Specified by:
isSameFile
in interfaceJavaFileManager
-
getClassLoader
- Specified by:
getClassLoader
in interfaceJavaFileManager
-
getFileForInput
public FileObject getFileForInput(JavaFileManager.Location location, String packageName, String relativeName) throws IOException - Specified by:
getFileForInput
in interfaceJavaFileManager
- Throws:
IOException
-
getFileForOutput
public FileObject getFileForOutput(JavaFileManager.Location location, String packageName, String relativeName, FileObject sibling) throws IOException - Specified by:
getFileForOutput
in interfaceJavaFileManager
- Throws:
IOException
-
getJavaFileForInput
public JavaFileObject getJavaFileForInput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind) throws IOException - Specified by:
getJavaFileForInput
in interfaceJavaFileManager
- Throws:
IOException
-
getJavaFileForOutput
public JavaFileObject getJavaFileForOutput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling) throws IOException - Specified by:
getJavaFileForOutput
in interfaceJavaFileManager
- Throws:
IOException
-
hasLocation
- Specified by:
hasLocation
in interfaceJavaFileManager
-
inferBinaryName
- Specified by:
inferBinaryName
in 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:
list
in interfaceJavaFileManager
- Throws:
IOException
-
handleOption
- Specified by:
handleOption
in interfaceJavaFileManager
-