Class InMemoryFileManager
- java.lang.Object
-
- io.github.mkoncek.classpathless.impl.InMemoryFileManager
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
,javax.tools.JavaFileManager
,javax.tools.OptionChecker
public class InMemoryFileManager extends java.lang.Object implements javax.tools.JavaFileManager
-
-
Field Summary
Fields Modifier and Type Field Description private ClasspathlessCompiler.Arguments
arguments
private java.util.SortedSet<java.lang.String>
availableClasses
private java.util.ArrayList<InMemoryJavaClassFileObject>
classOutputs
private ClassesProvider
classprovider
private javax.tools.JavaFileManager
delegate
private LoggingSwitch
loggingSwitch
-
Constructor Summary
Constructors Constructor Description InMemoryFileManager(javax.tools.JavaFileManager delegate)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
clearAndGetOutput(java.util.Collection<javax.tools.JavaFileObject> classOutput)
void
close()
boolean
contains(javax.tools.JavaFileManager.Location location, javax.tools.FileObject fo)
void
flush()
java.lang.ClassLoader
getClassLoader(javax.tools.JavaFileManager.Location location)
javax.tools.FileObject
getFileForInput(javax.tools.JavaFileManager.Location location, java.lang.String packageName, java.lang.String relativeName)
javax.tools.FileObject
getFileForOutput(javax.tools.JavaFileManager.Location location, java.lang.String packageName, java.lang.String relativeName, javax.tools.FileObject sibling)
javax.tools.JavaFileObject
getJavaFileForInput(javax.tools.JavaFileManager.Location location, java.lang.String className, javax.tools.JavaFileObject.Kind kind)
javax.tools.JavaFileObject
getJavaFileForOutput(javax.tools.JavaFileManager.Location location, java.lang.String className, javax.tools.JavaFileObject.Kind kind, javax.tools.FileObject sibling)
javax.tools.JavaFileManager.Location
getLocationForModule(javax.tools.JavaFileManager.Location location, java.lang.String moduleName)
javax.tools.JavaFileManager.Location
getLocationForModule(javax.tools.JavaFileManager.Location location, javax.tools.JavaFileObject fo)
<S> java.util.ServiceLoader<S>
getServiceLoader(javax.tools.JavaFileManager.Location location, java.lang.Class<S> service)
boolean
handleOption(java.lang.String current, java.util.Iterator<java.lang.String> remaining)
boolean
hasLocation(javax.tools.JavaFileManager.Location location)
java.lang.String
inferBinaryName(javax.tools.JavaFileManager.Location location, javax.tools.JavaFileObject file)
java.lang.String
inferModuleName(javax.tools.JavaFileManager.Location location)
boolean
isSameFile(javax.tools.FileObject a, javax.tools.FileObject b)
int
isSupportedOption(java.lang.String option)
java.lang.Iterable<javax.tools.JavaFileObject>
list(javax.tools.JavaFileManager.Location location, java.lang.String packageName, java.util.Set<javax.tools.JavaFileObject.Kind> kinds, boolean recurse)
java.lang.Iterable<java.util.Set<javax.tools.JavaFileManager.Location>>
listLocationsForModules(javax.tools.JavaFileManager.Location location)
(package private) void
setArguments(ClasspathlessCompiler.Arguments arguments)
(package private) void
setAvailableClasses(java.util.SortedSet<java.lang.String> availableClasses)
(package private) void
setClassProvider(ClassesProvider classprovider)
(package private) void
setLoggingSwitch(LoggingSwitch loggingSwitch)
-
-
-
Field Detail
-
delegate
private javax.tools.JavaFileManager delegate
-
arguments
private ClasspathlessCompiler.Arguments arguments
-
classprovider
private ClassesProvider classprovider
-
availableClasses
private java.util.SortedSet<java.lang.String> availableClasses
-
loggingSwitch
private LoggingSwitch loggingSwitch
-
classOutputs
private java.util.ArrayList<InMemoryJavaClassFileObject> classOutputs
-
-
Method Detail
-
setLoggingSwitch
void setLoggingSwitch(LoggingSwitch loggingSwitch)
-
setClassProvider
void setClassProvider(ClassesProvider classprovider)
-
setAvailableClasses
void setAvailableClasses(java.util.SortedSet<java.lang.String> availableClasses)
-
setArguments
void setArguments(ClasspathlessCompiler.Arguments arguments)
-
clearAndGetOutput
void clearAndGetOutput(java.util.Collection<javax.tools.JavaFileObject> classOutput)
-
getLocationForModule
public javax.tools.JavaFileManager.Location getLocationForModule(javax.tools.JavaFileManager.Location location, java.lang.String moduleName) throws java.io.IOException
- Specified by:
getLocationForModule
in interfacejavax.tools.JavaFileManager
- Throws:
java.io.IOException
-
getLocationForModule
public javax.tools.JavaFileManager.Location getLocationForModule(javax.tools.JavaFileManager.Location location, javax.tools.JavaFileObject fo) throws java.io.IOException
- Specified by:
getLocationForModule
in interfacejavax.tools.JavaFileManager
- Throws:
java.io.IOException
-
getServiceLoader
public <S> java.util.ServiceLoader<S> getServiceLoader(javax.tools.JavaFileManager.Location location, java.lang.Class<S> service) throws java.io.IOException
- Specified by:
getServiceLoader
in interfacejavax.tools.JavaFileManager
- Throws:
java.io.IOException
-
inferModuleName
public java.lang.String inferModuleName(javax.tools.JavaFileManager.Location location) throws java.io.IOException
- Specified by:
inferModuleName
in interfacejavax.tools.JavaFileManager
- Throws:
java.io.IOException
-
listLocationsForModules
public java.lang.Iterable<java.util.Set<javax.tools.JavaFileManager.Location>> listLocationsForModules(javax.tools.JavaFileManager.Location location) throws java.io.IOException
- Specified by:
listLocationsForModules
in interfacejavax.tools.JavaFileManager
- Throws:
java.io.IOException
-
contains
public boolean contains(javax.tools.JavaFileManager.Location location, javax.tools.FileObject fo) throws java.io.IOException
- Specified by:
contains
in interfacejavax.tools.JavaFileManager
- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Specified by:
close
in interfacejavax.tools.JavaFileManager
- Throws:
java.io.IOException
-
flush
public void flush() throws java.io.IOException
- Specified by:
flush
in interfacejava.io.Flushable
- Specified by:
flush
in interfacejavax.tools.JavaFileManager
- Throws:
java.io.IOException
-
isSupportedOption
public int isSupportedOption(java.lang.String option)
- Specified by:
isSupportedOption
in interfacejavax.tools.OptionChecker
-
isSameFile
public boolean isSameFile(javax.tools.FileObject a, javax.tools.FileObject b)
- Specified by:
isSameFile
in interfacejavax.tools.JavaFileManager
-
getClassLoader
public java.lang.ClassLoader getClassLoader(javax.tools.JavaFileManager.Location location)
- Specified by:
getClassLoader
in interfacejavax.tools.JavaFileManager
-
getFileForInput
public javax.tools.FileObject getFileForInput(javax.tools.JavaFileManager.Location location, java.lang.String packageName, java.lang.String relativeName) throws java.io.IOException
- Specified by:
getFileForInput
in interfacejavax.tools.JavaFileManager
- Throws:
java.io.IOException
-
getFileForOutput
public javax.tools.FileObject getFileForOutput(javax.tools.JavaFileManager.Location location, java.lang.String packageName, java.lang.String relativeName, javax.tools.FileObject sibling) throws java.io.IOException
- Specified by:
getFileForOutput
in interfacejavax.tools.JavaFileManager
- Throws:
java.io.IOException
-
getJavaFileForInput
public javax.tools.JavaFileObject getJavaFileForInput(javax.tools.JavaFileManager.Location location, java.lang.String className, javax.tools.JavaFileObject.Kind kind) throws java.io.IOException
- Specified by:
getJavaFileForInput
in interfacejavax.tools.JavaFileManager
- Throws:
java.io.IOException
-
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 interfacejavax.tools.JavaFileManager
- Throws:
java.io.IOException
-
hasLocation
public boolean hasLocation(javax.tools.JavaFileManager.Location location)
- Specified by:
hasLocation
in interfacejavax.tools.JavaFileManager
-
inferBinaryName
public java.lang.String inferBinaryName(javax.tools.JavaFileManager.Location location, javax.tools.JavaFileObject file)
- Specified by:
inferBinaryName
in interfacejavax.tools.JavaFileManager
-
list
public java.lang.Iterable<javax.tools.JavaFileObject> list(javax.tools.JavaFileManager.Location location, java.lang.String packageName, java.util.Set<javax.tools.JavaFileObject.Kind> kinds, boolean recurse) throws java.io.IOException
- Specified by:
list
in interfacejavax.tools.JavaFileManager
- Throws:
java.io.IOException
-
handleOption
public boolean handleOption(java.lang.String current, java.util.Iterator<java.lang.String> remaining)
- Specified by:
handleOption
in interfacejavax.tools.JavaFileManager
-
-