Интерфейс StandardJavaFileManager

Все суперинтерфейсы:
AutoCloseable, Closeable, Flushable, JavaFileManager, OptionChecker
public interface StandardJavaFileManager
extends JavaFileManager

Менеджер файлов, основанный на java.io.File и java.nio.file.Path. Общий способ получения экземпляра этого класса — использование getStandardFileManager, например:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
   DiagnosticCollector<JavaFileObject> diagnostics =
       new DiagnosticCollector<JavaFileObject>();
   StandardJavaFileManager fm = compiler.getStandardFileManager(diagnostics, null, null);
Этот менеджер файлов создаёт объекты файлов, представляющие обычные файлы, записи zip-файлов или записи в аналогичных контейнерах на основе файловой системы. Любой объект файла, возвращённый менеджером файлов, реализующим этот интерфейс, должен соблюдать следующее поведение: Согласно этим правилам, например, разрешены следующие URI:
  • file:///C:/Documents%20and%20Settings/UncleBob/BobsApp/Test.java
  • jar:///C:/Documents%20and%20Settings/UncleBob/lib/vendorA.jar!/com/vendora/LibraryClass.class
В то время как эти не разрешены (причина в скобках):
  • file:BobsApp/Test.java (имя файла относительно и зависит от текущего каталога)
  • jar:lib/vendorA.jar!/com/vendora/LibraryClass.class (первая половина пути зависит от текущего каталога, в то время как компонент после ! является допустимым)
  • Test.java (этот URI зависит от текущего каталога и не имеет схемы)
  • jar:///C:/Documents%20and%20Settings/UncleBob/BobsApp/../lib/vendorA.jar!com/vendora/LibraryClass.class (путь не нормализован)

Все реализации этого интерфейса должны поддерживать объекты Path, представляющие файлы в по умолчанию файловой системе. Рекомендуется, чтобы реализации поддерживали объекты Path из любой файловой системы.

Примечание API:
Некоторые методы этого интерфейса принимают Collection<? extends Path> вместо Iterable<? extends Path>. Это сделано для предотвращения возможности случайного вызова метода с одним Path в качестве такого аргумента, потому что хотя Path реализует Iterable<Path>, почти никогда не будет правильным вызывать эти методы с одним Path и рассматривать его как Iterable его компонентов.
С:
1.6

Вложенные классы

Модификатор и тип Интерфейс Описание
static interface  StandardJavaFileManager.PathFactory

Фабрика для создания Path объектов из строк.

Вложенные классы/интерфейсы, объявленные в интерфейсе javax.tools.JavaFileManager

JavaFileManager.Location

Методы

Модификатор и тип Метод Описание
default Path asPath​(FileObject file)

Возвращает путь, если таковой имеется, лежащий в основе этого объекта файла (необязательная операция).

Iterable<? extends JavaFileObject> getJavaFileObjects​(File... files)

Возвращает объекты файлов, представляющие заданные файлы.

Iterable<? extends JavaFileObject> getJavaFileObjects​(String... names)

Возвращает объекты файлов, представляющие заданные имена файлов.

default Iterable<? extends JavaFileObject> getJavaFileObjects​(Path... paths)

Возвращает объекты файлов, представляющие заданные пути.

Iterable<? extends JavaFileObject> getJavaFileObjectsFromFiles​(Iterable<? extends File> files)

Возвращает объекты файлов, представляющие заданные файлы.

default Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths​(Iterable<? extends Path> paths)

Возвращает объекты файлов, представляющие заданные пути.

Iterable<? extends JavaFileObject> getJavaFileObjectsFromStrings​(Iterable<String> names)

Возвращает объекты файлов, представляющие заданные имена файлов.

Iterable<? extends File> getLocation​(JavaFileManager.Location location)

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

default Iterable<? extends Path> getLocationAsPaths​(JavaFileManager.Location location)

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

boolean isSameFile​(FileObject a, FileObject b)

Сравнивает два объекта файла и возвращает true, если они представляют один и тот же канонический файл, запись zip-архива или запись в любом файловой системе контейнере.

void setLocation​(JavaFileManager.Location location, Iterable<? extends File> files)

Связывает заданный путь поиска с заданным расположением.

default void setLocationForModule​(JavaFileManager.Location location, String moduleName, Collection<? extends Path> paths)

Связывает заданный путь поиска с заданным модулем и расположением, которое должно быть расположением, ориентированным на модуль или выходным.

default void setLocationFromPaths​(JavaFileManager.Location location, Collection<? extends Path> paths)

