Spec-Zone.ru › OpenJDK 27

Класс TransformService

java.lang.Object
javax.xml.crypto.dsig.TransformService
Все реализуемые интерфейсы:
AlgorithmMethod, Transform, XMLStructure
public abstract class TransformService extends Object implements Transform
Интерфейс поставщика службы для алгоритмов преобразования и каноникализации.

Каждый экземпляр TransformService поддерживает определённый алгоритм преобразования или каноникализации и тип механизма XML. Чтобы создать TransformService, вызовите один из статических методов getInstance, передав URI алгоритма и требуемый тип механизма XML, например:

TransformService ts = TransformService.getInstance(Transform.XPATH2, "DOM");

Реализации TransformService регистрируются и загружаются с помощью механизма Provider. Каждая реализация поставщика службы TransformService должна включать атрибут службы MechanismType, указывающий поддерживаемый ею тип механизма XML. Если атрибут не указан, предполагается значение "DOM". Например, поставщик службы, поддерживающий преобразование XPath Filter 2 и механизм DOM, указывается в подклассе Provider следующим образом:

    put("TransformService." + Transform.XPATH2,
        "org.example.XPath2TransformService");
    put("TransformService." + Transform.XPATH2 + " MechanismType", "DOM");
TransformService, поддерживающие тип механизма DOM, должны соответствовать требованиям совместимости DOM, определённым в разделе Требования к механизму DOM. Список стандартных URI алгоритмов и типов механизмов см. в разделе TransformService документа Спецификация стандартных имён алгоритмов безопасности Java.

После создания TransformService его можно использовать для обработки объектов Transform или CanonicalizationMethod. Если Transform или CanonicalizationMethod существует в форме XML (например, при проверке существующего XMLSignature), сначала необходимо вызвать метод init(XMLStructure, XMLCryptoContext), чтобы инициализировать преобразование и предоставить контекст документа (даже если параметры отсутствуют). Если же Transform или CanonicalizationMethod создаётся с нуля, для инициализации преобразования с параметрами вызывается метод init(TransformParameterSpec), а для маршалинга параметров в XML и предоставления преобразованию контекста документа вызывается метод marshalParams. Наконец, для выполнения преобразования вызывается метод transform.

Параллельный доступ

Гарантируется, что статические методы этого класса потокобезопасны. Несколько потоков могут одновременно вызывать статические методы, определённые в этом классе, без каких-либо нежелательных последствий.

Однако это не относится к нестатическим методам, определённым в этом классе. Если документация конкретного поставщика не указывает иное, потоки, которым требуется одновременно обращаться к одному экземпляру TransformService, должны синхронизироваться между собой и обеспечивать необходимую блокировку. Потокам, каждый из которых работает с отдельным экземпляром TransformService, синхронизация не требуется.

Начиная с:
1.6
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java

Краткое описание полей

Поля, объявленные в интерфейсе Transform

BASE64, ENVELOPED, XPATH, XPATH2, XSLT
Модификатор и тип Поле Описание
static final String BASE64
URI алгоритма преобразования Base64.
static final String ENVELOPED
URI алгоритма преобразования подписи с вложением.
static final String XPATH
URI алгоритма преобразования XPath.
static final String XPATH2
URI алгоритма преобразования XPath Filter 2.
static final String XSLT
URI алгоритма преобразования XSLT.

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

TransformService()
Модификатор Конструктор Описание
protected
Конструктор по умолчанию, предназначенный для вызова подклассами.

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

