Класс ForwardingJavaFileManager<M extends JavaFileManager>
- java.lang.Object
-
- javax.tools.ForwardingJavaFileManager<M>
- Параметры типа:
-
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. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
void |
close() Освобождает все ресурсы, открытые этим файловым менеджером непосредственно или косвенно. |
void |
flush() Очищает все ресурсы, открытые для вывода этим файловым менеджером непосредственно или косвенно. |
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) Получает объект файла для вывода, представляющий указанный класс указанного типа в заданном расположении. |
boolean |
handleOption(String current,
Iterator<String> remaining) Обрабатывает один параметр. |
boolean |
hasLocation(JavaFileManager.Location location) Определяет, известно ли данное расположение этому файловому менеджеру. |
String |
inferBinaryName(JavaFileManager.Location location,
JavaFileObject file) Вычисляет двоичное имя объекта файла на основе расположения. |
boolean |
isSameFile(FileObject a,
FileObject b) Сравнивает два объекта файла и возвращает true, если они представляют один и тот же базовый объект. |
int |
isSupportedOption(String option) Определяет, поддерживается ли данный параметр, и если да, то сколько аргументов он принимает. |
Iterable<JavaFileObject> |
list(JavaFileManager.Location location,
String packageName,
Set<JavaFileObject.Kind> kinds,
boolean recurse) Перечисляет все объекты файлов, соответствующие заданным критериям в данном расположении. |
Методы, унаследованные от класса java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait Поля
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, включать «подпапки» - Возвращает:
- итерируемый объект файлов, соответствующих заданным критериям
- Исключение:
-
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()был вызван, и данный менеджер файлов не может быть повторно открыт
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 может предоставить исходный файл .java как «родственный» файл при вызове этого метода.
- Указано в:
-
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
Получает объект файла для ввода, представляющий указанное «относительное имя» в указанном пакете в заданном расположении.
Если возвращаемый объект представляет собой файл .java или .class, он должен быть экземпляром JavaFileObject.
Неформально, объект файла, возвращаемый этим методом, находится в конкатенации расположения, имени пакета и относительного имени. Например, чтобы найти файл properties «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()был вызван и этот менеджер файлов не может быть повторно открыт
flush
public void flush()
throws IOException Описание скопировано из интерфейса: JavaFileManager
Очищает все ресурсы, открытые для вывода этим менеджером файлов напрямую или косвенно. Очистка закрытого менеджера файлов не оказывает никакого эффекта.
- Определено в:
-
flushв интерфейсеFlushable - Определено в:
-
flushв интерфейсеJavaFileManager - Исключения:
-
IOException- если произошла ошибка ввода-вывода - См. также:
JavaFileManager.close()
close
public void close()
throws IOException Описание скопировано из интерфейса: JavaFileManager
Освобождает все ресурсы, открытые этим менеджером файлов напрямую или косвенно. Это может сделать этот менеджер файлов бесполезным, и влияние последующих вызовов методов этого объекта или любых объектов, полученных через этот объект, не определено, если явно не разрешено. Однако закрытие менеджера файлов, который уже был закрыт, не оказывает никакого эффекта.
- Определено в:
-
closeв интерфейсеCloseable - Определено в:
-
closeв интерфейсеAutoCloseable - Определено в:
-
closeв интерфейсеJavaFileManager - Исключения:
-
IOException- если произошла ошибка ввода-вывода - См. также:
JavaFileManager.flush()
© 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.