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, waitgetParameterSpec, transform, transformisFeatureSupportedpublic static TransformService getInstance(String algorithm, String mechanismType) throws NoSuchAlgorithmException
TransformService算法(例如:
Transform.XPATH2)和机制(例如:DOM)。
该方法采用标准的JCA提供者查找机制来定位和实例化一个TransformService实施所需要的算法和MechanismType服务属性。它通过注册安全Providers列表,从最喜欢的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.