Модификатор и тип Метод Описание
final String getAlgorithm()
Возвращает URI алгоритма, поддерживаемого этим TransformService.
static TransformService getInstance(String algorithm, String mechanismType)
Возвращает TransformService, поддерживающий указанный URI алгоритма (например, Transform.XPATH2) и тип механизма (например, DOM).
static TransformService getInstance(String algorithm, String mechanismType, String provider)
Возвращает TransformService, поддерживающий указанный URI алгоритма (например, Transform.XPATH2) и тип механизма (например, DOM), предоставленные указанным поставщиком.
static TransformService getInstance(String algorithm, String mechanismType, Provider provider)
Возвращает TransformService, поддерживающий указанный URI алгоритма (например, Transform.XPATH2) и тип механизма (например, DOM), предоставленные указанным поставщиком.
final String getMechanismType()
Возвращает тип механизма, поддерживаемый этим TransformService.
final Provider getProvider()
Возвращает поставщика этого TransformService.
abstract void init(TransformParameterSpec params)
Инициализирует этот TransformService указанными параметрами.
abstract void init(XMLStructure parent, XMLCryptoContext context)
Инициализирует этот TransformService указанными параметрами и контекстом документа.
abstract void marshalParams(XMLStructure parent, XMLCryptoContext context)
Выполняет маршалинг параметров, специфичных для алгоритма.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, равен ли другой объект этому объекту.
protected void finalize()
Устарело, будет удалено: этот элемент API подлежит удалению в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения определённого времени.
final void wait(long timeoutMillis, int nanos)
Приостанавливает текущий поток до его пробуждения, обычно посредством уведомления или прерывания, либо до истечения определённого времени.

Методы, объявленные в интерфейсе Transform

getParameterSpec, transform, transform
Модификатор и тип Метод Описание
AlgorithmParameterSpec getParameterSpec()
Возвращает параметры ввода, специфичные для алгоритма и связанные с этим Transform.
Data transform(Data data, XMLCryptoContext context)
Преобразует указанные данные с помощью базового алгоритма преобразования.
Data transform(Data data, XMLCryptoContext context, OutputStream os)
Преобразует указанные данные с помощью базового алгоритма преобразования.

Методы, объявленные в интерфейсе XMLStructure

isFeatureSupported
Модификатор и тип Метод Описание
boolean isFeatureSupported(String feature)
Указывает, поддерживается ли указанная функция.

Подробное описание конструкторов

TransformService

protected TransformService()
Конструктор по умолчанию, предназначенный для вызова подклассами.

Подробное описание методов

getInstance

public static TransformService getInstance(String algorithm, String mechanismType) throws NoSuchAlgorithmException
Возвращает TransformService, поддерживающий указанный URI алгоритма (например, Transform.XPATH2) и тип механизма (например, DOM).

Этот метод использует стандартный механизм поиска поставщиков JCA для обнаружения и создания экземпляра реализации TransformService требуемого алгоритма и атрибута службы MechanismType. Он перебирает список зарегистрированных поставщиков безопасности Provider, начиная с наиболее предпочтительного Provider. Возвращается новый объект TransformService от первого Provider, поддерживающего указанные алгоритм и тип механизма.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

Примечание по реализации:
Реализация JDK Reference дополнительно использует свойство jdk.security.provider.preferred Security для определения предпочтительного порядка поставщиков для указанного алгоритма. Этот порядок может отличаться от порядка поставщиков, возвращаемого методом Security.getProviders().
Параметры:
algorithm — URI алгоритма. Список стандартных алгоритмов преобразования см. в разделе TransformService документа Спецификация стандартных имён алгоритмов безопасности Java.
mechanismType — тип механизма обработки и представления XML. Список стандартных типов механизмов см. в разделе TransformService документа Спецификация стандартных имён алгоритмов безопасности Java.
Возвращает:
новый TransformService
Вызывает исключение:
NullPointerException — если algorithm или mechanismType имеет значение null
NoSuchAlgorithmException — если ни один Provider не поддерживает реализацию TransformService для указанного алгоритма и типа механизма
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • Provider

getInstance

public static TransformService getInstance(String algorithm, String mechanismType, Provider provider) throws NoSuchAlgorithmException
Возвращает TransformService, поддерживающий указанный URI алгоритма (например, Transform.XPATH2) и тип механизма (например, DOM), предоставленные указанным поставщиком. Обратите внимание, что указанный объект Provider не обязательно должен быть зарегистрирован в списке поставщиков.
Параметры:
algorithm — URI алгоритма. Список стандартных алгоритмов преобразования см. в разделе TransformService документа Спецификация стандартных имён алгоритмов безопасности Java.
mechanismType — тип механизма обработки и представления XML. Список стандартных типов механизмов см. в разделе TransformService документа Спецификация стандартных имён алгоритмов безопасности Java.
provider — объект Provider
Возвращает:
новый TransformService
Вызывает исключение:
NullPointerException — если provider, algorithm или mechanismType имеет значение null
NoSuchAlgorithmException — если указанный объект Provider не предоставляет реализацию TransformService для указанного алгоритма и типа механизма
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • Provider

