Spec-Zone.ru › OpenJDK 21

Интерфейс JavaFileManager

Все суперинтерфейсы:
AutoCloseable, Closeable, Flushable, OptionChecker
Все известные дочерние интерфейсы:
StandardJavaFileManager
Все известные реализующие классы:
ForwardingJavaFileManager
public interface JavaFileManager extends Closeable, Flushable, OptionChecker
Менеджер файлов для инструментов, работающих с исходными и файлами классов языка программирования Java. В этом контексте файл означает абстракцию обычных файлов и других источников данных.

При создании новых JavaFileObject менеджер файлов должен определить, где их создавать. Например, если менеджер файлов управляет обычными файлами в файловой системе, он, скорее всего, будет иметь текущую/рабочую директорию в качестве места по умолчанию при создании или поиске файлов. Менеджеру файлов могут быть предоставлены подсказки о том, где создавать файлы. Любой менеджер файлов может игнорировать эти подсказки.

Некоторые методы в этом интерфейсе используют имена классов. Такие имена классов должны быть предоставлены во внутренней форме виртуальной машины Java для полных квалифицированных имён классов и интерфейсов. Для удобства '.' и '/' взаимозаменяемы. Внутренняя форма определена в четвёртой главе Спецификации виртуальной машины Java.

Обсуждение: это означает, что имена "java/lang.package-info", "java/lang/package-info", "java.lang.package-info" являются допустимыми и эквивалентными. Сравните с именем двоичного файла, как определено в Спецификации языка Java, раздел 13.1 "Форма двоичного файла".

Регистр символов важен. Все имена должны рассматриваться как чувствительные к регистру. Например, некоторые файловые системы имеют нечувствительные к регистру, но чувствительные к регистру имена файлов. Объекты файлов, представляющие такие файлы, должны позаботиться о сохранении регистра, используя File.getCanonicalFile() или аналогичные средства. Если система нечувствительна к регистру, объекты файлов должны использовать другие средства для сохранения регистра.

Относительные имена: некоторые методы в этом интерфейсе используют относительные имена. Относительное имя — это непустая последовательность сегментов пути, разделённых '/'. '.' или '..' являются недопустимыми сегментами пути. Допустимое относительное имя должно соответствовать правилу "path-rootless" из RFC 3986, раздел 3.3. Неформально, это должно быть истинно:

URI.create(relativeName).normalize().getPath().equals(relativeName)

Все методы в этом интерфейсе могут выбросить исключение SecurityException.

Объект этого интерфейса не обязан поддерживать многопоточный доступ, то есть быть синхронизированным. Однако он должен поддерживать одновременный доступ к различным объектам файлов, созданным этим объектом.

Примечание по реализации: следствием этого требования является то, что тривиальная реализация вывода в JarOutputStream не является достаточной реализацией. То есть, вместо создания JavaFileObject, который возвращает JarOutputStream напрямую, содержимое должно кешироваться до закрытия и затем записываться в JarOutputStream.

Если явно не разрешено, все методы в этом интерфейсе могут выбросить NullPointerException, если им будет передан null аргумент.

С тех пор:
1.6
Внешние спецификации
  • RFC 3986: Унифицированный идентификатор ресурса (URI): Общий синтаксис
См. также:
  • JavaFileObject
  • FileObject

Краткое описание вложенных классов

Модификатор и тип Интерфейс Описание
static interface  JavaFileManager.Location
Интерфейс для расположений объектов файлов.

Краткое описание методов

