Класс ForwardingJavaFileManager<M extends JavaFileManager>

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)

Выводит имя модуля из его расположения, как возвращается getLocationForModule или listModuleLocations.

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

Spec-Zone .ru
спецификации, руководства, описания, API