Класс 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 |
Возвращает объект файла для вывода, представляющий указанное относительное имя в указанном пакете в заданном расположении. |
JavaFileObject |
getJavaFileForInput |
Возвращает объект файла для ввода, представляющий указанный класс заданного типа в заданном расположении в стиле пакетов. |
JavaFileObject |
getJavaFileForOutput |
Возвращает объект файла для вывода, представляющий указанный класс заданного типа в заданном расположении в стиле пакетов. |
JavaFileManager.Location |
getLocationForModule |
Получает расположение для именованного модуля в пределах расположения, которое может быть либо модульным расположением, либо расположением для вывода. |
JavaFileManager.Location |
getLocationForModule |
Получает расположение для модуля, содержащего конкретный файл, который нужно найти в пределах расположения, которое может быть либо модульным расположением, либо расположением для вывода. |
<S> ServiceLoader<S> |
getServiceLoader |
Получает загрузчик сервисов для конкретного класса сервиса из заданного расположения. |
boolean |
handleOption |
Обрабатывает один параметр. |
boolean |
hasLocation |
Определяет, известно ли данное расположение этому файловому менеджеру. |
String |
inferBinaryName |
Выводит двоичное имя объекта файла на основе расположения в стиле пакетов. |
String |
inferModuleName |
Выводит имя модуля из его расположения, возвращаемого getLocationForModule или listModuleLocations. |
boolean |
isSameFile |
Сравнивает два объекта файла и возвращает true, если они представляют один и тот же базовый объект. |
int |
isSupportedOption |
Определяет, поддерживается ли данный параметр, и если да, то количество аргументов, которые он принимает. |
Iterable<JavaFileObject> |
list |
Перечисляет все объекты файла, соответствующие заданным критериям, в данном расположении в стиле пакетов. |
Iterable<Set<JavaFileManager.Location>> |
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, если загрузка плагинов из заданной директории отключена или директория неизвестна - Исключения:
-
SecurityException- если загрузчик классов не может быть создан в текущем контексте безопасности -
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()был вызван, и данный менеджер файлов не может быть повторно открыт
ПолучитьФайлДляВвода
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()был вызван, и этот менеджер файлов не может быть повторно открыт
ПолучитьФайлДляВывода
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()был вызван, и этот менеджер файлов не может быть повторно открыт
сброс
public void flush() throws IOException
JavaFileManager- Указано в:
-
flushв интерфейсеFlushable - Указано в:
-
flushв интерфейсеJavaFileManager - Изначает исключения:
-
IOException- если произошла ошибка ввода-вывода - См. также:
закрыть
public void close() throws IOException
JavaFileManager- Указано в:
-
closeв интерфейсеAutoCloseable - Указано в:
-
closeв интерфейсеCloseable - Указано в:
-
closeв интерфейсеJavaFileManager - Изначает исключения:
-
IOException- если произошла ошибка ввода-вывода - См. также:
ПолучитьМестоположениеДляМодуля
public JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, String moduleName) throws IOException
JavaFileManager- Указано в:
-
getLocationForModuleв интерфейсеJavaFileManager - Параметры:
-
location- местоположение, ориентированное на модуль -
moduleName- имя модуля, который нужно найти - Возвращает:
- местоположение для заданного модуля
- Изначает исключения:
-
IOException- если произошла ошибка ввода-вывода - С:
- 9
ПолучитьМестоположениеДляМодуля
public JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, JavaFileObject fo) throws IOException
JavaFileManager- Указано в:
-
getLocationForModuleв интерфейсеJavaFileManager - Параметры:
-
location- местоположение, ориентированное на модуль -
fo- файл - Возвращает:
- модуль, содержащий файл
- Изначает исключения:
-
IOException- если произошла ошибка ввода-вывода - С:
- 9
ЗагрузчикСервисов
public <S> ServiceLoader<S> getServiceLoader(JavaFileManager.Location location, Class<S> service) throws IOException
JavaFileManagerMETA-INF/services.- Указано в:
-
getServiceLoaderв интерфейсеJavaFileManager - Параметры типа:
-
S- сервисный класс - Параметры:
-
location- местоположение, ориентированное на модуль -
service- объектClassсервисного класса - Возвращает:
- загрузчик сервисов для данного сервисного класса
- Изначает исключения:
-
IOException- если произошла ошибка ввода-вывода - С:
- 9
вывестиИмяМодуля
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, 2021, 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/17/docs/api/java.compiler/javax/tools/ForwardingJavaFileManager.html