Модификатор и тип Метод Описание
void close()
Освобождает все ресурсы, открытые этим менеджером файлов напрямую или косвенно.
default boolean contains(JavaFileManager.Location location, FileObject fo)
Определяет, содержится ли данный объект файла в указанном расположении.
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)
Возвращает объект файла для вывода, представляющий заданное относительное имя в указанном пакете в заданном расположении.
default FileObject getFileForOutputForOriginatingFiles(JavaFileManager.Location location, String packageName, String relativeName, FileObject... originatingFiles)
Возвращает объект файла для вывода, представляющий заданное относительное имя в указанном пакете в заданном расположении.
JavaFileObject getJavaFileForInput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind)
Возвращает объект файла для ввода, представляющий указанный класс заданного типа в заданном расположении в стиле пакета.
JavaFileObject getJavaFileForOutput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling)
Возвращает объект файла для вывода, представляющий указанный класс заданного типа в заданном расположении в стиле пакета.
default JavaFileObject getJavaFileForOutputForOriginatingFiles(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject... originatingFiles)
Возвращает объект файла для вывода, представляющий указанный класс заданного типа в заданном расположении в стиле пакета.
default JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, String moduleName)
Получает расположение для модуля с именем внутри расположения, которое может быть либо модульным расположением, либо расположением вывода.
default JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, JavaFileObject fo)
Получает расположение для модуля, содержащего определённый файл, который должен быть найден внутри расположения, которое может быть либо модульным расположением, либо расположением вывода.
default <S> ServiceLoader<S> getServiceLoader(JavaFileManager.Location location, Class<S> service)
Получает загрузчик сервисов для конкретного класса сервиса из заданного расположения.
boolean handleOption(String current, Iterator<String> remaining)
Обрабатывает один параметр.
boolean hasLocation(JavaFileManager.Location location)
Определяет, известно ли данное расположение этому менеджеру файлов.
String inferBinaryName(JavaFileManager.Location location, JavaFileObject file)
Выводит двоичное имя объекта файла на основе расположения в стиле пакета.
default 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)
Выводит все объекты файлов, соответствующие заданным критериям в заданном расположении в стиле пакета.
default Iterable<Set<JavaFileManager.Location>> listLocationsForModules(JavaFileManager.Location location)
Выводит расположения всех модулей в модульном расположении или расположении вывода.

Методы, объявленные в интерфейсе javax.tools.OptionChecker

isSupportedOption

Подробное описание методов

getClassLoader

ClassLoader getClassLoader(JavaFileManager.Location location)
Возвращает загрузчик классов для загрузки плагинов из заданного местоположения, ориентированного на пакеты. Например, для загрузки процессоров аннотаций компилятор запросит загрузчик классов для местоположения ANNOTATION_PROCESSOR_PATH.
Параметры:
location - местоположение
Возвращает:
загрузчик классов для данного местоположения; или null если загрузка плагинов из данного местоположения отключена или если местоположение неизвестно
Исключения:
SecurityException - если загрузчик классов не может быть создан в текущем контексте безопасности
IllegalStateException - если метод close() был вызван, и этот менеджер файлов не может быть повторно открыт
IllegalArgumentException - если местоположение ориентировано на модули

list

Iterable<JavaFileObject> list(JavaFileManager.Location location, String packageName, Set<JavaFileObject.Kind> kinds, boolean recurse) throws IOException
Перечисляет все объекты файлов, соответствующие заданным критериям, в данном местоположении, ориентированном на пакеты. Перечисляет объекты файлов в "подпакетах", если recurse имеет значение true.

Примечание: даже если данное местоположение неизвестно этому менеджеру файлов, он может не вернуть null. Также неизвестное местоположение может не вызвать исключения.

Параметры:
location - местоположение
packageName - имя пакета
kinds - возвращать объекты только этих типов
recurse - если true, включать "подпакеты"
Возвращает:
Iterable объектов файлов, соответствующих заданным критериям
Исключения:
IOException - если произошла ошибка ввода-вывода или если метод close() был вызван, и этот менеджер файлов не может быть повторно открыт
IllegalArgumentException - если местоположение ориентировано на модули
IllegalStateException - если метод close() был вызван, и этот менеджер файлов не может быть повторно открыт

inferBinaryName

String inferBinaryName(JavaFileManager.Location location, JavaFileObject file)
Выводит двоичное имя объекта файла на основе местоположения, ориентированного на пакет. Возвращаемое двоичное имя может не быть действительным двоичным именем согласно Спецификации языка Java.
Параметры:
location - местоположение
file - объект файла
Возвращает:
двоичное имя или null если объект файла не найден в заданном местоположении
Исключения:
IllegalArgumentException - если местоположение ориентировано на модули
IllegalStateException - если метод close() был вызван и этот менеджер файлов не может быть повторно открыт

isSameFile

boolean isSameFile(FileObject a, FileObject b)
Сравнивает два объекта файла и возвращает true, если они представляют один и тот же базовый объект.
Параметры:
a - объект файла
b - объект файла
Возвращает:
true, если данные объекты файлов представляют один и тот же базовый объект
Исключения:
IllegalArgumentException - если любой из аргументов был создан с другим менеджером файлов, и этот менеджер файлов не поддерживает внешние объекты файлов

handleOption

boolean handleOption(String current, Iterator<String> remaining)
Обрабатывает один параметр. Если current является параметром для этого менеджера файлов, он использует все аргументы к этому параметру из remaining и возвращает true, в противном случае возвращает false.
Параметры:
current - текущий параметр
remaining - оставшиеся параметры
Возвращает:
true, если этот параметр был обработан этим менеджером файлов, в противном случае false
Исключения:
IllegalArgumentException - если этот параметр для этого менеджера файлов используется неправильно
IllegalStateException - если метод close() был вызван и этот менеджер файлов не может быть повторно открыт

