模块  java.compiler
软件包  javax.tools

Class ForwardingJavaFileManager<M extends JavaFileManager>

    • 字段详细信息

      • fileManager

        protected final M extends JavaFileManager fileManager
        所有方法都委托给的文件管理器。
    • 构造方法详细信息

      • ForwardingJavaFileManager

        protected ForwardingJavaFileManager​(M fileManager)
        创建ForwardingJavaFileManager的新实例。
        参数
        fileManager - 委托此文件管理器
    • 方法详细信息

      • isSameFile

        public boolean isSameFile​(FileObject a,
                                  FileObject b)
        从界面复制的说明: JavaFileManager
        比较两个文件对象,如果它们代表相同的底层对象,则返回true。
        Specified by:
        isSameFile在界面 JavaFileManager
        参数
        a - 文件对象
        b - 文件对象
        结果
        如果给定的文件对象表示相同的底层对象,则返回true
        异常
        IllegalArgumentException - 如果其中一个参数是使用另一个文件管理器创建的,并且此文件管理器不支持外部文件对象
      • handleOption

        public boolean handleOption​(String current,
                                    Iterator<String> remaining)
        从界面复制的说明: JavaFileManager
        处理一个选项。 如果current是此文件管理器的选项, remainingremaining使用该选项的任何参数并返回true,否则返回false。
        Specified by:
        handleOption在界面 JavaFileManager
        参数
        current - 当前选项
        remaining - 其余选项
        结果
        如果此选项由此文件管理器处理,则返回true,否则返回false
        异常
        IllegalArgumentException - 如果错误地使用此文件管理器的此选项
        IllegalStateException - 如果已调用 JavaFileManager.close()且无法重新打开此文件管理器
      • getFileForInput

        public FileObject getFileForInput​(JavaFileManager.Location location,
                                          String packageName,
                                          String relativeName)
                                   throws IOException
        从界面复制的说明: JavaFileManager
        返回file object ,表示在给定的面向程序包的位置中指定包中指定relative name的输入。

        如果返回的对象表示sourceclass文件,则它必须是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"的文件对象。

        Specified by:
        getFileForInput ,界面 JavaFileManager
        参数
        location - 面向包的位置
        packageName - 包名称
        relativeName - 相对名称
        结果
        如果文件不存在,则文件对象可能返回 null
        异常
        IllegalArgumentException - 如果此文件管理器不知道该位置且文件管理器不支持未知位置,或者 relativeName无效,或者该位置是面向模块的位置
        IllegalStateException -如果 JavaFileManager.close()已经调用了此文件管理器无法重新打开
        IOException - 如果发生I / O错误,或者已调用 JavaFileManager.close()且无法重新打开此文件管理器
      • getFileForOutput

        public FileObject getFileForOutput​(JavaFileManager.Location location,
                                           String packageName,
                                           String relativeName,
                                           FileObject sibling)
                                    throws IOException
        从界面复制的说明: JavaFileManager
        返回file object用于表示指定的输出relative name在指定的包在给定的位置。

        (可选)此文件管理器可能会将兄弟节点视为输出放置位置的提示。 此提示的确切语义未指定。 例如,JDK编译器javac会将类文件放在与原始源文件相同的目录中,除非提供了类文件输出目录。 为了促进此行为,javac可能会在调用此方法时将原始源文件提供为兄弟。

        如果返回的对象表示sourceclass文件,则它必须是JavaFileObject的实例。

        非正式地,此方法返回的文件对象位于位置,包名称和相对名称的串联中,或位于同级参数旁边。 有关示例 ,请参见getFileForInput

        Specified by:
        getFileForOutput在界面 JavaFileManager
        参数
        location - 输出位置
        packageName - 包名称
        relativeName - 相对名称
        sibling - 要用作放置提示的文件对象; 可能是null
        结果
        一个文件对象
        异常
        IllegalArgumentException - 如果此文件管理器不知道同级,或者此文件管理器不知道该位置且文件管理器不支持未知位置,或者 relativeName无效,或者该位置不是输出位置
        IllegalStateException - 如果已调用 JavaFileManager.close()且无法重新打开此文件管理器
        IOException - 如果发生I / O错误,或者已调用 JavaFileManager.close()且无法重新打开此文件管理器
      • getLocationForModule

        public JavaFileManager.Location getLocationForModule​(JavaFileManager.Location location,
                                                             String moduleName)
                                                      throws IOException
        从界面复制的说明: JavaFileManager
        获取位置内的命名模块的位置,该位置可以是面向模块的位置或输出位置。 如果给定位置是输出位置,则结果将是输出位置,或者它将是面向包的位置。
        Specified by:
        getLocationForModule在界面 JavaFileManager
        参数
        location - 面向模块的位置
        moduleName - 要查找的模块的名称
        结果
        指定模块的位置
        异常
        IOException - 如果发生I / O错误
        从以下版本开始:
        9
      • getServiceLoader

        public <S> ServiceLoader<S> getServiceLoader​(JavaFileManager.Location location,
                                                     <S> service)
                                              throws IOException
        从界面复制的说明: JavaFileManager
        从给定位置获取特定服务类的服务加载程序。 如果位置是面向模块的位置,则服务加载器将使用该位置中找到的模块中的服务声明。 否则,使用面向包的位置创建服务加载程序,在这种情况下,使用META-INF/services的提供程序配置文件确定服务。
        Specified by:
        getServiceLoader在界面 JavaFileManager
        参数类型
        S - 服务类
        参数
        location - 面向模块的位置
        service - 服务类的 对象
        结果
        给定服务类的服务加载器
        异常
        IOException - 如果发生I / O错误
        从以下版本开始:
        9
      • contains

        public boolean contains​(JavaFileManager.Location location,
                                FileObject fo)
                         throws IOException
        从界面复制的说明: JavaFileManager
        确定给定文件对象是否“包含在”指定位置。

        对于面向包的位置,如果存在packageNamerelativeName的值,则该位置中包含文件对象,以便以下任一调用都将返回same文件对象:

          getFileForInput(location, packageName, relativeName)
             getFileForOutput(location, packageName, relativeName, null) 

        对于面向模块的位置,如果存在可以通过调用获得的模块,则文件对象包含在该位置中:

          getLocationForModule(location, moduleName) 
        这样文件对象就包含在该模块的(面向包的)位置中。
        Specified by:
        contains接口 JavaFileManager
        参数
        location - 位置
        fo - 文件对象
        结果
        该文件是否包含在该位置
        异常
        IOException - 如果确定结果有问题
        从以下版本开始:
        9