public abstract class TransformService extends Object implements Transform
TransformService
の各インスタンスは、特定の変換アルゴリズムまたは正規化アルゴリズムおよびXMLメカニズム型をサポートします。TransformService
を作成するには、static getInstance
メソッドの1つを呼び出し、目的のアルゴリズムURIおよびXMLメカニズム型を渡します。次に例を示します。
TransformService ts = TransformService.getInstance(Transform.XPATH2, "DOM");
TransformService
実装は、Provider
メカニズムを使用して登録およびロードされます。各TransformService
のサービス・プロバイダ実装は、サポートするXMLメカニズム型を特定するMechanismType
サービス属性を含む必要があります。属性が指定されない場合、"DOM"であると想定されます。たとえば、XPath Filter 2 TransformおよびDOMメカニズムをサポートするサービス・プロバイダはProvider
サブクラスで次のように指定されます。
put("TransformService." + Transform.XPATH2, "org.example.XPath2TransformService"); put("TransformService." + Transform.XPATH2 + " MechanismType", "DOM");DOMメカニズム型がサポートする
TransformService
実装は、APIの概要の「DOMメカニズム要件」セクションで定義されているDOM相互運用性の要件に従う必要があります。標準のメカニズム型のリストについては、APIの概要の「サービス・プロバイダ」セクションを参照してください。
TransformService
が作成されると、それを使用してTransform
オブジェクトまたはCanonicalizationMethod
オブジェクトを処理できます。XML形式の中にTransform
またはCanonicalizationMethod
が存在する場合(たとえば、既存のXMLSignature
を検証するとき)、init(XMLStructure, XMLCryptoContext)
メソッドを最初に呼び出して変換を初期化し、文書コンテキストを提供する必要があります(パラメータがない場合でも)。あるいは、Transform
またはCanonicalizationMethod
がゼロから作成される場合、init(TransformParameterSpec)
メソッドが呼び出されて変換がパラメータ付きで初期化され、marshalParams
メソッドが呼び出されてXMLへのパラメータが整列化され、文書コンテキストでの変換が提供されます。最後に、transform
メソッドが呼び出されて変換を実行します。
並行アクセス
このクラスのstaticメソッドは、スレッド・セーフであることが保証されています。このクラスで定義されているstaticメソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。
しかしこのことは、このクラスで定義されている非staticメソッドには当てはまりません。特定のプロバイダで特に説明がないかぎり、単一のTransformService
インスタンスに並行してアクセスする必要のある複数スレッドは、スレッド間で同期を取り、必要に応じてロックしなければいけません。異なるTransformService
インスタンスを操作する複数スレッドは、同期化される必要はありません。
修飾子 | コンストラクタと説明 |
---|---|
protected |
TransformService()
デフォルトのコンストラクタ、サブクラスによる呼出し用。
|
修飾子と型 | メソッドと説明 |
---|---|
String |
getAlgorithm()
この
TransformService がサポートするアルゴリズムのURIを返します。 |
static TransformService |
getInstance(String algorithm, String mechanismType)
指定されたアルゴリズムURI (例:
Transform.XPATH2 )およびメカニズム型(例: DOM)をサポートするTransformService を返します。 |
static TransformService |
getInstance(String algorithm, String mechanismType, Provider provider)
指定したプロバイダが提供する、指定されたアルゴリズムURI (例:
Transform.XPATH2 )およびメカニズム型(例: DOM)をサポートするTransformService を返します。 |
static TransformService |
getInstance(String algorithm, String mechanismType, String provider)
指定したプロバイダが提供する、指定されたアルゴリズムURI (例:
Transform.XPATH2 )およびメカニズム型(例: DOM)をサポートするTransformService を返します。 |
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
Transform.XPATH2
)およびメカニズム型(例: DOM)をサポートするTransformService
を返します。
このメソッドは標準JCAプロバイダ検索メカニズムを使用して、目的のアルゴリズムおよびMechanismType
サービス属性のTransformService
実装を検出およびインスタンス化します。登録済みのセキュリティProvider
のリストを、最優先のProvider
からトラバースします。指定したアルゴリズムおよびメカニズム型をサポートする最初のProvider
からの新しいTransformService
オブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
algorithm
- アルゴリズムのURImechanismType
- XML処理メカニズムおよび表現の型TransformService
NullPointerException
- algorithm
またはmechanismType
がnull
の場合NoSuchAlgorithmException
- 指定したアルゴリズムやメカニズム型用のTransformService
実装をサポートするProvider
が存在しない場合Provider
public static TransformService getInstance(String algorithm, String mechanismType, Provider provider) throws NoSuchAlgorithmException
Transform.XPATH2
)およびメカニズム型(例: DOM)をサポートするTransformService
を返します。指定したProvider
オブジェクトは、プロバイダ・リストに登録する必要はありません。algorithm
- アルゴリズムのURImechanismType
- 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
Transform.XPATH2
)およびメカニズム型(例: DOM)をサポートするTransformService
を返します。指定したプロバイダは、セキュリティ・プロバイダ・リストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
algorithm
- アルゴリズムのURImechanismType
- 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
と互換性がない場合NullPointerException
- parent
がnull
である場合MarshalException
- パラメータを整列化できない場合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のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.