Класс IIOMetadata
public abstract class IIOMetadata extends Object
IIOMetadataNode объектов, которые поддерживают интерфейсы XML DOM, а также дополнительные интерфейсы для хранения нетекстовых данных и извлечения информации о допустимых значениях данных. Формат таких деревьев зависит от плагина, но плагины могут выбрать поддержку нейтрального для плагина формата, описанного ниже. Один плагин может поддерживать несколько форматов метаданных, имена которых можно определить, вызвав getMetadataFormatNames. Плагин также может поддерживать один специальный формат, называемый "родным" форматом, который предназначен для бессознательного кодирования его метаданных. Этот формат обычно разрабатывается специально для работы с определённым форматом файла, так что изображения могут загружаться и сохраняться в том же формате без потери метаданных, но может быть менее полезным для передачи метаданных между ImageReader и ImageWriter для различных форматов изображений. Для преобразования между двумя родными форматами настолько бессознательно, насколько это позволяют форматы файлов изображений, необходимо использовать объект ImageTranscoder.- См. также:
Краткое описание полей
| Modifier and Type | Field | Description |
|---|---|---|
protected IIOMetadataController |
controller |
The IIOMetadataController, which will be used to provide settings for this IIOMetadata object when the activateController method is called. |
protected IIOMetadataController |
defaultController |
An IIOMetadataController, which is suggested for use as the controller for this IIOMetadata object. |
protected String[] |
extraMetadataFormatClassNames |
An array of class names implementing IIOMetadataFormat and representing the metadata formats, other than the standard and native formats, supported by this plug-in, initialized to null and set via the constructor. |
protected String[] |
extraMetadataFormatNames |
An array of format names, other than the standard and native formats, supported by this plug-in, initialized to null and set via the constructor. |
protected String |
nativeMetadataFormatClassName |
The name of the class implementing IIOMetadataFormat and representing the native metadata format, initialized to null and set via the constructor. |
protected String |
nativeMetadataFormatName |
The name of the native metadata format for this object, initialized to null and set via the constructor. |
protected boolean |
standardFormatSupported |
A boolean indicating whether the concrete subclass supports the standard metadata format, set via the constructor. |
Краткое описание конструкторов
| Modifier | Constructor | Description |
|---|---|---|
protected |
Constructs an empty IIOMetadata object. |
|
protected |
Constructs an IIOMetadata object with the given format names and format class names, as well as a boolean indicating whether the standard format is supported. |
Краткое описание методов
| Modifier and Type | Method | Description |
|---|---|---|
boolean |
activateController() |
Activates the installed IIOMetadataController for this IIOMetadata object and returns the resulting value. |
abstract Node |
getAsTree |
Returns an XML DOM Node object that represents the root of a tree of metadata contained within this object according to the conventions defined by a given metadata format. |
IIOMetadataController |
getController() |
Returns whatever IIOMetadataController is currently installed. |
IIOMetadataController |
getDefaultController() |
Returns the default IIOMetadataController, if there is one, regardless of the currently installed controller. |
String[] |
getExtraMetadataFormatNames() |
Returns an array of Strings containing the names of additional metadata formats, other than the native and standard formats, recognized by this plug-in's getAsTree, setFromTree, and mergeTree methods. |
IIOMetadataFormat |
getMetadataFormat |
Returns an IIOMetadataFormat object describing the given metadata format, or null if no description is available. |
String[] |
getMetadataFormatNames() |
Returns an array of Strings containing the names of all metadata formats, including the native and standard formats, recognized by this plug-in's getAsTree, setFromTree, and mergeTree methods. |
String |
getNativeMetadataFormatName() |
Returns the name of the "native" metadata format for this plug-in, which typically allows for lossless encoding and transmission of the metadata stored in the format handled by this plug-in. |
protected IIOMetadataNode |
getStandardChromaNode() |
Returns an IIOMetadataNode representing the chroma information of the standard javax_imageio_1.0 metadata format, or null if no such information is available. |
protected IIOMetadataNode |
getStandardCompressionNode() |
Returns an IIOMetadataNode representing the compression information of the standard javax_imageio_1.0 metadata format, or null if no such information is available. |
protected IIOMetadataNode |
getStandardDataNode() |
Returns an IIOMetadataNode representing the data format information of the standard javax_imageio_1.0 metadata format, or null if no such information is available. |
protected IIOMetadataNode |
getStandardDimensionNode() |
Returns an IIOMetadataNode representing the dimension information of the standard javax_imageio_1.0 metadata format, or null if no such information is available. |
protected IIOMetadataNode |
getStandardDocumentNode() |
Returns an IIOMetadataNode representing the document information of the standard javax_imageio_1.0 metadata format, or null if no such information is available. |
protected IIOMetadataNode |
getStandardTextNode() |
Returns an IIOMetadataNode representing the textual information of the standard javax_imageio_1.0 metadata format, or null if no such information is available. |
protected IIOMetadataNode |
getStandardTileNode() |
Returns an IIOMetadataNode representing the tiling information of the standard javax_imageio_1.0 metadata format, or null if no such information is available. |
protected IIOMetadataNode |
getStandardTransparencyNode() |
Returns an IIOMetadataNode representing the transparency information of the standard javax_imageio_1.0 metadata format, or null if no such information is available. |
protected final IIOMetadataNode |
getStandardTree() |
A utility method to return a tree of IIOMetadataNodes representing the metadata contained within this object according to the conventions of the standard javax_imageio_1.0 metadata format. |
boolean |
hasController() |
Returns true if there is a controller installed for this IIOMetadata object. |
abstract boolean |
isReadOnly() |
Returns true if this object does not support the mergeTree, setFromTree, and reset methods. |
boolean |
isStandardMetadataFormatSupported() |
Returns true if the standard metadata format is supported by getMetadataFormat, getAsTree, setFromTree, and mergeTree. |
abstract void |
mergeTree |
Alters the internal state of this IIOMetadata object from a tree of XML DOM Nodes whose syntax is defined by the given metadata format. |
abstract void |
reset() |
Resets all the data stored in this object to default values, usually to the state this object was in immediately after construction, though the precise semantics are plug-in specific. |
void |
setController |
Sets the IIOMetadataController to be used to provide settings for this IIOMetadata object when the activateController method is called, overriding any default controller. |
void |
setFromTree |
Sets the internal state of this IIOMetadata object from a tree of XML DOM Nodes whose syntax is defined by the given metadata format. |
Подробное описание полей
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.
- Parameters:
-
formatName- желаемый формат метаданных. - Returns:
- объект
IIOMetadataFormat. - Throws:
-
IllegalArgumentException- еслиformatNameравенnullили не является одним из имен, распознаваемых плагином. -
IllegalStateException- если класс, соответствующий имени формата, не может быть загружен.
getAsTree
public abstract Node getAsTree(String formatName)
Node, представляющий корень дерева метаданных, содержащихся в этом объекте в соответствии с соглашениями, определенными заданным форматом метаданных. Имена доступных форматов метаданных можно запросить, используя метод getMetadataFormatNames.
- Parameters:
-
formatName- желаемый формат метаданных. - Returns:
- объект XML DOM
Node, образующий корень дерева. - Throws:
-
IllegalArgumentException- еслиformatNameравенnullили не является одним из имен, возвращаемыхgetMetadataFormatNames. - See Also:
mergeTree
public abstract void mergeTree(String formatName, Node root) throws IIOInvalidTreeException
IIOMetadata из дерева XML DOM Node, синтаксис которого определен заданным форматом метаданных. Предыдущее состояние изменяется только по мере необходимости для адаптации узлов, присутствующих в данном дереве. Если структура или содержимое дерева некорректны, будет выброшено исключение IIOInvalidTreeException. Поскольку семантика того, как дерево или поддерево могут быть объединены с другим деревом, полностью зависит от формата, разработчики плагинов могут реализовать этот метод любым способом, наиболее подходящим для формата, включая простое замещение всего существующего состояния содержимым данного дерева.
- Parameters:
-
formatName- желаемый формат метаданных. -
root- объект XML DOMNode, образующий корень дерева. - Throws:
-
IllegalStateException- если этот объект является только для чтения. -
IllegalArgumentException- еслиformatNameравенnullили не является одним из имен, возвращаемыхgetMetadataFormatNames. -
IllegalArgumentException- еслиrootравенnull. -
IIOInvalidTreeException- если дерево не может быть успешно обработано с использованием правил данного формата. - See Also:
getStandardChromaNode
protected IIOMetadataNode getStandardChromaNode()
IIOMetadataNode, представляющий информацию о цветовом формате стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. Этот метод предназначен для вызова утилитой getStandardTree. Реализация по умолчанию возвращает null.
Подклассы должны переопределять этот метод, чтобы создать соответствующее поддерево, если они хотят поддерживать стандартный формат метаданных.
- Returns:
- объект
IIOMetadataNode, илиnull. - See Also:
getStandardCompressionNode
protected IIOMetadataNode getStandardCompressionNode()
IIOMetadataNode, представляющий информацию о сжатии стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. Этот метод предназначен для вызова утилитой getStandardTree. Реализация по умолчанию возвращает null.
Подклассы должны переопределять этот метод, чтобы создать соответствующее поддерево, если они хотят поддерживать стандартный формат метаданных.
- Returns:
- объект
IIOMetadataNode, илиnull. - See Also:
getStandardDataNode
protected IIOMetadataNode getStandardDataNode()
IIOMetadataNode, представляющий информацию о формате данных стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. Этот метод предназначен для вызова утилитой getStandardTree. Реализация по умолчанию возвращает null.
Подклассы должны переопределять этот метод, чтобы создать соответствующее поддерево, если они хотят поддерживать стандартный формат метаданных.
- Returns:
- объект
IIOMetadataNode, илиnull. - See Also:
getStandardDimensionNode
protected IIOMetadataNode getStandardDimensionNode()
IIOMetadataNode, представляющий информацию о размере стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. Этот метод предназначен для вызова утилитой getStandardTree. Реализация по умолчанию возвращает null.
Подклассы должны переопределять этот метод, чтобы создать соответствующее поддерево, если они хотят поддерживать стандартный формат метаданных.
- Returns:
- объект
IIOMetadataNode, илиnull. - See Also:
getStandardDocumentNode
protected IIOMetadataNode getStandardDocumentNode()
IIOMetadataNode, представляющий информацию о документе стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. Этот метод предназначен для вызова утилитой getStandardTree. Реализация по умолчанию возвращает null.
Подклассы должны переопределять этот метод, чтобы создать соответствующее поддерево, если они хотят поддерживать стандартный формат метаданных.
- Returns:
- объект
IIOMetadataNode, илиnull. - See Also:
getStandardTextNode
protected IIOMetadataNode getStandardTextNode()
IIOMetadataNode, представляющий текстовую информацию стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. Этот метод предназначен для вызова утилитой getStandardTree. Реализация по умолчанию возвращает null.
Подклассы должны переопределять этот метод, чтобы создать соответствующее поддерево, если они хотят поддерживать стандартный формат метаданных.
- Returns:
- объект
IIOMetadataNode, илиnull. - See Also:
getStandardTileNode
protected IIOMetadataNode getStandardTileNode()
IIOMetadataNode, представляющий информацию о разбиении на плитки стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. Этот метод предназначен для вызова утилитой getStandardTree. Реализация по умолчанию возвращает null.
Подклассы должны переопределять этот метод, чтобы создать соответствующее поддерево, если они хотят поддерживать стандартный формат метаданных.
- Returns:
- объект
IIOMetadataNode, илиnull. - See Also:
getStandardTransparencyNode
protected IIOMetadataNode getStandardTransparencyNode()
IIOMetadataNode, представляющий информацию о прозрачности стандартного формата метаданных javax_imageio_1.0, или null, если такая информация недоступна. Этот метод предназначен для вызова утилитой getStandardTree. Реализация по умолчанию возвращает null.
Подклассы должны переопределять этот метод, чтобы создать соответствующее поддерево, если они хотят поддерживать стандартный формат метаданных.
- Returns:
- объект
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, 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.desktop/javax/imageio/metadata/IIOMetadata.html