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, 2014, Oracle and/or its affiliates. All rights reserved.