Класс ForwardingJavaFileManager<M extends JavaFileManager>
- Параметры типа:
M- тип файлового менеджера, перенаправляемого этим объектом
- Все реализуемые интерфейсы:
-
Closeable,Flushable,AutoCloseable,JavaFileManager,OptionChecker
public class ForwardingJavaFileManager<M extends JavaFileManager> extends Object implements JavaFileManager
Если не указано иное, ссылки в этом классе на "данный файловый менеджер" следует интерпретировать как косвенные ссылки на делегированный файловый менеджер.
- С момента:
- 1.6
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в интерфейсе javax.tools.JavaFileManager
JavaFileManager.Location
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected final M |
fileManager |
Файловый менеджер, которому делегируются все методы. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт новый экземпляр ForwardingJavaFileManager. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
void |
close() |
Освобождает все ресурсы, открытые этим файловым менеджером напрямую или косвенно. |
boolean |
contains |
Определяет, является ли заданный объект файла "содержащимся в" указанном местоположении. |
void |
flush() |
Очищает все ресурсы, открытые для вывода данным файловым менеджером напрямую или косвенно. |
ClassLoader |
getClassLoader |
Возвращает загрузчик классов для загрузки плагинов из заданного местоположения, ориентированного на пакеты. |
FileObject |
getFileForInput |
Возвращает объект файла для ввода, представляющий указанное относительное имя в указанном пакете в заданном местоположении, ориентированном на пакеты. |
FileObject |
getFileForOutput |
Возвращает объект файла для вывода, представляющий указанное относительное имя в указанном пакете в заданном местоположении. |
FileObject |
getFileForOutputForOriginatingFiles |
Возвращает объект файла для вывода, представляющий указанное относительное имя в указанном пакете в заданном местоположении. |
JavaFileObject |
getJavaFileForInput |
Возвращает объект файла для ввода, представляющий указанный класс заданного типа в заданном местоположении, ориентированном на пакеты. |
JavaFileObject |
getJavaFileForOutput |
Возвращает объект файла для вывода, представляющий указанный класс заданного типа в заданном местоположении, ориентированном на пакеты. |
JavaFileObject |
getJavaFileForOutputForOriginatingFiles |
Возвращает объект файла для вывода, представляющий указанный класс заданного типа в заданном местоположении, ориентированном на пакеты. |
JavaFileManager.Location |
getLocationForModule |
Получает местоположение для именованного модуля внутри местоположения, которое может быть либо местоположением, ориентированным на модуль, либо местоположением вывода. |
JavaFileManager.Location |
getLocationForModule |
Получает местоположение для модуля, содержащего конкретный файл, который должен быть найден в местоположении, которое может быть либо местоположением, ориентированным на модуль, либо местоположением вывода. |
<S> ServiceLoader |
getServiceLoader |
Получает загрузчик сервисов для определённого класса сервиса из данного местоположения. |
boolean |
handleOption |
Обрабатывает один параметр. |
boolean |
hasLocation |
Определяет, известно ли данное местоположение данному файловому менеджеру. |
String |
inferBinaryName |
Выводит имя двоичного объекта файла на основе местоположения, ориентированного на пакеты. |
String |
inferModuleName |
Определяет имя модуля из его местоположения, возвращаемого методами getLocationForModule или listModuleLocations. |
boolean |
isSameFile |
Сравнивает два объекта файла и возвращает true, если они представляют один и тот же базовый объект. |
int |
isSupportedOption |
Определяет, поддерживается ли данный параметр, и если да, то сколько аргументов принимает параметр. |
Iterable |
list |
Перечисляет все объекты файлов, соответствующие заданным критериям в данном местоположении, ориентированном на пакеты. |
Iterable |
listLocationsForModules |
Перечисляет местоположения для всех модулей в местоположении, ориентированном на модули, или в местоположении вывода. |
Подробное описание полей
fileManager
protected final M extends JavaFileManager fileManager
Подробное описание конструкторов
ForwardingJavaFileManager
protected ForwardingJavaFileManager(M fileManager)
ForwardingJavaFileManager.- Параметры:
-
fileManager— делегат для этого менеджера файлов
Подробное описание методов
getClassLoader
public ClassLoader getClassLoader(JavaFileManager.Location location)
JavaFileManagerANNOTATION_PROCESSOR_PATH.- Определено в:
-
getClassLoaderв интерфейсеJavaFileManager - Параметры:
-
location— местоположение - Возвращает:
- загрузчик классов для данного местоположения; или
null, если загрузка плагинов из данного местоположения отключена или местоположение неизвестно - Исключения:
-
IllegalStateException— если методJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт
list
public Iterable<JavaFileObject> list(JavaFileManager.Location location, String packageName, Set<JavaFileObject.Kind> kinds, boolean recurse) throws IOException
JavaFileManagerПримечание: даже если данное местоположение неизвестно этому менеджеру файлов, он может не вернуть null. Кроме того, неизвестное местоположение может не вызвать исключение.
- Определено в:
-
listв интерфейсеJavaFileManager - Параметры:
-
location— местоположение -
packageName— имя пакета -
kinds— возвращать объекты только этих типов -
recurse— если true, включать «подпакеты» - Возвращает:
- итерируемый объект объектов файлов, соответствующих заданным критериям
- Исключения:
-
IOException— если произошла ошибка ввода-вывода или еслиJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт -
IllegalStateException— еслиJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт
inferBinaryName
public String inferBinaryName(JavaFileManager.Location location, JavaFileObject file)
JavaFileManager- Определено в:
-
inferBinaryNameв интерфейсеJavaFileManager - Параметры:
-
location— местоположение -
file— объект файла - Возвращает:
- двоичное имя или
null, если объект файла не найден в заданном местоположении - Исключения:
-
IllegalStateException— еслиJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт
isSameFile
public boolean isSameFile(FileObject a, FileObject b)
JavaFileManager- Определено в:
-
isSameFileв интерфейсеJavaFileManager - Параметры:
-
a— объект файла -
b— объект файла - Возвращает:
- true, если заданные объекты файлов представляют один и тот же базовый объект
- Исключения:
-
IllegalArgumentException— если любой из аргументов был создан с другим менеджером файлов, и этот менеджер файлов не поддерживает внешние объекты файлов
обработатьОпцию
public boolean handleOption(String current, Iterator<String> remaining)
JavaFileManagercurrent является опцией для этого менеджера файлов, он использует любые аргументы к этой опции из remaining и возвращает true, в противном случае возвращает false.- Определено в:
-
handleOptionв интерфейсеJavaFileManager - Параметры:
-
current— текущая опция -
remaining— оставшиеся опции - Возвращает:
- true, если эта опция была обработана этим менеджером файлов, false в противном случае
- Исключения:
-
IllegalArgumentException— если эта опция для этого менеджера файлов используется неправильно -
IllegalStateException— еслиJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт
hasLocation
public boolean hasLocation(JavaFileManager.Location location)
JavaFileManager- Определено в:
-
hasLocationв интерфейсеJavaFileManager - Параметры:
-
location— местоположение - Возвращает:
- true, если местоположение известно
isSupportedOption
public int isSupportedOption(String option)
OptionChecker- Определено в:
-
isSupportedOptionв интерфейсеOptionChecker - Параметры:
-
option— опция - Возвращает:
- количество аргументов, которые принимает заданная опция, или -1, если опция не поддерживается
getJavaFileForInput
public JavaFileObject getJavaFileForInput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind) throws IOException
JavaFileManager- Определено в:
-
getJavaFileForInputв интерфейсеJavaFileManager - Параметры:
-
location— местоположение -
className— имя класса -
kind— тип файла, должен быть одним изSOURCEилиCLASS - Возвращает:
- объект файла, может вернуть
null, если файл не существует - Исключения:
-
IllegalArgumentException— если местоположение неизвестно этому менеджеру файлов и менеджер файлов не поддерживает неизвестные местоположения, или если тип недействителен, или если местоположение является местоположением модуля -
IllegalStateException— еслиJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт -
IOException— если произошла ошибка ввода-вывода или еслиJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт
getJavaFileForOutput
public JavaFileObject getJavaFileForOutput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling) throws IOException
JavaFileManagerЭтот менеджер файлов может использовать файл-«брата» в качестве подсказки для размещения вывода. Точное значение этой подсказки не определено. Например, компилятор JDK, javac, помещает файлы .class в те же каталоги, что и исходные файлы .java, если не задан каталог вывода для файлов .class. Для поддержки этого поведения javac может передать исходный файл-«брата» в качестве аргумента при вызове этого метода.
- Указано в:
-
getJavaFileForOutputв интерфейсеJavaFileManager - Параметры:
-
location- пакетоориентированное расположение -
className- имя класса -
kind- тип файла, должен быть одним изSOURCEилиCLASS -
sibling- объект файла, используемый в качестве подсказки для размещения; может бытьnull - Возвращает:
- объект файла для вывода
- Выбрасывает:
-
IllegalArgumentException- если файл-«брат» не известен менеджеру файлов, или если расположение не известно менеджеру файлов и менеджер не поддерживает неизвестные расположения, или если тип файла недействителен, или если расположение не является расположением вывода -
IllegalStateException- методJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт -
IOException- произошла ошибка ввода-вывода, или методJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт
getJavaFileForOutputForOriginatingFiles
public JavaFileObject getJavaFileForOutputForOriginatingFiles(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject... originatingFiles) throws IOException
Переданные originatingFiles представляют файлы, которые каким-то образом использовались для создания содержимого файла, созданного этим методом. См. originatingElements в Filer.createSourceFile(java.lang.CharSequence, javax.lang.model.element.Element...). Elements.getFileObjectOf(javax.lang.model.element.Element) может быть использован для преобразования Element в FileObject.
- Указано в:
-
getJavaFileForOutputForOriginatingFilesв интерфейсеJavaFileManager - Требования к реализации:
- Если подкласс
ForwardingJavaFileManagerпереопределяет методgetJavaFileForOutput(javax.tools.JavaFileManager.Location, java.lang.String, javax.tools.JavaFileObject.Kind, javax.tools.FileObject), этот метод делегирует вызов ему согласно общему соглашению дляJavaFileManager.getJavaFileForOutputForOriginatingFiles(javax.tools.JavaFileManager.Location, java.lang.String, javax.tools.JavaFileObject.Kind, javax.tools.FileObject...). Если подкласс не переопределяет метод, вызов делегируется базовому классуfileManager. - Параметры:
-
location- пакетоориентированное расположение -
className- имя класса -
kind- тип файла, должен быть одним изSOURCEилиCLASS -
originatingFiles- файлы, которые вносят вклад в этот новый файл;nullэквивалентно пустомуoriginatingFiles, что означает отсутствие известных исходных файлов - Возвращает:
- объект файла для вывода
- Выбрасывает:
-
IllegalArgumentException- если файл-«брат» не известен менеджеру файлов, или если расположение не известно менеджеру файлов и менеджер не поддерживает неизвестные расположения, или если тип файла недействителен, или если расположение не является расположением вывода -
IllegalStateException- методJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт -
IOException- произошла ошибка ввода-вывода, или методJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт - С:
- 18
- См. также:
getFileForInput
public FileObject getFileForInput(JavaFileManager.Location location, String packageName, String relativeName) throws IOException
JavaFileManagerЕсли возвращаемый объект представляет собой файл исходного или класса, он должен быть экземпляром JavaFileObject.
Неформально, объект файла, возвращаемый этим методом, расположен в результате конкатенации расположения, имени пакета и относительного имени. Например, для поиска файла свойств «resources/compiler.properties» в пакете «com.sun.tools.javac» в расположении SOURCE_PATH, этот метод может быть вызван следующим образом:
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".
- Указано в:
-
getFileForInputв интерфейсеJavaFileManager - Параметры:
-
location- пакетоориентированное расположение -
packageName- имя пакета -
relativeName- относительное имя - Возвращает:
- объект файла, может вернуть
null, если файл не существует - Выбрасывает:
-
IllegalArgumentException- если расположение не известно менеджеру файлов и менеджер не поддерживает неизвестные расположения, или еслиrelativeNameнедействительно, или если расположение является модулеориентированным расположением -
IllegalStateException- методJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт -
IOException- произошла ошибка ввода-вывода, или методJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт
getFileForOutput
public FileObject getFileForOutput(JavaFileManager.Location location, String packageName, String relativeName, FileObject sibling) throws IOException
JavaFileManagerЭтот менеджер файлов может использовать файл-«брата» в качестве подсказки для размещения вывода. Точное значение этой подсказки не определено. Например, компилятор JDK, javac, помещает файлы .class в те же каталоги, что и исходные файлы .java, если не задан каталог вывода для файлов .class. Для поддержки этого поведения javac может передать исходный файл-«брата» в качестве аргумента при вызове этого метода.
Если возвращаемый объект представляет собой файл исходного или класса, он должен быть экземпляром JavaFileObject.
Неформально, объект файла, возвращаемый этим методом, расположен в результате конкатенации расположения, имени пакета и относительного имени или рядом с файлом-«братом» в аргументе. См. getFileForInput для примера.
- Указано в:
-
getFileForOutputв интерфейсеJavaFileManager - Параметры:
-
location- расположение вывода -
packageName- имя пакета -
relativeName- относительное имя -
sibling- объект файла, используемый в качестве подсказки для размещения; может бытьnull - Возвращает:
- объект файла
- Выбрасывает:
-
IllegalArgumentException- если файл-«брат» не известен менеджеру файлов, или если расположение не известно менеджеру файлов и менеджер не поддерживает неизвестные расположения, или еслиrelativeNameнедействительно, или если расположение не является расположением вывода -
IllegalStateException- методJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт -
IOException- произошла ошибка ввода-вывода, или методJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт
getFileForOutputForOriginatingFiles
public FileObject getFileForOutputForOriginatingFiles(JavaFileManager.Location location, String packageName, String relativeName, FileObject... originatingFiles) throws IOException
Предоставленные originatingFiles представляют файлы, которые каким-то образом использовались для создания содержимого файла, созданного этим методом. См. originatingElements в Filer.createResource(javax.tools.JavaFileManager.Location, java.lang.CharSequence, java.lang.CharSequence, javax.lang.model.element.Element...). Elements.getFileObjectOf(javax.lang.model.element.Element) может быть использован для преобразования Element в FileObject.
Если возвращаемый объект представляет собой файл исходного кода или класс-файл, он должен быть экземпляром JavaFileObject.
Неформально, файл, возвращаемый этим методом, расположен в конкатенации из расположения, имени пакета и относительного имени или в расположении, определенном на основе originatingFiles. См. getFileForInput для примера.
- Specified by:
-
getFileForOutputForOriginatingFilesв интерфейсеJavaFileManager - Implementation Requirements:
- Если подкласс
ForwardingJavaFileManagerпереопределяет методgetFileForOutput(javax.tools.JavaFileManager.Location, java.lang.String, java.lang.String, javax.tools.FileObject), этот метод делегирует вызов ему в соответствии с общим контрактомJavaFileManager.getFileForOutputForOriginatingFiles(javax.tools.JavaFileManager.Location, java.lang.String, java.lang.String, javax.tools.FileObject...). Если подкласс не переопределяет метод, вызов делегируется кfileManager. - Parameters:
-
location- расположение для вывода -
packageName- имя пакета -
relativeName- относительное имя -
originatingFiles- файлы, которые вносят вклад в этот вновь созданный файл;nullэквивалентно пустомуoriginatingFiles, что означает отсутствие известных файлов-источников - Returns:
- объект файла
- Throws:
-
IllegalArgumentException- если родительский элемент не известен этому менеджеру файлов, или если расположение не известно этому менеджеру файлов, и менеджер файлов не поддерживает неизвестные расположения, или еслиrelativeNameнедействителен, или если расположение не является расположением для вывода -
IllegalStateException- если методJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт -
IOException- если произошла ошибка ввода-вывода или если методJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт - Since:
- 18
- See Also:
flush
public void flush() throws IOException
JavaFileManager- Specified by:
-
flushв интерфейсеFlushable - Specified by:
-
flushв интерфейсеJavaFileManager - Throws:
-
IOException- если произошла ошибка ввода-вывода - See Also:
close
public void close() throws IOException
JavaFileManager- Specified by:
-
closeв интерфейсеAutoCloseable - Specified by:
-
closeв интерфейсеCloseable - Specified by:
-
closeв интерфейсеJavaFileManager - Throws:
-
IOException- если произошла ошибка ввода-вывода - See Also:
getLocationForModule
public JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, String moduleName) throws IOException
JavaFileManager- Specified by:
-
getLocationForModuleв интерфейсеJavaFileManager - Parameters:
-
location- расположение, ориентированное на модуль -
moduleName- имя модуля, которое нужно найти - Returns:
- расположение для указанного модуля
- Throws:
-
IOException- если произошла ошибка ввода-вывода - Since:
- 9
getLocationForModule
public JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, JavaFileObject fo) throws IOException
JavaFileManager- Specified by:
-
getLocationForModuleв интерфейсеJavaFileManager - Parameters:
-
location- расположение, ориентированное на модуль -
fo- файл - Returns:
- модуль, содержащий файл
- Throws:
-
IOException- если произошла ошибка ввода-вывода - Since:
- 9
getServiceLoader
public <S> ServiceLoader<S> getServiceLoader(JavaFileManager.Location location, Class<S> service) throws IOException
JavaFileManagerMETA-INF/services.- Specified by:
-
getServiceLoaderв интерфейсеJavaFileManager - Type Parameters:
S- класс сервиса- Parameters:
-
location- расположение, ориентированное на модуль -
service- объект класса сервиса - Returns:
- загрузчик сервисов для данного класса сервиса
- Throws:
-
IOException- если произошла ошибка ввода-вывода - Since:
- 9
inferModuleName
public String inferModuleName(JavaFileManager.Location location) throws IOException
JavaFileManagergetLocationForModule или listModuleLocations.- Specified by:
-
inferModuleNameв интерфейсеJavaFileManager - Parameters:
-
location- расположение, ориентированное на пакет, представляющее модуль - Returns:
- имя модуля
- Throws:
-
IOException- если произошла ошибка ввода-вывода - Since:
- 9
listLocationsForModules
public Iterable<Set<JavaFileManager.Location>> listLocationsForModules(JavaFileManager.Location location) throws IOException
JavaFileManager- Specified by:
-
listLocationsForModulesв интерфейсеJavaFileManager - Parameters:
-
location- расположение, ориентированное на модуль, для которого необходимо перечислить модули - Returns:
- ряд наборов расположений, содержащих модули
- Throws:
-
IOException- если произошла ошибка ввода-вывода - Since:
- 9
contains
public boolean contains(JavaFileManager.Location location, FileObject fo) throws IOException
JavaFileManagerДля позиции, ориентированной на пакеты, файл-объект содержится в позиции, если существуют значения для packageName и relativeName, такие что любой из следующих вызовов вернёт файл-объект same:
getFileForInput(location, packageName, relativeName)
getFileForOutput(location, packageName, relativeName, null)
Для позиции, ориентированной на модули, файл-объект содержится в позиции, если существует модуль, который может быть получен вызовом:
getLocationForModule(location, moduleName)
- Указано в:
-
containsв интерфейсеJavaFileManager - Параметры:
-
location- позиция -
fo- файл-объект - Возвращает:
- содержится ли файл в позиции
- Издаёт исключение:
-
IOException- если возникла проблема с определением результата - С момента:
- 9
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://download.java.net/java/early_access/jdk24/docs/api/java.compiler/javax/tools/ForwardingJavaFileManager.html