hasLocation

boolean hasLocation(JavaFileManager.Location location)
Определяет, известно ли это местоположение данному менеджеру файлов.
Параметры:
location - местоположение
Возвращает:
true, если местоположение известно

getJavaFileForInput

JavaFileObject getJavaFileForInput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind) throws IOException
Возвращает объект файла для ввода, представляющий указанный класс заданного типа в данном местоположении, ориентированном на пакеты.
Параметры:
location - местоположение
className - имя класса
kind - тип файла, должен быть одним из SOURCE или CLASS
Возвращает:
объект файла, может вернуть null если файл не существует
Исключения:
IllegalArgumentException - если местоположение неизвестно этому менеджеру файлов и менеджер файлов не поддерживает неизвестные местоположения, или если тип недействителен, или если местоположение ориентировано на модули
IOException - если произошла ошибка ввода-вывода, или если метод close() был вызван, и этот менеджер файлов не может быть повторно открыт
IllegalStateException - если метод close() был вызван, и этот менеджер файлов не может быть повторно открыт

getJavaFileForOutput

JavaFileObject getJavaFileForOutput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling) throws IOException
Возвращает объект файла для вывода, представляющий указанный класс заданного типа в данном местоположении, ориентированном на пакеты.

Необязательно, этот менеджер файлов может рассматривать братский файл как подсказку для размещения выходных данных. Точная семантика этой подсказки не определена. Например, компилятор JDK, javac, будет помещать файлы .class в те же директории, что и исходные файлы .java, если не указан выходной каталог для файлов .class. Чтобы облегчить это поведение, javac может предоставить исходный файл .java в качестве sibling при вызове этого метода.

Параметры:
location - местоположение, ориентированное на пакет
className - имя класса
kind - тип файла, должен быть одним из SOURCE или CLASS
sibling - объект файла, используемый в качестве подсказки для размещения; может быть null
Возвращает:
объект файла для вывода
Исключения:
IllegalArgumentException - если братский файл неизвестен этому менеджеру файлов, или если местоположение неизвестно этому менеджеру файлов и менеджер файлов не поддерживает неизвестные местоположения, или если тип недействителен, или если местоположение не является выходным
IOException - если произошла ошибка ввода-вывода, или если метод close() был вызван, и этот менеджер файлов не может быть повторно открыт
IllegalStateException - метод close() был вызван и этот менеджер файлов не может быть повторно открыт

getJavaFileForOutputForOriginatingFiles

default 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.

Требования к реализации:
Базовая реализация вызывает getJavaFileForOutput(javax.tools.JavaFileManager.Location, java.lang.String, javax.tools.JavaFileObject.Kind, javax.tools.FileObject) с первым элементом originatingFiles, если таковой имеется, в качестве sibling.
Параметры:
location - местоположение, ориентированное на пакет
className - имя класса
kind - тип файла, должен быть одним из SOURCE или CLASS
originatingFiles - файлы, которые вносят вклад в этот недавно созданный файл; null эквивалентно пустому originatingFiles, означающему, что нет известных файлов происхождения
Возвращает:
объект файла для вывода
Исключения:
IllegalArgumentException - если братский файл неизвестен этому менеджеру файлов, или если местоположение неизвестно этому менеджеру файлов и менеджер файлов не поддерживает неизвестные местоположения, или если тип недействителен, или если местоположение не является выходным
IOException - если произошла ошибка ввода-вывода, или если метод close() был вызван, и этот менеджер файлов не может быть повторно открыт
IllegalStateException - метод close() был вызван и этот менеджер файлов не может быть повторно открыт
С:
18
См. также:
  • Filer.createSourceFile(java.lang.CharSequence, javax.lang.model.element.Element...)

getFileForInput

FileObject getFileForInput(JavaFileManager.Location location, String packageName, String relativeName) throws IOException
Возвращает объект файла для ввода, представляющий указанное относительное имя в указанном пакете в заданном пакетно-ориентированном расположении.

Если возвращаемый объект представляет собой файл исходного кода или класса, он должен быть экземпляром 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".

Параметры:
location - пакетно-ориентированное расположение
packageName - имя пакета
relativeName - относительное имя
Возвращает:
объект файла, может вернуть null если файл не существует
Выбрасывает:
IllegalArgumentException - если расположение неизвестно этому файловому менеджеру и файловый менеджер не поддерживает неизвестные расположения, или если relativeName недействительно, или если расположение является модульно-ориентированным
IOException - если произошла ошибка ввода-вывода, или если close() был вызван и этот файловый менеджер не может быть повторно открыт
IllegalStateException - если close() был вызван и этот файловый менеджер не может быть повторно открыт

