Package com.alibaba.fastjson2.reader
Class ObjectReaderCreatorDynamicCompile.JdkDynamicCompileJavaFileManager
java.lang.Object
javax.tools.ForwardingJavaFileManager<JavaFileManager>
com.alibaba.fastjson2.reader.ObjectReaderCreatorDynamicCompile.JdkDynamicCompileJavaFileManager
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable,JavaFileManager,OptionChecker
- Enclosing class:
- ObjectReaderCreatorDynamicCompile
public static class ObjectReaderCreatorDynamicCompile.JdkDynamicCompileJavaFileManager
extends ForwardingJavaFileManager<JavaFileManager>
-
Nested Class Summary
Nested classes/interfaces inherited from interface javax.tools.JavaFileManager
JavaFileManager.Location -
Field Summary
Fields inherited from class javax.tools.ForwardingJavaFileManager
fileManager -
Constructor Summary
ConstructorsConstructorDescriptionJdkDynamicCompileJavaFileManager(JavaFileManager fileManager, ObjectReaderCreatorDynamicCompile.JdkDynamicCompileClassLoader classLoader) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddJavaFileObject(JavaFileManager.Location location, String packageName, String relativeName, JavaFileObject javaFileObject) 自定义方法,用于添加和缓存待编译的源文件对象getClassLoader(JavaFileManager.Location location) 这里覆盖原来的类加载器getFileForInput(JavaFileManager.Location location, String packageName, String relativeName) getJavaFileForOutput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling) 这里是编译器返回的同(源)Java文件对象,替换为CharSequenceJavaFileObject实现inferBinaryName(JavaFileManager.Location location, JavaFileObject file) list(JavaFileManager.Location location, String packageName, Set<JavaFileObject.Kind> kinds, boolean recurse) Methods inherited from class javax.tools.ForwardingJavaFileManager
close, contains, flush, getFileForOutput, getJavaFileForInput, getLocationForModule, getLocationForModule, getServiceLoader, handleOption, hasLocation, inferModuleName, isSameFile, isSupportedOption, listLocationsForModules
-
Constructor Details
-
JdkDynamicCompileJavaFileManager
public JdkDynamicCompileJavaFileManager(JavaFileManager fileManager, ObjectReaderCreatorDynamicCompile.JdkDynamicCompileClassLoader classLoader)
-
-
Method Details
-
getFileForInput
public FileObject getFileForInput(JavaFileManager.Location location, String packageName, String relativeName) throws IOException - Specified by:
getFileForInputin interfaceJavaFileManager- Overrides:
getFileForInputin classForwardingJavaFileManager<JavaFileManager>- Throws:
IOException
-
getJavaFileForOutput
public JavaFileObject getJavaFileForOutput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling) throws IOException 这里是编译器返回的同(源)Java文件对象,替换为CharSequenceJavaFileObject实现- Specified by:
getJavaFileForOutputin interfaceJavaFileManager- Overrides:
getJavaFileForOutputin classForwardingJavaFileManager<JavaFileManager>- Throws:
IOException
-
getClassLoader
这里覆盖原来的类加载器- Specified by:
getClassLoaderin interfaceJavaFileManager- Overrides:
getClassLoaderin classForwardingJavaFileManager<JavaFileManager>
-
inferBinaryName
- Specified by:
inferBinaryNamein interfaceJavaFileManager- Overrides:
inferBinaryNamein classForwardingJavaFileManager<JavaFileManager>
-
list
public Iterable<JavaFileObject> list(JavaFileManager.Location location, String packageName, Set<JavaFileObject.Kind> kinds, boolean recurse) throws IOException - Specified by:
listin interfaceJavaFileManager- Overrides:
listin classForwardingJavaFileManager<JavaFileManager>- Throws:
IOException
-
addJavaFileObject
public void addJavaFileObject(JavaFileManager.Location location, String packageName, String relativeName, JavaFileObject javaFileObject) 自定义方法,用于添加和缓存待编译的源文件对象
-