Package ch.obermuhlner.scriptengine.java
Class MemoryFileManager
- java.lang.Object
-
- javax.tools.ForwardingJavaFileManager<javax.tools.JavaFileManager>
-
- ch.obermuhlner.scriptengine.java.MemoryFileManager
-
- All Implemented Interfaces:
java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
,javax.tools.JavaFileManager
,javax.tools.OptionChecker
public class MemoryFileManager extends javax.tools.ForwardingJavaFileManager<javax.tools.JavaFileManager>
AJavaFileManager
that manages some files in memory, delegating the other files to the parentJavaFileManager
.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static class
MemoryFileManager.AbstractMemoryJavaFileObject
(package private) static class
MemoryFileManager.ClassMemoryJavaFileObject
(package private) static class
MemoryFileManager.MemoryJavaFileObject
-
Field Summary
Fields Modifier and Type Field Description private java.util.Map<java.lang.String,MemoryFileManager.ClassMemoryJavaFileObject>
mapNameToClasses
private java.lang.ClassLoader
parentClassLoader
-
Constructor Summary
Constructors Constructor Description MemoryFileManager(javax.tools.JavaFileManager fileManager, java.lang.ClassLoader parentClassLoader)
Creates a MemoryJavaFileManager.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description javax.tools.JavaFileObject
createSourceFileObject(java.lang.Object origin, java.lang.String name, java.lang.String code)
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)
java.lang.String
inferBinaryName(javax.tools.JavaFileManager.Location location, javax.tools.JavaFileObject file)
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)
private java.util.Collection<MemoryFileManager.ClassMemoryJavaFileObject>
memoryClasses()
-
Methods inherited from class javax.tools.ForwardingJavaFileManager
close, contains, flush, getFileForInput, getFileForOutput, getJavaFileForInput, getLocationForModule, getLocationForModule, getServiceLoader, handleOption, hasLocation, inferModuleName, isSameFile, isSupportedOption, listLocationsForModules
-
-
-
-
Field Detail
-
mapNameToClasses
private final java.util.Map<java.lang.String,MemoryFileManager.ClassMemoryJavaFileObject> mapNameToClasses
-
parentClassLoader
private final java.lang.ClassLoader parentClassLoader
-
-
Method Detail
-
memoryClasses
private java.util.Collection<MemoryFileManager.ClassMemoryJavaFileObject> memoryClasses()
-
createSourceFileObject
public javax.tools.JavaFileObject createSourceFileObject(java.lang.Object origin, java.lang.String name, java.lang.String code)
-
getClassLoader
public java.lang.ClassLoader getClassLoader(javax.tools.JavaFileManager.Location location)
- Specified by:
getClassLoader
in interfacejavax.tools.JavaFileManager
- Overrides:
getClassLoader
in classjavax.tools.ForwardingJavaFileManager<javax.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
- Overrides:
list
in classjavax.tools.ForwardingJavaFileManager<javax.tools.JavaFileManager>
- Throws:
java.io.IOException
-
inferBinaryName
public java.lang.String inferBinaryName(javax.tools.JavaFileManager.Location location, javax.tools.JavaFileObject file)
- Specified by:
inferBinaryName
in interfacejavax.tools.JavaFileManager
- Overrides:
inferBinaryName
in classjavax.tools.ForwardingJavaFileManager<javax.tools.JavaFileManager>
-
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
- Overrides:
getJavaFileForOutput
in classjavax.tools.ForwardingJavaFileManager<javax.tools.JavaFileManager>
- Throws:
java.io.IOException
-
-