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过滤器2变换和DOM机制将被指定在Provider
类服务提供商:
把(“transformservice + transform.xpath2。”,“组织的例子。xpath2transformservice”);把(“transformservice。”+ transform.xpath2 +“mechanismtype”、“DOM”);
TransformService
实现支持DOM机制类型必须遵守DOM互操作性要求的API概述
DOM Mechanism Requirements部分定义。看到一个标准的机构类型的API概述
Service Providers节。
一旦TransformService
已经建立,它可以用来处理Transform
或CanonicalizationMethod
对象。如果Transform
或CanonicalizationMethod
XML形式存在(例如,在验证现有的XMLSignature
)的方法,init(XMLStructure, XMLCryptoContext)
必须先被初始化并提供文档上下文变换(即使没有参数)。另外,如果Transform
或CanonicalizationMethod
正在从头开始创建,这init(TransformParameterSpec)
方法来初始化转换参数和marshalParams
方法称为元帅的参数提供的转换XML文档上下文。最后,该transform
方法被调用来执行转换。
并发访问
这个类的静态方法保证是线程安全的。多线程可以同时调用在这个类中定义的静态方法,没有任何不良影响。
然而,对于这个类定义的非静态方法,这是不正确的。除非另有书面由一个特定的供应商,线程需要访问一个单一的TransformService
实例同时应同步自己提供必要的锁。多个线程中的每个操作不同的TransformService
实例不需要同步。
Modifier | Constructor and Description |
---|---|
protected |
TransformService()
默认构造函数,通过子类调用。
|
Modifier and Type | Method and Description |
---|---|
String |
getAlgorithm()
返回该
TransformService 所支持的算法的URI。
|
static TransformService |
getInstance(String algorithm, String mechanismType)
返回一个支持指定URI
TransformService 算法(例如:
Transform.XPATH2 )和机制(例如:DOM)。
|
static TransformService |
getInstance(String algorithm, String mechanismType, Provider provider)
返回一个支持指定URI
TransformService 算法(例如:
Transform.XPATH2 )和机构类型(例如:DOM)由指定的供应商提供。
|
static TransformService |
getInstance(String algorithm, String mechanismType, String provider)
返回一个支持指定URI
TransformService 算法(例如:
Transform.XPATH2 )和机构类型(例如:DOM)由指定的供应商提供。
|
String |
getMechanismType()
返回的
TransformService 支持机制。
|
Provider |
getProvider()
返回该
TransformService 提供者。
|
abstract void |
init(TransformParameterSpec params)
用指定的参数初始化这个
TransformService 。
|
abstract void |
init(XMLStructure parent, XMLCryptoContext context)
这
TransformService 初始化具有指定参数和文档上下文。
|
abstract void |
marshalParams(XMLStructure parent, XMLCryptoContext context)
将算法的具体参数。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getParameterSpec, transform, transform
isFeatureSupported
public static TransformService getInstance(String algorithm, String mechanismType) throws NoSuchAlgorithmException
TransformService
算法(例如:
Transform.XPATH2
)和机制(例如:DOM)。
该方法采用标准的JCA提供者查找机制来定位和实例化一个TransformService
实施所需要的算法和MechanismType
服务属性。它通过注册安全Provider
s列表,从最喜欢的Provider
,支持指定的算法和机制类型的第一个Provider
新TransformService
对象返回。
注意,注册商的列表可以通过Security.getProviders()
检索方法。
algorithm
-算法的URI
mechanismType
- XML处理机制和表征的类型
TransformService
NullPointerException
-如果
algorithm
或
mechanismType
是
null
NoSuchAlgorithmException
-如果没有
Provider
支持
TransformService
执行指定的算法和机制的类型
Provider
public static TransformService getInstance(String algorithm, String mechanismType, Provider provider) throws NoSuchAlgorithmException
TransformService
算法(例如:
Transform.XPATH2
)和机构类型(例如:DOM)由指定的供应商提供。注意,指定的
Provider
对象不必在供应商列表注册。
algorithm
-算法的URI
mechanismType
- XML处理机制和表征的类型
provider
-
Provider
对象
TransformService
NullPointerException
-如果
provider
,
algorithm
,或
mechanismType
是
null
NoSuchAlgorithmException
-如果一个指定的算法和机制
TransformService
实现不可从指定的
Provider
对象
Provider
public static TransformService getInstance(String algorithm, String mechanismType, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
TransformService
算法(例如:
Transform.XPATH2
)和机构类型(例如:DOM)由指定的供应商提供。指定的提供程序必须在安全提供程序列表中注册。
注意,注册商的列表可以通过Security.getProviders()
检索方法。
algorithm
-算法的URI
mechanismType
- XML处理机制和表征的类型
provider
-供应商的字符串名称
TransformService
NoSuchProviderException
-如果指定的供应商不在安全提供商注册名单
NullPointerException
-如果
provider
,
mechanismType
,或
algorithm
是
null
NoSuchAlgorithmException
-如果一个指定的算法和机制
TransformService
实现不可从指定的供应商
Provider
public final String getMechanismType()
TransformService
支持机制。
public final String getAlgorithm()
TransformService
所支持的算法的URI。
getAlgorithm
接口
AlgorithmMethod
public final Provider getProvider()
TransformService
提供者。
public abstract void init(TransformParameterSpec params) throws InvalidAlgorithmParameterException
TransformService
。
如果在XML形式存在的参数,init(XMLStructure, XMLCryptoContext)
方法应用于初始化TransformService
。
params
-算法参数(可能是
null
如果不是必需的或可选的)
InvalidAlgorithmParameterException
-如果指定的参数,该算法是无效的
public abstract void marshalParams(XMLStructure parent, XMLCryptoContext context) throws MarshalException
parent
-一个包含父节点,应编列参数附加到机制的具体结构
context
含有额外的上下文的
XMLCryptoContext
(可能
null
如果不适用)
ClassCastException
-如果
parent
或
context
类型是不是与此
TransformService
兼容
null
parent
NullPointerException
MarshalException
如果参数不能整理
public abstract void init(XMLStructure parent, XMLCryptoContext context) throws InvalidAlgorithmParameterException
TransformService
初始化具有指定参数和文档上下文。
parent
-含有母体结构机制的具体结构
context
含有额外的上下文的
XMLCryptoContext
(可能
null
如果不适用)
ClassCastException
-如果
parent
或
context
类型是不是与此
TransformService
兼容
null
parent
NullPointerException
InvalidAlgorithmParameterException
-如果指定的参数,该算法是无效的
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.