Класс IIOMetadata
public abstract class IIOMetadata extends Object
IIOMetadataNode, поддерживающих интерфейсы XML DOM, а также дополнительные интерфейсы для хранения нетекстовых данных и получения информации о допустимых значениях данных. Формат таких деревьев зависит от плагина, но плагины могут поддерживать описанный ниже независимый от плагина формат. Один плагин может поддерживать несколько форматов метаданных, имена которых можно определить, вызвав getMetadataFormatNames. Плагин также может поддерживать один специальный формат, называемый «собственным» форматом, предназначенный для кодирования метаданных без потерь. Обычно этот формат разрабатывается специально для конкретного формата файла, чтобы изображения можно было загружать и сохранять в том же формате без потери метаданных, но он может быть менее полезен для передачи метаданных между ImageReader и ImageWriter для разных форматов изображений. Для преобразования между двумя собственными форматами с минимально возможными потерями, допускаемыми форматами файлов изображений, необходимо использовать объект ImageTranscoder.- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected IIOMetadataController |
controller |
IIOMetadataController, который будет использоваться для задания параметров этого объекта IIOMetadata при вызове метода activateController. |
protected IIOMetadataController |
defaultController |
Объект IIOMetadataController, предлагаемый для использования в качестве контроллера этого объекта IIOMetadata. |
protected String[] |
extraMetadataFormatClassNames |
Массив имен классов, реализующих IIOMetadataFormat и представляющих форматы метаданных, отличные от стандартного и собственного форматов, поддерживаемые этим плагином; инициализируется значением null и задается через конструктор. |
protected String[] |
extraMetadataFormatNames |
Массив имен форматов, отличных от стандартного и собственного форматов, поддерживаемых этим плагином; инициализируется значением null и задается через конструктор. |
protected String |
nativeMetadataFormatClassName |
Имя класса, реализующего IIOMetadataFormat и представляющего собственный формат метаданных; инициализируется значением null и задается через конструктор. |
protected String |
nativeMetadataFormatName |
Имя собственного формата метаданных этого объекта; инициализируется значением null и задается через конструктор. |
protected boolean |
standardFormatSupported |
Логическое значение, указывающее, поддерживает ли конкретный подкласс стандартный формат метаданных; задается через конструктор. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает пустой объект IIOMetadata. |
|
protected |
Создает объект IIOMetadata с заданными именами форматов и именами классов форматов, а также логическим значением, указывающим, поддерживается ли стандартный формат. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
activateController() |
Активирует установленный IIOMetadataController для этого объекта IIOMetadata и возвращает полученное значение. |
abstract Node |
getAsTree |
Возвращает объект Node XML DOM, представляющий корень дерева метаданных, содержащихся в этом объекте, согласно соглашениям заданного формата метаданных. |
IIOMetadataController |
getController() |
Возвращает текущий установленный объект IIOMetadataController. |
IIOMetadataController |
getDefaultController() |
Возвращает контроллер IIOMetadataController по умолчанию, если он имеется, независимо от установленного в данный момент контроллера. |
String[] |
getExtraMetadataFormatNames() |
Возвращает массив объектов String, содержащих имена дополнительных форматов метаданных, кроме собственного и стандартного, распознаваемых методами getAsTree, setFromTree и mergeTree этого плагина. |
IIOMetadataFormat |
getMetadataFormat |
Возвращает объект IIOMetadataFormat с описанием заданного формата метаданных или null, если описание недоступно. |
String[] |
getMetadataFormatNames() |
Возвращает массив объектов String, содержащих имена всех форматов метаданных, включая собственный и стандартный, распознаваемых методами getAsTree, setFromTree и mergeTree этого плагина. |
String |
getNativeMetadataFormatName() |
Возвращает имя «собственного» формата метаданных этого плагина, который обычно позволяет кодировать и передавать метаданные, хранящиеся в формате, обрабатываемом этим плагином, без потерь. |
protected IIOMetadataNode |
getStandardChromaNode() |
Возвращает объект IIOMetadataNode, представляющий информацию о цветности стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. |
protected IIOMetadataNode |
getStandardCompressionNode() |
Возвращает объект IIOMetadataNode, представляющий информацию о сжатии стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. |
protected IIOMetadataNode |
getStandardDataNode() |
Возвращает объект IIOMetadataNode, представляющий информацию о формате данных стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. |
protected IIOMetadataNode |
getStandardDimensionNode() |
Возвращает объект IIOMetadataNode, представляющий информацию о размерах стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. |
protected IIOMetadataNode |
getStandardDocumentNode() |
Возвращает объект IIOMetadataNode, представляющий информацию о документе стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. |
protected IIOMetadataNode |
getStandardTextNode() |
Возвращает объект IIOMetadataNode, представляющий текстовую информацию стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. |
protected IIOMetadataNode |
getStandardTileNode() |
Возвращает объект IIOMetadataNode, представляющий информацию о разбиении на плитки стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. |
protected IIOMetadataNode |
getStandardTransparencyNode() |
Возвращает объект IIOMetadataNode, представляющий информацию о прозрачности стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. |
protected final IIOMetadataNode |
getStandardTree() |
Вспомогательный метод, возвращающий дерево объектов IIOMetadataNode, представляющее метаданные, содержащиеся в этом объекте, согласно соглашениям стандартного формата метаданных javax_imageio_1.0. |
boolean |
hasController() |
Возвращает true, если для этого объекта IIOMetadata установлен контроллер. |
abstract boolean |
isReadOnly() |
Возвращает true, если этот объект не поддерживает методы mergeTree, setFromTree и reset. |
boolean |
isStandardMetadataFormatSupported() |
Возвращает true, если стандартный формат метаданных поддерживается методами getMetadataFormat, getAsTree, setFromTree и mergeTree. |
abstract void |
mergeTree |
Изменяет внутреннее состояние этого объекта IIOMetadata на основе дерева объектов Node XML DOM, синтаксис которого определяется заданным форматом метаданных. |
abstract void |
reset() |
Сбрасывает все данные, хранящиеся в этом объекте, до значений по умолчанию — обычно до состояния, в котором объект находился сразу после создания, хотя точная семантика зависит от плагина. |
void |
setController |
Задает IIOMetadataController, который будет использоваться для задания параметров этого объекта IIOMetadata при вызове метода activateController, переопределяя контроллер по умолчанию. |
void |
setFromTree |
Задает внутреннее состояние этого объекта IIOMetadata на основе дерева объектов Node XML DOM, синтаксис которого определяется заданным форматом метаданных. |
Подробное описание полей
standardFormatSupported
protected boolean standardFormatSupported
nativeMetadataFormatName
protected String nativeMetadataFormatName
null и задаваемое конструктором.nativeMetadataFormatClassName
protected String nativeMetadataFormatClassName
IIOMetadataFormat и представляющего собственный формат метаданных; изначально равно null и задаётся конструктором.extraMetadataFormatNames
protected String[] extraMetadataFormatNames
null и задаётся конструктором.extraMetadataFormatClassNames
protected String[] extraMetadataFormatClassNames
IIOMetadataFormat и представляющих форматы метаданных, отличные от стандартного и собственного, которые поддерживаются этим подключаемым модулем; изначально равен null и задаётся конструктором.defaultController
protected IIOMetadataController defaultController
IIOMetadataController, предлагаемый для использования в качестве контроллера этого объекта IIOMetadata. Его можно получить с помощью getDefaultController. Чтобы установить контроллер по умолчанию, вызовите setController(getDefaultController()). Этот экземпляр переменной должны задавать подклассы, которые предоставляют собственный контроллер по умолчанию, обычно графический интерфейс для установки параметров.- См. также:
controller
protected IIOMetadataController controller
IIOMetadataController, который будет использоваться для настройки этого объекта IIOMetadata при вызове метода activateController. Это значение переопределяет любой контроллер по умолчанию, даже если null.- См. также:
Подробное описание конструкторов
IIOMetadata
protected IIOMetadata()
IIOMetadata. Подкласс отвечает за предоставление значений для всех защищённых переменных экземпляра, необходимых для того, чтобы реализации методов по умолчанию, которые не переопределены, соответствовали своим контрактам. Например, extraMetadataFormatNames не должен иметь длину 0.IIOMetadata
protected IIOMetadata(boolean standardMetadataFormatSupported, String nativeMetadataFormatName, String nativeMetadataFormatClassName, String[] extraMetadataFormatNames, String[] extraMetadataFormatClassNames)
IIOMetadata с заданными именами форматов и именами классов форматов, а также с логическим значением, указывающим, поддерживается ли стандартный формат. Этот конструктор не пытается проверить допустимость имён классов. Недопустимые имена классов могут привести к исключениям при последующих вызовах getMetadataFormat.
- Параметры:
-
standardMetadataFormatSupported—true, если этот объект может возвращать или принимать дерево DOM в стандартном формате метаданных. -
nativeMetadataFormatName— имя собственного формата метаданных в видеStringилиnull, если собственного формата нет. -
nativeMetadataFormatClassName— имя класса собственного формата метаданных илиnull, если собственного формата нет. -
extraMetadataFormatNames— массивString, указывающих дополнительные форматы, поддерживаемые этим объектом, илиnull, если таких форматов нет. -
extraMetadataFormatClassNames— массивString, указывающих имена классов всех дополнительных форматов, поддерживаемых этим объектом, илиnull, если таких форматов нет. - Исключения:
-
IllegalArgumentException— если длинаextraMetadataFormatNamesравна 0. -
IllegalArgumentException— еслиextraMetadataFormatNamesиextraMetadataFormatClassNamesне являются одновременноnullи не имеют одинаковую длину.
Подробное описание методов
isStandardMetadataFormatSupported
public boolean isStandardMetadataFormatSupported()
true, если стандартный формат метаданных поддерживается методами getMetadataFormat, getAsTree, setFromTree и mergeTree. Реализация по умолчанию возвращает значение переменной экземпляра standardFormatSupported.
- Возвращает:
-
true, если стандартный формат метаданных поддерживается. - См. также:
isReadOnly
public abstract boolean isReadOnly()
true, если этот объект не поддерживает методы mergeTree, setFromTree и reset.- Возвращает:
- true, если этот объект
IIOMetadataнельзя изменить.
getNativeMetadataFormatName
public String getNativeMetadataFormatName()
null. Структуру и содержимое «собственного» формата метаданных определяет подключаемый модуль, создавший этот объект IIOMetadata. Подключаемые модули для простых форматов обычно создают фиктивный корневой узел, а затем ряд дочерних узлов, представляющих отдельные теги, блоки или пары «ключ/значение». Подключаемый модуль может по своему усмотрению документировать собственный формат.
Реализация по умолчанию возвращает значение переменной экземпляра nativeMetadataFormatName.
- Возвращает:
- имя собственного формата или
null. - См. также:
getExtraMetadataFormatNames
public String[] getExtraMetadataFormatNames()
String, содержащий имена дополнительных форматов метаданных, отличных от собственного и стандартного форматов, распознаваемых методами getAsTree, setFromTree и mergeTree этого подключаемого модуля. Если дополнительных форматов нет, возвращается null. Реализация по умолчанию возвращает копию переменной экземпляра extraMetadataFormatNames.
- Возвращает:
- массив
Stringдлиной не менее 1 илиnull. - См. также:
getMetadataFormatNames
public String[] getMetadataFormatNames()
String, содержащий имена всех форматов метаданных, включая собственный и стандартный форматы, распознаваемых методами getAsTree, setFromTree и mergeTree этого подключаемого модуля. Если таких форматов нет, возвращается null. Реализация по умолчанию вызывает getNativeMetadataFormatName, isStandardMetadataFormatSupported и getExtraMetadataFormatNames и возвращает объединённые результаты.
- Возвращает:
- массив
String. - См. также:
getMetadataFormat
public IIOMetadataFormat getMetadataFormat(String formatName)
IIOMetadataFormat, описывающий заданный формат метаданных, или null, если описание недоступно. Указанное имя должно входить в число имён, возвращаемых методом getMetadataFormatNames (т. е., быть именем собственного формата, именем стандартного формата или одним из имён, возвращаемых методом getExtraMetadataFormatNames). Реализация по умолчанию сравнивает имя с глобальным именем стандартного формата метаданных и возвращает описание этого формата, если он поддерживается. В противном случае она проверяет имена собственного формата, а затем имена всех дополнительных форматов. При совпадении она получает имя класса IIOMetadataFormat из nativeMetadataFormatClassName или extraMetadataFormatClassNames соответственно и создаёт экземпляр этого класса с помощью метода getInstance.
- Параметры:
-
formatName— требуемый формат метаданных. - Возвращает:
- объект
IIOMetadataFormat. - Исключения:
-
IllegalArgumentException— еслиformatNameравноnullили не входит в число имён, распознаваемых подключаемым модулем. -
IllegalStateException— если не удаётся загрузить класс, соответствующий имени формата.
getAsTree
public abstract Node getAsTree(String formatName)
Node, представляющий корень дерева метаданных, содержащихся в этом объекте, в соответствии с соглашениями заданного формата метаданных. Список доступных форматов метаданных можно получить с помощью метода getMetadataFormatNames.
- Параметры:
-
formatName— требуемый формат метаданных. - Возвращает:
- объект XML DOM
Node, представляющий корень дерева. - Исключения:
-
IllegalArgumentException— еслиformatNameравноnullили не входит в число имён, возвращаемых методомgetMetadataFormatNames. - См. также:
mergeTree
public abstract void mergeTree(String formatName, Node root) throws IIOInvalidTreeException
IIOMetadata на основе дерева узлов XML DOM Node, синтаксис которого определяется заданным форматом метаданных. Предыдущее состояние изменяется только в той мере, которая необходима для учёта узлов, присутствующих в заданном дереве. Если структура или содержимое дерева недопустимы, будет выброшено исключение IIOInvalidTreeException. Поскольку семантика объединения дерева или поддерева с другим деревом полностью зависит от формата, авторы подключаемых модулей могут реализовать этот метод наиболее подходящим для формата способом, в том числе просто заменив всё существующее состояние содержимым заданного дерева.
- Параметры:
-
formatName— требуемый формат метаданных. -
root— объект XML DOMNode, представляющий корень дерева. - Исключения:
-
IllegalStateException— если этот объект доступен только для чтения. -
IllegalArgumentException— еслиformatNameравноnullили не входит в число имён, возвращаемых методомgetMetadataFormatNames. -
IllegalArgumentException— еслиrootравноnull. -
IIOInvalidTreeException— если дерево не удаётся успешно разобрать в соответствии с правилами заданного формата. - См. также:
getStandardChromaNode
protected IIOMetadataNode getStandardChromaNode()
IIOMetadataNode, представляющий информацию о цветности стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. Этот метод предназначен для вызова служебной процедурой getStandardTree. Реализация по умолчанию возвращает null.
Подклассам следует переопределить этот метод и создать подходящее поддерево, если они поддерживают стандартный формат метаданных.
- Возвращает:
IIOMetadataNodeилиnull.- См. также:
getStandardCompressionNode
protected IIOMetadataNode getStandardCompressionNode()
IIOMetadataNode, представляющий информацию о сжатии стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. Этот метод предназначен для вызова служебной процедурой getStandardTree. Реализация по умолчанию возвращает null.
Подклассам следует переопределить этот метод и создать подходящее поддерево, если они поддерживают стандартный формат метаданных.
- Возвращает:
IIOMetadataNodeилиnull.- См. также:
getStandardDataNode
protected IIOMetadataNode getStandardDataNode()
IIOMetadataNode, представляющий информацию о формате данных стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. Этот метод предназначен для вызова служебной процедурой getStandardTree. Реализация по умолчанию возвращает null.
Подклассам следует переопределить этот метод и создать подходящее поддерево, если они поддерживают стандартный формат метаданных.
- Возвращает:
IIOMetadataNodeилиnull.- См. также:
getStandardDimensionNode
protected IIOMetadataNode getStandardDimensionNode()
IIOMetadataNode, представляющий информацию о размерах стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. Этот метод предназначен для вызова служебной процедурой getStandardTree. Реализация по умолчанию возвращает null.
Подклассам следует переопределить этот метод и создать подходящее поддерево, если они поддерживают стандартный формат метаданных.
- Возвращает:
IIOMetadataNodeилиnull.- См. также:
getStandardDocumentNode
protected IIOMetadataNode getStandardDocumentNode()
IIOMetadataNode, представляющий информацию о документе стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. Этот метод предназначен для вызова служебной процедурой getStandardTree. Реализация по умолчанию возвращает null.
Подклассам следует переопределить этот метод и создать подходящее поддерево, если они поддерживают стандартный формат метаданных.
- Возвращает:
IIOMetadataNodeилиnull.- См. также:
getStandardTextNode
protected IIOMetadataNode getStandardTextNode()
IIOMetadataNode, представляющий текстовую информацию стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. Этот метод предназначен для вызова служебной процедурой getStandardTree. Реализация по умолчанию возвращает null.
Подклассам следует переопределить этот метод и создать подходящее поддерево, если они поддерживают стандартный формат метаданных.
- Возвращает:
IIOMetadataNodeилиnull.- См. также:
getStandardTileNode
protected IIOMetadataNode getStandardTileNode()
IIOMetadataNode, представляющий информацию о разбиении на плитки стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. Этот метод предназначен для вызова служебной процедурой getStandardTree. Реализация по умолчанию возвращает null.
Подклассам следует переопределить этот метод и создать подходящее поддерево, если они поддерживают стандартный формат метаданных.
- Возвращает:
IIOMetadataNodeилиnull.- См. также:
getStandardTransparencyNode
protected IIOMetadataNode getStandardTransparencyNode()
IIOMetadataNode, представляющий информацию о прозрачности стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. Этот метод предназначен для вызова служебной процедурой getStandardTree. Реализация по умолчанию возвращает null.
Подклассам следует переопределить этот метод и создать подходящее поддерево, если они поддерживают стандартный формат метаданных.
- Возвращает:
IIOMetadataNodeилиnull.
getStandardTree
protected final IIOMetadataNode getStandardTree()
IIOMetadataNode, представляющего содержащиеся в этом объекте метаданные в соответствии с соглашениями стандартного формата метаданных javax_imageio_1.0. Этот метод вызывает различные методы getStandard*Node, чтобы получить каждое из поддеревьев, корни которых являются дочерними узлами корневого узла. Если какой-либо из этих методов возвращает null, соответствующее поддерево не включается. Если все они возвращают null, возвращается дерево, состоящее из одного корневого узла.
- Возвращает:
IIOMetadataNode, представляющий корень дерева метаданных в форматеjavax_imageio_1.0.- См. также:
setFromTree
public void setFromTree(String formatName, Node root) throws IIOInvalidTreeException
IIOMetadata на основе дерева узлов XML DOM Node, синтаксис которого определяется заданным форматом метаданных. Предыдущее состояние отбрасывается. Если структура или содержимое дерева недопустимы, будет выброшено исключение IIOInvalidTreeException. Реализация по умолчанию вызывает reset, а затем mergeTree(formatName, root).
- Параметры:
-
formatName— требуемый формат метаданных. -
root— объект XML DOMNode, представляющий корень дерева. - Исключения:
-
IllegalStateException— если этот объект доступен только для чтения. -
IllegalArgumentException— еслиformatNameравноnullили не входит в число имён, возвращаемых методомgetMetadataFormatNames. -
IllegalArgumentException— еслиrootравноnull. -
IIOInvalidTreeException— если дерево не удаётся успешно разобрать в соответствии с правилами заданного формата. - См. также:
reset
public abstract void reset()
- Исключения:
-
IllegalStateException— если этот объект доступен только для чтения. - См. также:
setController
public void setController(IIOMetadataController controller)
IIOMetadataController, который будет использоваться для настройки этого объекта IIOMetadata при вызове метода activateController, переопределяя любой контроллер по умолчанию. Если аргумент равен null, контроллер использоваться не будет, в том числе контроллер по умолчанию. Чтобы восстановить контроллер по умолчанию, используйте setController(getDefaultController()). Реализация по умолчанию задаёт переменной экземпляра controller переданное значение.
- Параметры:
-
controller— подходящий объектIIOMetadataControllerилиnull. - См. также:
getController
public IIOMetadataController getController()
IIOMetadataController. Это может быть контроллер по умолчанию, если он есть, null или аргумент последнего вызова setController. Реализация по умолчанию возвращает значение переменной экземпляра controller.
- Возвращает:
- установленный в данный момент объект
IIOMetadataControllerилиnull. - См. также:
getDefaultController
public IIOMetadataController getDefaultController()
IIOMetadataController по умолчанию, если он есть, независимо от того, какой контроллер установлен в данный момент. Если контроллера по умолчанию нет, возвращает null. Реализация по умолчанию возвращает значение переменной экземпляра defaultController.
- Возвращает:
- контроллер
IIOMetadataControllerпо умолчанию илиnull. - См. также:
hasController
public boolean hasController()
true, если для этого объекта IIOMetadata установлен контроллер. Реализация по умолчанию возвращает true, если метод getController возвращает значение, отличное от null.
- Возвращает:
-
true, если контроллер установлен. - См. также:
activateController
public boolean activateController()
IIOMetadataController для этого объекта IIOMetadata и возвращает полученное значение. Когда этот метод возвращает true, все значения для этого объекта IIOMetadata будут готовы к следующей операции записи. Если возвращается false, настройки этого объекта не будут изменены (т. е., пользователь отменил операцию). Обычно контроллер представляет собой графический интерфейс пользователя для подкласса IIOMetadata, предназначенного для определённого подключаемого модуля. Однако контроллеры не обязательно должны быть графическими интерфейсами.
Реализация по умолчанию вызывает getController и вызовы activate для возвращённого объекта, если hasController возвращает true.
- Возвращает:
-
true, если контроллер завершил работу обычным образом. - Выбрасывает:
-
IllegalStateException— если в данный момент контроллер не установлен. - См. также:
© 1993, 2025, 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/25/docs/api/java.desktop/javax/imageio/metadata/IIOMetadata.html