Класс ForwardingJavaFileManager<M extends JavaFileManager>
- Параметры типа:
-
M— тип файлового менеджера, перенаправляемого этим объектом
- Все реализуемые интерфейсы:
-
Closeable,Flushable,AutoCloseable,JavaFileManager,OptionChecker
public class ForwardingJavaFileManager<M extends JavaFileManager> extends Object implements JavaFileManager
Если не указано иное, ссылки в этом классе на "этот файловый менеджер" следует интерпретировать как косвенные ссылки на delegate file manager.
- С:
- 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 |
Возвращает объект файла для вывода, представляющий указанное относительное имя в указанном пакете в заданном расположении. |
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если загрузка плагинов из данного расположения отключена или если расположение неизвестно - Исключения:
-
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, включать "подпакеты" - Возвращает:
- Iterable объектов файлов, соответствующих заданным критериям
- Исключения:
-
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()был вызван, и этот менеджер файлов не может быть повторно открыт
Получение файла для вывода
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(java.lang.CharSequence, javax.lang.model.element.Element...). Elements.getFileObjectOf(javax.lang.model.element.Element) может быть использован для преобразования Element в FileObject.
- Определено в:
-
getJavaFileForOutputForOriginatingFilesв интерфейсеJavaFileManager - Требования к реализации:
- Если подкласс
ForwardingJavaFileManagerпереопределяет методgetJavaFileForOutput(javax.tools.JavaFileManager.Location, java.lang.String, javax.tools.JavaFileObject.Kind, javax.tools.FileObject), этот метод делегирует ему в соответствии с общим соглашением методаJavaFileManager.getJavaFileForOutputForOriginatingFiles(javax.tools.JavaFileManager.Location, java.lang.String, javax.tools.JavaFileObject.Kind, javax.tools.FileObject...). Если подкласс не переопределяет метод, вызов делегируетсяfileManager. - Параметры:
-
location- местоположение, ориентированное на пакет -
className- имя класса -
kind- тип файла, должен быть одним изSOURCEилиCLASS -
originatingFiles- файлы, которые вносят вклад в этот вновь созданный файл;nullэквивалентно пустомуoriginatingFiles, что означает отсутствие известных исходных файлов - Возвращает:
- объект файла для вывода
- Исключения:
-
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, размещает файлы классов в тех же директориях, что и исходные файлы, если не указана директория вывода файлов классов. Для облегчения этой работы 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(javax.tools.JavaFileManager.Location, java.lang.CharSequence, java.lang.CharSequence, javax.lang.model.element.Element...). Elements.getFileObjectOf(javax.lang.model.element.Element) может быть использован для преобразования Element в FileObject.
Если возвращаемый объект представляет исходный или классовый файл, он должен быть экземпляром JavaFileObject.
Неформально, объект файла, возвращаемый этим методом, расположен в конкатенации позиции, имени пакета и относительного имени или в позиции, выведенной из originatingFiles. См. getFileForInput для примера.
- Specified by:
-
getFileForOutputForOriginatingFilesв интерфейсеJavaFileManager - Implementation Requirements:
- Если подкласс
ForwardingJavaFileManagerпереопределяет методgetFileForOutput(javax.tools.JavaFileManager.Location, java.lang.String, java.lang.String, javax.tools.FileObject), этот метод делегирует ему в соответствии с общим контрактомJavaFileManager.getFileForOutputForOriginatingFiles(javax.tools.JavaFileManager.Location, java.lang.String, java.lang.String, javax.tools.FileObject...). Если подкласс не переопределяет метод, вызов делегируетсяfileManager. - Parameters:
-
location- выходная позиция -
packageName- имя пакета -
relativeName- относительное имя -
originatingFiles- файлы, которые вносят вклад в этот новый файл;nullэквивалентно пустымoriginatingFiles, что означает отсутствие известных исходных файлов - Returns:
- объект файла
- Throws:
-
IllegalArgumentException- если соседний файл неизвестен для этого менеджера файлов, или если позиция неизвестна для этого менеджера файлов, и менеджер файлов не поддерживает неизвестные позиции, или еслиrelativeNameнедействительно, или если позиция не является выходной -
IllegalStateException- еслиJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт -
IOException- если произошла ошибка ввода/вывода, или еслиJavaFileManager.close()был вызван, и этот менеджер файлов не может быть повторно открыт - See Also:
flush
public void flush() throws IOException
JavaFileManager- Specified by:
-
flushв интерфейсеFlushable - Specified by:
-
flushв интерфейсеJavaFileManager - Throws:
-
IOException- если произошла ошибка ввода/вывода - See Also:
close
public void close() throws IOException
JavaFileManager- Specified by:
-
closeв интерфейсеAutoCloseable - Specified by:
-
closeв интерфейсеCloseable - Specified by:
-
closeв интерфейсеJavaFileManager - Throws:
-
IOException- если произошла ошибка ввода/вывода - See Also:
getLocationForModule
public JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, String moduleName) throws IOException
JavaFileManager- Specified by:
-
getLocationForModuleв интерфейсеJavaFileManager - Parameters:
-
location- позиция модуля -
moduleName- имя модуля для поиска - Returns:
- позиция для указанного модуля
- Throws:
-
IOException- если произошла ошибка ввода/вывода - Since:
- 9
getLocationForModule
public JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, JavaFileObject fo) throws IOException
JavaFileManager- Specified by:
-
getLocationForModuleв интерфейсеJavaFileManager - Parameters:
-
location- позиция модуля -
fo- файл - Returns:
- модуль, содержащий файл
- Throws:
-
IOException- если произошла ошибка ввода/вывода - Since:
- 9
getServiceLoader
public <S> ServiceLoader<S> getServiceLoader(JavaFileManager.Location location, Class<S> service) throws IOException
JavaFileManagerMETA-INF/services.- Specified by:
-
getServiceLoaderв интерфейсеJavaFileManager - Type Parameters:
-
S- класс сервиса - Parameters:
-
location- позиция модуля -
service- объектClassкласса сервиса - Returns:
- загрузчик сервисов для заданного класса сервиса
- Throws:
-
IOException- если произошла ошибка ввода/вывода - Since:
- 9
inferModuleName
public String inferModuleName(JavaFileManager.Location location) throws IOException
JavaFileManagergetLocationForModule или listModuleLocations.- Specified by:
-
inferModuleNameв интерфейсеJavaFileManager - Parameters:
-
location- позиция пакета, представляющая модуль - Returns:
- имя модуля
- Throws:
-
IOException- если произошла ошибка ввода/вывода - Since:
- 9
listLocationsForModules
public Iterable<Set<JavaFileManager.Location>> listLocationsForModules(JavaFileManager.Location location) throws IOException
JavaFileManager- Specified by:
-
listLocationsForModulesв интерфейсеJavaFileManager - Parameters:
-
location- позиция модуля, для которой необходимо получить список модулей - Returns:
- ряд наборов позиций, содержащих модули
- Throws:
-
IOException- если произошла ошибка ввода/вывода - Since:
- 9
содержит
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, 2023, 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/21/docs/api/java.compiler/javax/tools/ForwardingJavaFileManager.html