Класс ForwardingJavaFileManager<M extends JavaFileManager>
- Параметры типа:
M- вид диспетчера файлов, к которому перенаправляет этот объект
- Все реализуемые интерфейсы:
Closeable, Flushable, AutoCloseable, JavaFileManager, OptionChecker
public class ForwardingJavaFileManager<M extends JavaFileManager> extends Object implements JavaFileManager
Если не указано иное, ссылки в этом классе на «этот диспетчер файлов» следует понимать как косвенные ссылки на делегируемый диспетчер файлов.
- Начиная с версии:
- 1.6
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в интерфейсе 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— если любой из аргументов был создан другим менеджером файлов, а этот менеджер файлов не поддерживает внешние файловые объекты
handleOption
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 будет помещать файлы классов в те же каталоги, что и исходные файлы, если не задан каталог для выходных файлов классов. Для обеспечения такого поведения 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(CharSequence, Element...). Для преобразования Element в FileObject можно использовать Elements.getFileObjectOf(Element).
- Определено в:
-
getJavaFileForOutputForOriginatingFilesв интерфейсеJavaFileManager - Требования к реализации:
- Если подкласс
ForwardingJavaFileManagerпереопределяет методgetJavaFileForOutput(JavaFileManager.Location, String, JavaFileObject.Kind, FileObject), этот метод делегирует ему вызов в соответствии с общим контрактомJavaFileManager.getJavaFileForOutputForOriginatingFiles(JavaFileManager.Location, String, JavaFileObject.Kind, 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 будет помещать файлы классов в те же каталоги, что и исходные файлы, если не задан каталог для выходных файлов классов. Для обеспечения такого поведения 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(JavaFileManager.Location, CharSequence, CharSequence, Element...). Для преобразования Element в FileObject можно использовать Elements.getFileObjectOf(Element).
Если возвращаемый объект представляет исходный или файл класса, он должен быть экземпляром JavaFileObject.
В общих чертах файловый объект, возвращаемый этим методом, находится по пути, полученному объединением местоположения, имени пакета и относительного имени, либо в местоположении, определенном на основе originatingFiles. Пример см. в разделе getFileForInput.
- Определено в:
-
getFileForOutputForOriginatingFilesв интерфейсеJavaFileManager - Требования к реализации:
- Если подкласс
ForwardingJavaFileManagerпереопределяет методgetFileForOutput(JavaFileManager.Location, String, String, FileObject), этот метод делегирует ему вызов в соответствии с общим контрактомJavaFileManager.getFileForOutputForOriginatingFiles(JavaFileManager.Location, String, String, FileObject...). Если подкласс не переопределяет метод, вызов делегируетсяfileManager. - Параметры:
-
location— выходное местоположение -
packageName— имя пакета -
relativeName— относительное имя -
originatingFiles— файлы, участвующие в создании этого нового файла;nullэквивалентно пустомуoriginatingFiles, то есть исходные файлы неизвестны - Возвращает:
- файловый объект
- Вызывает:
-
IllegalArgumentException— если соседний объект неизвестен этому менеджеру файлов; либо если местоположение неизвестно этому менеджеру файлов, а менеджер файлов не поддерживает неизвестные местоположения; либо еслиrelativeNameнедопустимо; либо если местоположение не является выходным -
IllegalStateException— если был вызванJavaFileManager.close()и этот менеджер файлов нельзя открыть повторно -
IOException— если произошла ошибка ввода-вывода или был вызванJavaFileManager.close()и этот менеджер файлов нельзя открыть повторно - Начиная с:
- 18
- См. также:
flush
public void flush() throws IOException
JavaFileManager- Определено в:
-
flushв интерфейсеFlushable - Определено в:
-
flushв интерфейсеJavaFileManager - Вызывает:
-
IOException— если произошла ошибка ввода-вывода - См. также:
close
public void close() throws IOException
JavaFileManager- Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв интерфейсеCloseable - Определено в:
-
closeв интерфейсеJavaFileManager - Вызывает:
-
IOException— если произошла ошибка ввода-вывода - См. также:
getLocationForModule
public JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, String moduleName) throws IOException
JavaFileManager- Определено в:
-
getLocationForModuleв интерфейсеJavaFileManager - Параметры:
-
location— местоположение, ориентированное на модули -
moduleName— имя искомого модуля - Возвращает:
- местоположение именованного модуля
- Вызывает:
-
IOException— если произошла ошибка ввода-вывода - Начиная с:
- 9
getLocationForModule
public JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, JavaFileObject fo) throws IOException
JavaFileManager- Определено в:
-
getLocationForModuleв интерфейсеJavaFileManager - Параметры:
-
location— местоположение, ориентированное на модули -
fo— файл - Возвращает:
- модуль, содержащий файл
- Вызывает:
-
IOException— если произошла ошибка ввода-вывода - Начиная с:
- 9
getServiceLoader
public <S> ServiceLoader<S> getServiceLoader(JavaFileManager.Location location, Class<S> service) throws IOException
JavaFileManagerMETA-INF/services.- Определено в:
-
getServiceLoaderв интерфейсеJavaFileManager - Параметры типа:
S— класс службы- Параметры:
-
location— местоположение, ориентированное на модули -
service— объектClassкласса службы - Возвращает:
- загрузчик служб для указанного класса службы
- Вызывает:
-
IOException— если произошла ошибка ввода-вывода - Начиная с:
- 9
inferModuleName
public String inferModuleName(JavaFileManager.Location location) throws IOException
JavaFileManagergetLocationForModule или listModuleLocations.- Определено в:
-
inferModuleNameв интерфейсеJavaFileManager - Параметры:
-
location— местоположение, ориентированное на пакеты и представляющее модуль - Возвращает:
- имя модуля
- Вызывает:
-
IOException— если произошла ошибка ввода-вывода - Начиная с:
- 9
listLocationsForModules
public Iterable<Set<JavaFileManager.Location>> listLocationsForModules(JavaFileManager.Location location) throws IOException
JavaFileManager- Определено в:
-
listLocationsForModulesв интерфейсеJavaFileManager - Параметры:
-
location— местоположение, ориентированное на модули, для которого нужно перечислить модули - Возвращает:
- последовательность наборов местоположений, содержащих модули
- Вызывает исключение:
-
IOException— если произошла ошибка ввода-вывода - С момента:
- 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://docs.oracle.com/en/java/javase/25/docs/api/java.compiler/javax/tools/ForwardingJavaFileManager.html