java.lang.Object javax.tools.ForwardingJavaFileManager<M>
M
- 此对象将转发到的文件管理器的类型
public class ForwardingJavaFileManager<M extends JavaFileManager>
将调用转发到给定的文件管理器。此类的子类可以重写其中某些方法,还可以提供附加字段和方法。
嵌套类摘要 |
---|
从接口 javax.tools.JavaFileManager 继承的嵌套类/接口 |
---|
JavaFileManager.Location |
字段摘要 | |
---|---|
protected M |
fileManager 一个文件管理器,所有方法都将委托给它。 |
构造方法摘要 | |
---|---|
protected |
ForwardingJavaFileManager(M fileManager) 创建一个新的 ForwardingJavaFileManager 的实例。 |
方法摘要 | |
---|---|
void |
close() 释放此文件管理器直接或间接打开的所有资源。 |
void |
flush() 刷新此文件管理器直接或间接为输出打开的所有资源。 |
ClassLoader |
getClassLoader(JavaFileManager.Location location) 获取可从给定位置加载插件的类加载器。 |
FileObject |
getFileForInput(JavaFileManager.Location location, String packageName, String relativeName) 获取输入的文件对象,它表示给定位置处指定包中的指定相对名称。 |
FileObject |
getFileForOutput(JavaFileManager.Location location, String packageName, String relativeName, FileObject sibling) 获取输出的文件对象,它表示给定位置处指定包中的指定相对名称。 |
JavaFileObject |
getJavaFileForInput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind) 获取输入的文件对象,它表示给定位置处指定类型的指定类。 |
JavaFileObject |
getJavaFileForOutput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling) 获取输出的文件对象,它表示给定位置处指定类型的指定类。 |
boolean |
handleOption(String current, Iterator<String> remaining) 处理一个选项。 |
boolean |
hasLocation(JavaFileManager.Location location) 确定此文件管理器是否已知某位置。 |
String |
inferBinaryName(JavaFileManager.Location location, JavaFileObject file) 根据位置推断文件对象的二进制名称。 |
boolean |
isSameFile(FileObject a, FileObject b) 比较两个文件对象,如果它们表示相同的底层对象,则返回 true。 |
int |
isSupportedOption(String option) 确定是否支持给定选项,如果支持,则返回该选项所使用的参数数量。 |
Iterable<JavaFileObject> |
list(JavaFileManager.Location location, String packageName, Set<JavaFileObject.Kind> kinds, boolean recurse) 列出给定位置处符合给定标准的所有文件对象。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
protected final M extends JavaFileManager fileManager
构造方法详细信息 |
---|
protected ForwardingJavaFileManager(M fileManager)
fileManager
- 委托给此文件管理器
方法详细信息 |
---|
public ClassLoader getClassLoader(JavaFileManager.Location location)
JavaFileManager
复制的描述
ANNOTATION_PROCESSOR_PATH
位置的类加载器。
JavaFileManager
中的
getClassLoader
location
- 位置
null
SecurityException
- 如果在当前安全上下文中不能创建类加载器
IllegalStateException
- 如果已经调用了
JavaFileManager.close()
并且不能重新打开此文件管理器
public Iterable<JavaFileObject> list(JavaFileManager.Location location, String packageName, Set<JavaFileObject.Kind> kinds, boolean recurse) throws IOException
JavaFileManager
复制的描述
注:即使给定位置对于此文件管理器是未知的,此方法也不会返回 null
。未知位置也不会导致异常。
JavaFileManager
中的
list
location
- 位置
packageName
- 包名称
kinds
- 只返回这些类型的对象
recurse
- 如果为 true,则包含“子包”
IOException
- 如果发生 I/O 错误,或者已经调用了
JavaFileManager.close()
并且无法重新打开此文件管理器
IllegalStateException
- 如果已经调用了
JavaFileManager.close()
并且无法重新打开此文件管理器
public String inferBinaryName(JavaFileManager.Location location, JavaFileObject file)
JavaFileManager
复制的描述
JavaFileManager
中的
inferBinaryName
location
- 位置
file
- 文件对象
null
IllegalStateException
- 如果已经调用了
JavaFileManager.close()
并且无法重新打开此文件管理器
public boolean isSameFile(FileObject a, FileObject b)
JavaFileManager
复制的描述
JavaFileManager
中的
isSameFile
a
- 文件对象
b
- 文件对象
IllegalArgumentException
- 如果其中一个参数是用另一个文件管理器创建的,并且此文件管理器不支持外部文件对象
public boolean handleOption(String current, Iterator<String> remaining)
JavaFileManager
复制的描述
current
是此文件管理器的一个选项,则它将通过
remaining
获得该选项的所有参数并返回 true,否则返回 false。
JavaFileManager
中的
handleOption
current
- 当前选项
remaining
- 剩余选项
IllegalArgumentException
- 如果错误地使用了此文件管理器的选项
IllegalStateException
- 如果已经调用了
JavaFileManager.close()
并且无法重新打开此文件管理器
public boolean hasLocation(JavaFileManager.Location location)
JavaFileManager
复制的描述
JavaFileManager
中的
hasLocation
location
- 位置
public int isSupportedOption(String option)
OptionChecker
复制的描述
OptionChecker
中的
isSupportedOption
option
- 选项
public JavaFileObject getJavaFileForInput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind) throws IOException
JavaFileManager
复制的描述
JavaFileManager
中的
getJavaFileForInput
location
- 位置
className
- 类的名称
kind
- 文件的类型,必须是
SOURCE
或
CLASS
null
IllegalArgumentException
- 如果位置对于此文件管理器未知并且该文件管理器不支持未知位置,或者类型无效
IllegalStateException
- 如果已经调用了
JavaFileManager.close()
并且无法重新打开此文件管理器
IOException
- 如果发生 I/O 错误,或者已经调用了
JavaFileManager.close()
并且无法重新打开此文件管理器
public JavaFileObject getJavaFileForOutput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling) throws IOException
JavaFileManager
复制的描述
此文件管理器可以将 sibling 视为对放置输出位置的提示(可选)。没有指定此提示的确切语义。除非提供了类文件输出目录,否则 Sun 的编译器(例如 javac)将把类文件放到与原始源文件相同的目录下。要实现此行为,调用此方法时 javac 可以提供原始源文件作为 sibling。
JavaFileManager
中的
getJavaFileForOutput
location
- 位置
className
- 类的名称
kind
- 文件的类型,必须是
SOURCE
或
CLASS
sibling
- 用作位置提示的文件对象,可以为
null
IllegalArgumentException
- 如果 sibling 对于此文件管理器是未知的,或者位置对于此文件管理器是未知的并且该文件管理器不支持未知位置,或者类型无效
IllegalStateException
- 已经调用了
JavaFileManager.close()
并且无法重新打开此文件管理器
IOException
- 如果发生 I/O 错误,或者已经调用了
JavaFileManager.close()
并且无法重新打开此文件管理器
public FileObject getFileForInput(JavaFileManager.Location location, String packageName, String relativeName) throws IOException
JavaFileManager
复制的描述
如果返回的对象表示源或类文件,则它必须是 JavaFileObject
的一个实例。
非严格意义上来讲,在位置、包名称和相对名称的串联中查找此方法返回的文件对象。例如,要在 SOURCE_PATH 位置处的 "com.sun.tools.javac" 包中查找属性文件 "resources/compiler.properties",将调用此方法,如下:
getFileForInput(SOURCE_PATH, "com.sun.tools.javac", "resources/compiler.properties");
如果在 Windows 上执行该调用,其中 SOURCE_PATH 设置为 "C:\Documents and Settings\UncleBob\src\share\classes"
,那么有效的结果将是表示文件 "C:\Documents and Settings\UncleBob\src\share\classes\com\sun\tools\javac\resources\compiler.properties"
的文件对象。
JavaFileManager
中的
getFileForInput
location
- 位置
packageName
- 包名称
relativeName
- 相对名称
null
IllegalArgumentException
- 如果位置对于此文件管理器是未知的并且该文件管理器不支持未知位置,或者
relativeName
无效
IllegalStateException
- 如果已经调用了
JavaFileManager.close()
并且无法重新打开此文件管理器
IOException
- 如果发生 I/O 错误,或者已经调用了
JavaFileManager.close()
并且无法重新打开此文件管理器
public FileObject getFileForOutput(JavaFileManager.Location location, String packageName, String relativeName, FileObject sibling) throws IOException
JavaFileManager
复制的描述
此文件管理器可能将 sibling 视为对放置输出位置的提示(可选)。没有指定此提示的确切语义。除非提供了类文件输出目录,否则 Sun 的编译器(例如 javac)将把类文件放到与原始源文件相同的目录下。要实现此行为,调用此方法时 javac 可以提供原始源文件作为 sibling。
如果返回的对象表示源或类文件,则它必须是 JavaFileObject
的一个实例。
非正式情况下,在位置、包名称和相对名称的串联或 sibling 参数的同级元素中查找此方法返回的文件对象。有关示例,请参阅 getFileForInput
。
JavaFileManager
中的
getFileForOutput
location
- 位置
packageName
- 包名称
relativeName
- 相对名称
sibling
- 用作位置提示的文件对象;可以为
null
IllegalArgumentException
- 如果 sibling 对于此文件管理器是未知的,或者位置对于此文件管理器是未知的并且该文件管理器不支持未知位置,或者
relativeName
无效
IllegalStateException
- 如果已经调用了
JavaFileManager.close()
并且无法重新打开此文件管理器
IOException
- 如果发生 I/O 错误,或者已经调用了
JavaFileManager.close()
并且无法重新打开此文件管理器
public void flush() throws IOException
JavaFileManager
复制的描述
Flushable
中的
flush
JavaFileManager
中的
flush
IOException
- 如果发生 I/O 错误
JavaFileManager.close()
public void close() throws IOException
JavaFileManager
复制的描述
Closeable
中的
close
JavaFileManager
中的
close
IOException
- 如果发生 I/O 错误
JavaFileManager.flush()