getInstance

public static TransformService getInstance(String algorithm, String mechanismType, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Возвращает TransformService, поддерживающий указанный URI алгоритма (например, Transform.XPATH2) и тип механизма (например, DOM), предоставленные указанным поставщиком. Указанный поставщик должен быть зарегистрирован в списке поставщиков безопасности.

Обратите внимание, что список зарегистрированных поставщиков можно получить с помощью метода Security.getProviders().

Параметры:
algorithm — URI алгоритма. Список стандартных алгоритмов преобразования см. в разделе TransformService документа Спецификация стандартных имён алгоритмов безопасности Java.
mechanismType — тип механизма обработки и представления XML. Список стандартных типов механизмов см. в разделе TransformService документа Спецификация стандартных имён алгоритмов безопасности Java.
provider — строковое имя поставщика
Возвращает:
новый TransformService
Вызывает исключение:
NoSuchProviderException — если указанный поставщик не зарегистрирован в списке поставщиков безопасности
NullPointerException — если provider, mechanismType или algorithm имеет значение null
NoSuchAlgorithmException — если указанный поставщик не предоставляет реализацию TransformService для указанного алгоритма и типа механизма
Внешние спецификации
  • Стандартные имена алгоритмов безопасности Java
См. также:
  • Provider

getMechanismType

public final String getMechanismType()
Возвращает тип механизма, поддерживаемый этим TransformService.
Возвращает:
тип механизма

getAlgorithm

public final String getAlgorithm()
Возвращает URI алгоритма, поддерживаемого этим TransformService.
Определено в:
getAlgorithm в интерфейсе AlgorithmMethod
Возвращает:
URI алгоритма

getProvider

public final Provider getProvider()
Возвращает поставщика этого TransformService.
Возвращает:
поставщик

init

public abstract void init(TransformParameterSpec params) throws InvalidAlgorithmParameterException
Инициализирует этот TransformService указанными параметрами.

Если параметры существуют в форме XML, для инициализации TransformService следует использовать метод init(XMLStructure, XMLCryptoContext).

Параметры:
params — параметры алгоритма (могут иметь значение null, если они не требуются или являются необязательными)
Вызывает исключение:
InvalidAlgorithmParameterException — если указанные параметры недопустимы для этого алгоритма

marshalParams

public abstract void marshalParams(XMLStructure parent, XMLCryptoContext context) throws MarshalException
Выполняет маршалинг параметров, специфичных для алгоритма. Если параметров для маршалинга нет, этот метод возвращает управление без выбрасывания исключения.
Параметры:
parent — структура, специфичная для механизма и содержащая родительский узел, к которому следует добавить параметры после маршалинга
context — XMLCryptoContext, содержащий дополнительный контекст (может иметь значение null, если неприменимо)
Вызывает исключение:
ClassCastException — если тип parent или context несовместим с этим TransformService
NullPointerException — если parent имеет значение null
MarshalException — если выполнить маршалинг параметров невозможно

init

public abstract void init(XMLStructure parent, XMLCryptoContext context) throws InvalidAlgorithmParameterException
Инициализирует этот TransformService указанными параметрами и контекстом документа.
Параметры:
parent — структура, специфичная для механизма и содержащая родительскую структуру
context — XMLCryptoContext, содержащий дополнительный контекст (может иметь значение null, если неприменимо)
Вызывает исключение:
ClassCastException — если тип parent или context несовместим с этим TransformService
NullPointerException — если parent имеет значение null
InvalidAlgorithmParameterException — если указанные параметры недопустимы для этого алгоритма

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзор концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

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

Spec-Zone.ru

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