Связывает заданный путь поиска с заданным расположением.

default void setPathFactory​(StandardJavaFileManager.PathFactory f)

Указывает фабрику, которая может использоваться для создания пути из строки или серии строк.

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

close, contains, flush, getClassLoader, getFileForInput, getFileForOutput, getJavaFileForInput, getJavaFileForOutput, getLocationForModule, getLocationForModule, getServiceLoader, handleOption, hasLocation, inferBinaryName, inferModuleName, list, listLocationsForModules

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

isSupportedOption

Методы

isSameFile

boolean isSameFile(FileObject a,
                   FileObject b)

Сравнивает два объекта файла и возвращает true, если они представляют один и тот же канонический файл, запись zip-файла или запись в любом файловой системе контейнера.

Определено в:
isSameFile в интерфейсе JavaFileManager
Параметры:
a - объект файла
b - объект файла
Возвращает:
true, если заданные объекты файла представляют один и тот же канонический файл, запись zip-файла или путь; в противном случае false
Исключения:
IllegalArgumentException - если любой из аргументов был создан с помощью другой реализации файлового менеджера

getJavaFileObjectsFromFiles

Iterable<? extends JavaFileObject> getJavaFileObjectsFromFiles(Iterable<? extends File> files)

Возвращает объекты файлов, представляющие заданные файлы.

Параметры:
files - список файлов
Возвращает:
список объектов файлов
Исключения:
IllegalArgumentException - если список файлов включает директорию

getJavaFileObjectsFromPaths

default Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths(Iterable<? extends Path> paths)

Возвращает объекты файлов, представляющие заданные пути.

Требования к реализации:
Базовая реализация преобразует каждый путь в файл и вызывает getJavaObjectsFromFiles. Исключение IllegalArgumentException будет выброшено, если какой-либо из путей не может быть преобразован в файл.
Параметры:
paths - список путей
Возвращает:
список объектов файлов
Исключения:
IllegalArgumentException - если список путей включает директорию или если этот файловый менеджер не поддерживает ни один из заданных путей.
С:
9

getJavaFileObjects

Iterable<? extends JavaFileObject> getJavaFileObjects(File... files)

Возвращает объекты файлов, представляющие заданные файлы. Метод-удобство, эквивалентный:

getJavaFileObjectsFromFiles(Arrays.asList(files))

Параметры:
files - массив файлов
Возвращает:
список объектов файлов
Исключения:
IllegalArgumentException - если массив файлов включает директорию
NullPointerException - если заданный массив содержит нулевые элементы

getJavaFileObjects

default Iterable<? extends JavaFileObject> getJavaFileObjects(Path... paths)

Возвращает объекты файлов, представляющие заданные пути. Метод-удобство, эквивалентный:

getJavaFileObjectsFromPaths(Arrays.asList(paths))

Параметры:
paths - массив путей
Возвращает:
список объектов файлов
Исключения:
IllegalArgumentException - если массив файлов включает директорию
NullPointerException - если заданный массив содержит нулевые элементы
С:
9

getJavaFileObjectsFromStrings

Iterable<? extends JavaFileObject> getJavaFileObjectsFromStrings(Iterable<String> names)

Возвращает объекты файлов, представляющие заданные имена файлов.

Параметры:
names - список имён файлов
Возвращает:
список объектов файлов
Исключения:
IllegalArgumentException - если список имён файлов включает директорию

getJavaFileObjects

Iterable<? extends JavaFileObject> getJavaFileObjects(String... names)

Возвращает объекты файлов, представляющие заданные имена файлов. Метод-удобство, эквивалентный:

getJavaFileObjectsFromStrings(Arrays.asList(names))

Параметры:
names - список имён файлов
Возвращает:
список объектов файлов
Исключения:
IllegalArgumentException - если массив имён файлов включает директорию
NullPointerException - если заданный массив содержит нулевые элементы

setLocation

void setLocation(JavaFileManager.Location location,
                 Iterable<? extends File> files)
          throws IOException

Связывает заданный путь поиска с заданной локацией. Любое предыдущее значение будет отброшено. Если местоположение ориентировано на модуль или является местоположением вывода, любые модульные ассоциации, заданные с помощью setLocationForModule, будут отменены.

Параметры:
location - местоположение
files - список файлов, если null использовать стандартный путь поиска для данной локации
Исключения:
IllegalArgumentException - если location является местоположением вывода и files не содержит ровно один элемент
IOException - если location является местоположением вывода и не представляет существующую директорию
См. также:
getLocation(javax.tools.JavaFileManager.Location)

