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, waitgetParameterSpec, transform, transformisFeatureSupportedpublic 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 処理メカニズムおよび表現の型TransformServiceNullPointerException - algorithm または mechanismType が null の場合NoSuchAlgorithmException - 指定したアルゴリズムやメカニズム型用の TransformService 実装をサポートする Provider が存在しない場合Providerpublic static TransformService getInstance(String algorithm, String mechanismType, Provider provider) throws NoSuchAlgorithmException
Transform.XPATH2) およびメカニズム型 (例: DOM) をサポートする TransformService を返します。指定した Provider オブジェクトは、プロバイダリストに登録する必要はありません。algorithm - アルゴリズムの URImechanismType - XML 処理メカニズムおよび表現の型provider - Provider オブジェクトTransformServiceNullPointerException - provider、algorithm、または mechanismType が null の場合NoSuchAlgorithmException - 指定したアルゴリズムやメカニズム型用の TransformService 実装が、指定した Provider オブジェクトで使用できない場合Providerpublic static TransformService getInstance(String algorithm, String mechanismType, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Transform.XPATH2) およびメカニズム型 (例: DOM) をサポートする TransformService を返します。指定したプロバイダは、セキュリティープロバイダリストに登録する必要があります。
登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。
algorithm - アルゴリズムの URImechanismType - XML 処理メカニズムおよび表現の型provider - プロバイダ名の文字列名TransformServiceNoSuchProviderException - 指定されたプロバイダがセキュリティープロバイダリストに登録されていない場合NullPointerException - provider、mechanismType、または algorithm が null の場合NoSuchAlgorithmException - 指定したアルゴリズムやメカニズム型用の TransformService 実装が指定したプロバイダで使用できない場合Providerpublic final String getMechanismType()
TransformService がサポートするメカニズム型を返します。public final String getAlgorithm()
TransformService がサポートするアルゴリズムの URI を返します。getAlgorithm、インタフェース: AlgorithmMethodpublic 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, 2013, Oracle and/or its affiliates. All rights reserved.