getFileForOutput

FileObject getFileForOutput(JavaFileManager.Location location, String packageName, String relativeName, FileObject sibling) throws IOException
Возвращает объект файла для вывода, представляющий указанное относительное имя в указанном пакете в заданном расположении.

По желанию, этот файловый менеджер может рассматривать братский файл как подсказку для размещения вывода. Точные семантики этой подсказки не определены. Компилятор JDK, javac, например, будет размещать файлы классов в тех же директориях, что и исходные файлы, если не указана директория вывода для файлов классов. Для обеспечения этого поведения javac может предоставить исходный файл как братский, при вызове этого метода.

Если возвращаемый объект представляет собой файл исходного кода или класса, он должен быть экземпляром JavaFileObject.

Неформально, объект файла, возвращаемый этим методом, находится в результате конкатенации расположения, имени пакета и относительного имени или рядом с аргументом sibling. См. getFileForInput для примера.

Параметры:
location - расположение вывода
packageName - имя пакета
relativeName - относительное имя
sibling - объект файла, используемый в качестве подсказки для размещения; может быть null
Возвращает:
объект файла
Выбрасывает:
IllegalArgumentException - если sibling неизвестен этому файловому менеджеру, или если расположение неизвестно этому файловому менеджеру и файловый менеджер не поддерживает неизвестные расположения, или если relativeName недействительно, или если расположение не является расположением вывода
IOException - если произошла ошибка ввода-вывода, или если close() был вызван и этот файловый менеджер не может быть повторно открыт
IllegalStateException - если close() был вызван и этот файловый менеджер не может быть повторно открыт

getFileForOutputForOriginatingFiles

default 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 для примера.

Требования к реализации:
По умолчанию реализация вызывает getFileForOutput(javax.tools.JavaFileManager.Location, java.lang.String, java.lang.String, javax.tools.FileObject) с первым элементом originatingFiles, если таковой имеется, в качестве sibling.
Параметры:
location - расположение вывода
packageName - имя пакета
relativeName - относительное имя
originatingFiles - файлы, которые вносят вклад в этот новый созданный файл; null эквивалентно пустому originatingFiles, что означает, что известных файлов-источников нет
Возвращает:
объект файла
Выбрасывает:
IllegalArgumentException - если sibling неизвестен этому файловому менеджеру, или если расположение неизвестно этому файловому менеджеру и файловый менеджер не поддерживает неизвестные расположения, или если relativeName недействительно, или если расположение не является расположением вывода
IOException - если произошла ошибка ввода-вывода, или если close() был вызван и этот файловый менеджер не может быть повторно открыт
IllegalStateException - если close() был вызван и этот файловый менеджер не может быть повторно открыт
С:
18
См. также:
  • Filer.createResource(javax.tools.JavaFileManager.Location, java.lang.CharSequence, java.lang.CharSequence, javax.lang.model.element.Element...)

flush

void flush() throws IOException
Очищает все ресурсы, открытые для вывода этим файловым менеджером напрямую или косвенно. Очистка закрытого файлового менеджера не оказывает никакого эффекта.
Определено в:
flush в интерфейсе Flushable
Выбрасывает:
IOException - если произошла ошибка ввода-вывода
См. также:
  • close()

close

void close() throws IOException
Освобождает все ресурсы, открытые этим файловым менеджером напрямую или косвенно. Это может сделать этот файловый менеджер бесполезным, и действие последующих вызовов методов этого объекта или любых объектов, полученных через этот объект, не определено, если явно не разрешено. Однако закрытие файлового менеджера, который уже был закрыт, не оказывает никакого эффекта.
Определено в:
close в интерфейсе AutoCloseable
Определено в:
close в интерфейсе Closeable
Выбрасывает:
IOException - если произошла ошибка ввода-вывода
См. также:
  • flush()

getLocationForModule

default JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, String moduleName) throws IOException
Получает расположение для модуля с заданным именем в рамках расположения, которое может быть либо модульно-ориентированным расположением, либо расположением вывода. Результатом будет расположение вывода, если заданное расположение является расположением вывода, или это будет пакетно-ориентированное расположение.
Требования к реализации:
Эта реализация выбрасывает UnsupportedOperationException.
Параметры:
location - модульно-ориентированное расположение
moduleName - имя модуля для поиска
Возвращает:
расположение для заданного модуля
Выбрасывает:
IOException - если произошла ошибка ввода-вывода
UnsupportedOperationException - если эта операция не поддерживается этим файловым менеджером
IllegalArgumentException - если расположение не является ни расположением вывода, ни модульно-ориентированным расположением
С:
9

