Класс ForwardingJavaFileManager<M extends JavaFileManager>
- java.lang.Object
-
- javax.tools.ForwardingJavaFileManager<M>
- Type Parameters:
-
M- тип файлового менеджера, передаваемого этому объекту
- Все реализованные интерфейсы:
-
Closeable,Flushable,AutoCloseable,JavaFileManager,OptionChecker
public class ForwardingJavaFileManager<M extends JavaFileManager> extends Object implements JavaFileManager
Перенаправляет вызовы заданному файловому менеджеру. Подклассы этого класса могут переопределять некоторые из этих методов, а также предоставлять дополнительные поля и методы.
- С:
- 1.6
Вложенные классы
Вложенные классы/интерфейсы, объявленные в интерфейсе javax.tools.JavaFileManager
JavaFileManager.Location Поля
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected M | fileManager | Файловый менеджер, к которому делегируются все методы. |
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected | ForwardingJavaFileManager(M fileManager) | Создаёт новый экземпляр ForwardingJavaFileManager. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean | contains(JavaFileManager.Location location,
FileObject fo) | Определяет, содержится ли заданный объект файла в указанном расположении. |
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) | Возвращает объект файла для вывода, представляющий указанный класс заданного типа в данном расположении, ориентированном на пакеты. |
JavaFileManager.Location | getLocationForModule(JavaFileManager.Location location,
String moduleName) | Получает расположение для указанного модуля в рамках расположения, которое может быть расположением, ориентированным на модули, или расположением вывода. |
JavaFileManager.Location | getLocationForModule(JavaFileManager.Location location,
JavaFileObject fo) | Получает расположение для модуля, содержащего определённый файл, который нужно найти в рамках расположения, которое может быть расположением, ориентированным на модули, или расположением вывода. |
<S> ServiceLoader<S> | getServiceLoader(JavaFileManager.Location location,
Class<S> service) | Получает загрузчик служб для определённого класса службы из данного расположения. |
boolean | handleOption(String current,
Iterator<String> remaining) | Обрабатывает один параметр. |
String | inferBinaryName(JavaFileManager.Location location,
JavaFileObject file) | Выводит имя двоичного файла по объекту файла на основе расположения, ориентированного на пакет. |
String | inferModuleName(JavaFileManager.Location location) | Выводит имя модуля из его расположения, как возвращается |
boolean | isSameFile(FileObject a,
FileObject b) | Сравнивает два объекта файла и возвращает true, если они представляют один и тот же базовый объект. |
Iterable<JavaFileObject> | list(JavaFileManager.Location location,
String packageName,
Set<JavaFileObject.Kind> kinds,
boolean recurse) | Перечисляет все объекты файлов, соответствующие заданным критериям, в данном расположении, ориентированном на пакеты. |
Iterable<Set<JavaFileManager.Location>> | listLocationsForModules(JavaFileManager.Location location) | Перечисляет расположения всех модулей в расположении, ориентированном на модули, или в расположении вывода. |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Методы, объявленные в интерфейсе javax.tools.JavaFileManager
close, flush, hasLocation Методы, объявленные в интерфейсе javax.tools.OptionChecker
isSupportedOption Подробности полей
fileManager
protected final M extends JavaFileManager fileManager
Файловый менеджер, к которому делегируются все методы.
Подробности конструкторов
ForwardingJavaFileManager
protected ForwardingJavaFileManager(M fileManager)
Создаёт новый экземпляр ForwardingJavaFileManager.
- Параметры:
-
fileManager- делегат для этого файлового менеджера
Методы
getClassLoader
public ClassLoader getClassLoader(JavaFileManager.Location location)
Описание скопировано из интерфейса: JavaFileManager
Возвращает загрузчик классов для загрузки плагинов из заданного расположения, ориентированного на пакеты. Например, для загрузки обработчиков аннотаций компилятор запросит загрузчик классов для расположения ANNOTATION_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
Выводит список всех объектов файлов, соответствующих заданным критериям, в заданном расположении, ориентированном на пакеты. Список объектов файлов в «подпакетах», если recurse имеет значение true.
Примечание: даже если заданное расположение неизвестно этому менеджеру файлов, он может не вернуть null. Также неизвестное расположение может не вызвать исключения.
- Определено в:
-
listв интерфейсеJavaFileManager - Параметры:
-
location- расположение -
packageName- имя пакета -
kinds- возвращать объекты только этих типов -
recurse- если true, включать «подпакеты» - Возвращает:
- Iterable объектов файлов, соответствующих заданным критериям
- Исключения:
-
IOException- если произошла ошибка ввода-вывода или еслиJavaFileManager.close()был вызван и этот менеджер файлов не может быть повторно открыт -
IllegalStateException- еслиJavaFileManager.close()был вызван и этот менеджер файлов не может быть повторно открыт
inferBinaryName
public String inferBinaryName(JavaFileManager.Location location,
JavaFileObject file) Описание скопировано из интерфейса: JavaFileManager
Выводит имя двоичного файла из объекта файла на основе расположения, ориентированного на пакеты. Возвращаемое двоичное имя может не быть допустимым двоичным именем в соответствии с Спецификацией языка Java™.
- Определено в:
-
inferBinaryNameв интерфейсеJavaFileManager - Параметры:
-
location- расположение -
file- объект файла - Возвращает:
- двоичное имя или
nullобъект файла не найден в заданном расположении - Исключения:
-
IllegalStateException- еслиJavaFileManager.close()был вызван и этот менеджер файлов не может быть повторно открыт
isSameFile
public boolean isSameFile(FileObject a,
FileObject b) Описание скопировано из интерфейса: JavaFileManager
Сравнивает два объекта файла и возвращает true, если они представляют один и тот же базовый объект.
- Определено в:
-
isSameFileв интерфейсеJavaFileManager - Параметры:
-
a- объект файла -
b- объект файла - Возвращает:
- true, если заданные объекты файла представляют один и тот же базовый объект
- Исключения:
-
IllegalArgumentException- если любой из аргументов был создан с помощью другого менеджера файлов и этот менеджер файлов не поддерживает внешние объекты файлов
handleOption
public boolean handleOption(String current,
Iterator<String> remaining) Описание скопировано из интерфейса: JavaFileManager
Обрабатывает один параметр. Если current является параметром для этого менеджера файлов, он обработает все аргументы этого параметра из remaining и вернет true, иначе вернет false.
- Определено в:
-
handleOptionв интерфейсеJavaFileManager - Параметры:
-
current- текущий параметр -
remaining- оставшиеся параметры - Возвращает:
- true, если этот параметр был обработан этим менеджером файлов, иначе false
- Исключения:
-
IllegalArgumentException- если этот параметр для этого менеджера файлов используется неправильно -
IllegalStateException- еслиJavaFileManager.close()был вызван и этот менеджер файлов не может быть повторно открыт
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()был вызван и этот менеджер файлов не может быть повторно открыт
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 в тех же каталогах, что и исходные файлы, если не указан каталог вывода для файлов .class. Чтобы облегчить это поведение, javac может передать исходный файл в качестве сиблинга при вызове этого метода.
Если возвращаемый объект представляет собой файл исходного кода или класса, он должен быть экземпляром JavaFileObject.
Неформально, объект файла, возвращаемый этим методом, расположен в конкатенации расположения, имени пакета и относительного имени или рядом с аргументом «сиблинга». См. getFileForInput для примера.
- Определено в:
-
getFileForOutputв интерфейсеJavaFileManager - Параметры:
-
location— местоположение вывода -
packageName— имя пакета -
relativeName— относительное имя -
sibling— объект файла, используемый как подсказка для размещения; может бытьnull - Возвращает:
- объект файла
- Выбрасывает:
-
IllegalArgumentException— если сиблинг неизвестен этому менеджеру файлов, или если расположение неизвестно этому менеджеру файлов и менеджер файлов не поддерживает неизвестные расположения, или еслиrelativeNameнедействительно, или если расположение не является расположением вывода -
IllegalStateException— если методJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт -
IOException— если произошла ошибка ввода-вывода или если методJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт
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 Описание скопировано из интерфейса: JavaFileManager
Получение загрузчика сервисов для определенного сервисного класса из данного расположения. Если расположение является модульным, загрузчик сервисов будет использовать объявления сервисов в модулях, найденных в этом расположении. В противном случае загрузчик сервисов создаётся, используя расположение пакета, в котором случае службы определяются с помощью файлов конфигурации провайдера в META-INF/services.
- Определено в:
-
getServiceLoaderв интерфейсеJavaFileManager - Параметры типа:
-
S— класс службы - Параметры:
-
location— модульное расположение -
service— объектClassсервисного класса - Возвращает:
- загрузчик сервисов для данного сервисного класса
- Выбрасывает:
-
IOException— если произошла ошибка ввода-вывода - С:
- 9
inferModuleName
public String inferModuleName(JavaFileManager.Location location)
throws IOException Описание скопировано из интерфейса: JavaFileManager
Определение имени модуля из его местоположения, как возвращается getLocationForModule или 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, 2020, 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/11/docs/api/java.compiler/javax/tools/ForwardingJavaFileManager.html