Spec-Zone.ru › OpenJDK 17

Интерфейс 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-файлов или записи в подобных контейнерах, основанных на файловой системе. Любой объект файла, возвращённый менеджером файлов, реализующим этот интерфейс, должен соблюдать следующее поведение:
  • Имена файлов необязательно должны быть каноническими.
  • Для объектов файлов, представляющих обычные файлы
    • метод FileObject.delete() эквивалентен File.delete(),
    • метод FileObject.getLastModified() эквивалентен File.lastModified(),
    • методы FileObject.getCharContent(boolean), FileObject.openInputStream(), и FileObject.openReader(boolean) должны быть успешными, если бы следующим были успешными (игнорируя проблемы с кодировкой):
      new FileInputStream(new File(fileObject.toUri()))
    • а методы FileObject.openOutputStream(), и FileObject.openWriter() должны быть успешными, если бы следующим были успешными (игнорируя проблемы с кодировкой):
      new FileOutputStream(new File(fileObject.toUri()))
  • URI, возвращаемый от FileObject.toUri()
    • должен быть абсолютным (иметь схему), и
    • должен иметь нормализованный компонент пути, который можно разрешить без какого-либо контекста, специфичного для процесса, такого как текущая директория (имена файлов должны быть абсолютными).
Согласно этим правилам, следующие 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)
Устарело.
Используйте getJavaFileObjectsFromPaths(Collection) вместо этого, чтобы предотвратить возможность случайного вызова метода с одним Path в качестве такого аргумента.
default Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths(Collection<? 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(Collection<? extends Path> paths)
Возвращает объекты файлов, представляющие заданные пути.
Требования к реализации:
Стандартная реализация лениво преобразует каждый путь в файл и вызывает getJavaFileObjectsFromFiles. IllegalArgumentException будет брошено, если любой из путей не может быть преобразован в файл на этапе преобразования.
Параметры:
paths - список путей
Возвращает:
список объектов файлов
Исключения:
IllegalArgumentException - если список путей включает директорию или если этот менеджер файлов не поддерживает ни один из заданных путей
С:
13

getJavaFileObjectsFromPaths

@Deprecated(since="13") default Iterable<? extends JavaFileObject> getJavaFileObjectsFromPaths(Iterable<? extends Path> paths)
Устаревший.
используйте getJavaFileObjectsFromPaths(Collection) вместо этого, чтобы предотвратить возможность случайного вызова метода с одним Path в качестве такого аргумента. Хотя Path реализует Iterable<Path>, вряд ли будет правильным передавать один Path и рассматривать его как Iterable его компонентов.
Возвращает объекты файлов, представляющие заданные пути.
Требования к реализации:
Стандартная реализация лениво преобразует каждый путь в файл и вызывает getJavaFileObjectsFromPaths. 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))
 
Требования к реализации:
Стандартная реализация будет выбрасывать только NullPointerException если getJavaFileObjectsFromPaths(Collection) выбрасывает его.
Параметры:
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 - если заданный массив содержит нулевые элементы

установить местоположение

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)

установить местоположение из путей

default void setLocationFromPaths(JavaFileManager.Location location, Collection<? extends Path> paths) throws IOException
Связывает заданный путь поиска с заданным местоположением. Любое предыдущее значение будет удалено. Если местоположение является местоположением модуля или вывода, любые модульно-специфичные связи, установленные методом setLocationForModule, будут отменены.
Требования к реализации:
Стандартная реализация лениво преобразует каждый путь в файл и вызывает setLocation. IllegalArgumentException будет брошено, если любой из путей не может быть преобразован в файл на этапе преобразования.
Параметры:
location - местоположение
paths - список путей, если null использовать стандартный путь поиска для этого местоположения
Исключения:
IllegalArgumentException - если location является местоположением вывода и paths не содержит ровно один элемент или если этот менеджер файлов не поддерживает ни один из заданных путей
IOException - если location является местоположением вывода и paths не представляет собой существующую директорию
С:
9
См. также:
  • getLocation(javax.tools.JavaFileManager.Location)

установить местоположение для модуля

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, 2021, 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/17/docs/api/java.compiler/javax/tools/StandardJavaFileManager.html

Spec-Zone.ru

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