getLocationForModule

default JavaFileManager.Location getLocationForModule(JavaFileManager.Location location, JavaFileObject fo) throws IOException
Получает расположение для модуля, содержащего конкретный файл для поиска в рамках расположения, которое может быть либо модульно-ориентированным расположением, либо расположением вывода. Результатом будет расположение вывода, если заданное расположение является расположением вывода, или это будет пакетно-ориентированное расположение.
Требования к реализации:
Эта реализация выбрасывает UnsupportedOperationException.
Параметры:
location - модульно-ориентированное расположение
fo - файл
Возвращает:
модуль, содержащий файл
Выбрасывает:
IOException - если произошла ошибка ввода-вывода
UnsupportedOperationException - если эта операция не поддерживается этим файловым менеджером
IllegalArgumentException - если расположение не является ни расположением вывода, ни модульно-ориентированным расположением
С:
9

getServiceLoader

default <S> ServiceLoader<S> getServiceLoader(JavaFileManager.Location location, Class<S> service) throws IOException
Получение загрузчика сервисов для конкретного класса сервиса из заданного расположения. Если расположение ориентировано на модули, загрузчик сервисов будет использовать объявления сервисов в модулях, найденных в этом расположении. В противном случае загрузчик сервисов создается, используя расположение, ориентированное на пакеты, в этом случае сервисы определяются с помощью файлов конфигурации поставщика в META-INF/services.
Требования к реализации:
Эта реализация выбрасывает UnsupportedOperationException.
Параметры типа:
S - класс сервиса
Параметры:
location - расположение, ориентированное на модули
service - объект Class класса сервиса
Возвращаемое значение:
загрузчик сервисов для данного класса сервиса
Исключения:
IOException - если произошла ошибка ввода/вывода
UnsupportedOperationException - если эта операция не поддерживается этим менеджером файлов
С момента:
9

inferModuleName

default String inferModuleName(JavaFileManager.Location location) throws IOException
Выведение имени модуля из его расположения, как возвращается getLocationForModule или listModuleLocations.
Требования к реализации:
Эта реализация выбрасывает UnsupportedOperationException.
Параметры:
location - расположение, ориентированное на пакеты, представляющее модуль
Возвращаемое значение:
имя модуля
Исключения:
IOException - если произошла ошибка ввода/вывода
UnsupportedOperationException - если эта операция не поддерживается этим менеджером файлов
IllegalArgumentException - если расположение не известно этому менеджеру файлов
С момента:
9

listLocationsForModules

default Iterable<Set<JavaFileManager.Location>> listLocationsForModules(JavaFileManager.Location location) throws IOException
Перечисляет расположения для всех модулей в расположении, ориентированном на модули, или в расположении вывода. Возвращаемые расположения будут расположениями вывода, если заданное расположение является расположением вывода, или это будут расположения, ориентированные на пакеты.
Требования к реализации:
Эта реализация выбрасывает UnsupportedOperationException.
Параметры:
location - расположение, ориентированное на модули, для которого необходимо перечислить модули
Возвращаемое значение:
ряд наборов расположений, содержащих модули
Исключения:
IOException - если произошла ошибка ввода/вывода
UnsupportedOperationException - если эта операция не поддерживается этим менеджером файлов
IllegalArgumentException - если расположение не является расположением, ориентированным на модули
С момента:
9

contains

default boolean contains(JavaFileManager.Location location, FileObject fo) throws IOException
Определяет, содержится ли заданный объект файла в указанном расположении.

Для расположения, ориентированного на пакеты, объект файла содержится в расположении, если существуют значения для packageName и relativeName, такие, что любой из следующих вызовов вернет объект файла same:

getFileForInput(location, packageName, relativeName)
getFileForOutput(location, packageName, relativeName, null)

Для расположения, ориентированного на модули, объект файла содержится в расположении, если существует модуль, который может быть получен с помощью вызова:

getLocationForModule(location, moduleName)
такой, что объект файла содержится в (ориентированном на пакеты) расположении для этого модуля.
Требования к реализации:
Эта реализация выбрасывает UnsupportedOperationException.
Параметры:
location - расположение
fo - объект файла
Возвращаемое значение:
содержится ли файл в расположении
Исключения:
IOException - если возникла проблема с определением результата
UnsupportedOperationException - если метод не поддерживается
С момента:
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/JavaFileManager.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API