setLocationFromPaths

default void setLocationFromPaths(JavaFileManager.Location location,
                                  Collection<? extends Path> paths)
                           throws IOException

Связывает заданный путь поиска с заданной локацией. Любое предыдущее значение будет отброшено. Если местоположение ориентировано на модуль или является местоположением вывода, любые модульные ассоциации, заданные с помощью setLocationForModule, будут отменены.

Требования к реализации:
Стандартная реализация преобразует каждый путь в файл и вызывает getJavaObjectsFromFiles. Если какой-либо из путей не может быть преобразован в файл, будет выброшено исключение IllegalArgumentException.
Параметры:
location - расположение
paths - список путей, если null использовать стандартный путь поиска для этого расположения
Исключения:
IllegalArgumentException - если location является расположением для вывода и paths не содержит ровно один элемент, или если этот менеджер файлов не поддерживает ни один из заданных путей
IOException - если location является расположением для вывода и paths не представляет собой существующую директорию
С момента:
9
См. также:
getLocation(javax.tools.JavaFileManager.Location)

setLocationForModule

default void setLocationForModule(JavaFileManager.Location location,
                                  String moduleName,
                                  Collection<? extends Path> paths)
                           throws IOException

Связывает заданный путь поиска с заданным модулем и расположением, которое должно быть модульным или расположением для вывода. Любое предыдущее значение будет отброшено. Это переопределяет любое стандартное связывание, полученное из пути поиска, связанного с самим расположением. Все такие модульные связи будут отменены, если новый путь поиска будет связан с расположением вызовом setLocation или setLocationFromPaths.

Параметры:
location - расположение
moduleName - имя модуля
paths - путь поиска для связывания с расположением и модулем.
Исключения:
IllegalStateException - если расположение не является модульным или расположением для вывода.
UnsupportedOperationException - если эта операция не поддерживается этим менеджером файлов.
IOException - если location является расположением для вывода и paths не представляет собой существующую директорию
С момента:
9
См. также:
setLocation(javax.tools.JavaFileManager.Location,java.lang.Iterable<? extends java.io.File>), setLocationFromPaths(javax.tools.JavaFileManager.Location,java.util.Collection<? extends java.nio.file.Path>)

getLocation

Iterable<? extends File> getLocation(JavaFileManager.Location location)

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

Параметры:
location - расположение
Возвращает:
список файлов или null если у этого расположения нет связанного пути поиска
Исключения:
IllegalStateException - если любой элемент пути поиска не может быть преобразован в File, или если путь поиска не может быть представлен как простой ряд файлов.
См. также:
setLocation(javax.tools.JavaFileManager.Location, java.lang.Iterable<? extends java.io.File>), Path.toFile()

getLocationAsPaths

default Iterable<? extends Path> getLocationAsPaths(JavaFileManager.Location location)

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

Требования к реализации:
Стандартная реализация вызывает getLocation и затем возвращает Iterable, сформированный путем вызова toPath() для каждого File возвращаемого из getLocation.
Параметры:
location - расположение
Возвращает:
список путей или null если у этого расположения нет связанного пути поиска
Исключения:
IllegalStateException - если путь поиска не может быть представлен как простой ряд путей.
С момента:
9
См. также:
setLocationFromPaths(javax.tools.JavaFileManager.Location, java.util.Collection<? extends java.nio.file.Path>)

asPath

default Path asPath(FileObject file)

Возвращает путь, если таковой имеется, лежащий в основе этого объекта файла (необязательная операция). Объекты файлов, полученные из FileSystem, включая файловую систему по умолчанию, обычно имеют соответствующий объект Path ниже. В таких случаях этот метод может быть использован для доступа к этому объекту.

Требования к реализации:
Стандартная реализация выбрасывает UnsupportedOperationException для всех файлов.
Параметры:
file - объект файла
Возвращает:
путь, представляющий тот же самый артефакт файловой системы
Исключения:
IllegalArgumentException - если у объекта файла нет подлежащего пути
UnsupportedOperationException - если операция не поддерживается этим менеджером файлов
С момента:
9

setPathFactory

default void setPathFactory(StandardJavaFileManager.PathFactory f)

Укажите фабрику, которая может использоваться для генерации пути из строки или серии строк. Если этот метод не вызван, будет использована фабрика, метод getPath которой эквивалентен вызову java.nio.file.Paths.get(first, more).

Требования к реализации:
По умолчанию этот метод игнорирует предоставленную фабрику.
Параметры:
f - фабрика
С:
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/StandardJavaFileManager.html

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