Spec-Zone.ru › OpenJDK 8

Интерфейс StandardJavaFileManager

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

public interface StandardJavaFileManager
extends JavaFileManager

Менеджер файлов, основанный на java.io.File. Общий способ получения экземпляра этого класса — использование 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 (путь не нормализован)

С:
1.6

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

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

JavaFileManager.Location

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

Модификатор и тип Метод и описание
Iterable<? extends JavaFileObject> getJavaFileObjects(File... files)

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

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

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

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

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

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

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

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

Получает путь, связанный с заданным местоположением.

boolean isSameFile(FileObject a, FileObject b)

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

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

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

Методы, унаследованные от интерфейса javax.tools.JavaFileManager

close, flush, getClassLoader, getFileForInput, getFileForOutput, getJavaFileForInput, getJavaFileForOutput, handleOption, hasLocation, inferBinaryName, list

Методы, унаследованные от интерфейса 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 - если список файлов включает каталог

getJavaFileObjects

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

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

getJavaFileObjectsFromFiles(Arrays.asList(files))

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

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> path)
          throws IOException

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

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

getLocation

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

Получает путь, связанный с заданным местоположением.

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

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

Spec-Zone.ru

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