JavaTM Platform
Standard Ed. 6

javax.xml.crypto.dsig
クラス TransformService

java.lang.Object
  上位を拡張 javax.xml.crypto.dsig.TransformService
すべての実装されたインタフェース:
AlgorithmMethod, Transform, XMLStructure

public abstract class TransformService
extends Object
implements Transform

変換アルゴリズムおよび正規化アルゴリズム用の Service Provider Interface です。  

TransformService の各インスタンスは、特定の変換アルゴリズムまたは正規化アルゴリズムおよび XML 機構型をサポートします。TransformService を作成するには、static getInstance メソッドを呼び出し、目的のアルゴリズム 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 インスタンスを操作する複数スレッド間では、同期をとる必要はありません。

導入されたバージョン:
1.6

フィールドの概要
 
インタフェース javax.xml.crypto.dsig.Transform から継承されたフィールド
BASE64, ENVELOPED, XPATH, XPATH2, XSLT
 
コンストラクタの概要
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)
          アルゴリズム固有のパラメータを整列化します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース javax.xml.crypto.dsig.Transform から継承されたメソッド
getParameterSpec, transform, transform
 
インタフェース javax.xml.crypto.XMLStructure から継承されたメソッド
isFeatureSupported
 

コンストラクタの詳細

TransformService

protected TransformService()
デフォルトのコンストラクタ、サブクラスによる呼び出し用。

メソッドの詳細

getInstance

public static TransformService getInstance(String algorithm,
                                           String mechanismType)
                                    throws NoSuchAlgorithmException
指定されたアルゴリズム URI (例: Transform.XPATH2) および機構型 (例: "DOM") をサポートする TransformService を返します。

 

このメソッドは標準 JCA プロバイダ検索機構を使用して、目的のアルゴリズムおよび MechanismType サービス属性の TransformService 実装を検出およびインスタンス化します。登録済みのセキュリティー Provider のリストを、最優先の Provider からトラバースします。指定したアルゴリズムおよび機構型をサポートする最初の Provider からの新しい TransformService オブジェクトが返されます。  

登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。

パラメータ:
algorithm - アルゴリズムの URI
mechanismType - XML 処理機構および表現の型
戻り値:
新しい TransformService
例外:
NullPointerException - algorithm または mechanismTypenull の場合
NoSuchAlgorithmException - 指定したアルゴリズムや機構型用の TransformService 実装をサポートする Provider がない場合
関連項目:
Provider

getInstance

public static TransformService getInstance(String algorithm,
                                           String mechanismType,
                                           Provider provider)
                                    throws NoSuchAlgorithmException
指定したプロバイダが提供する、指定されたアルゴリズム URI (例: Transform.XPATH2) および機構型 (例: "DOM") をサポートする TransformService を返します。指定した Provider オブジェクトは、プロバイダリストに登録する必要はありません。

パラメータ:
algorithm - アルゴリズムの URI
mechanismType - XML 処理機構および表現の型
provider - Provider オブジェクト
戻り値:
新しい TransformService
例外:
NullPointerException - provideralgorithm、または mechanismTypenull の場合
NoSuchAlgorithmException - 指定したアルゴリズムや機構型用の TransformService 実装が、指定した Provider オブジェクトで使用できない場合
関連項目:
Provider

getInstance

public static TransformService getInstance(String algorithm,
                                           String mechanismType,
                                           String provider)
                                    throws NoSuchAlgorithmException,
                                           NoSuchProviderException
指定したプロバイダが提供する、指定されたアルゴリズム URI (例: Transform.XPATH2) および機構型 (例: "DOM") をサポートする TransformService を返します。指定したプロバイダは、セキュリティープロバイダリストに登録する必要があります。  

登録済みプロバイダのリストは、Security.getProviders() メソッド経由で取得できます。

パラメータ:
algorithm - アルゴリズムの URI
mechanismType - XML 処理機構および表現の型
provider - プロバイダ名の文字列名
戻り値:
新しい TransformService
例外:
NoSuchProviderException - 指定したプロバイダがセキュリティープロバイダリストに登録されていない場合
NullPointerException - providermechanismType、または algorithmnull の場合
NoSuchAlgorithmException - 指定したアルゴリズムや機構型用の TransformService 実装が指定したプロバイダで使用できない場合
関連項目:
Provider

getMechanismType

public final String getMechanismType()
この TransformService がサポートする機構型を返します。

戻り値:
機構型

getAlgorithm

public final String getAlgorithm()
この TransformService がサポートするアルゴリズムの URI を返します。

定義:
インタフェース AlgorithmMethod 内の getAlgorithm
戻り値:
アルゴリズム URI

getProvider

public final Provider getProvider()
この TransformService のプロバイダを返します。

戻り値:
プロバイダ

init

public abstract void init(TransformParameterSpec params)
                   throws InvalidAlgorithmParameterException
指定されたパラメータでこの TransformService を初期化します。  

XML 形式の中にパラメータが存在する場合、init(XMLStructure, XMLCryptoContext) メソッドを使用して TransformService を初期化する必要があります。

パラメータ:
params - アルゴリズムパラメータ。必須でない場合または省略可能な場合は null も可
例外:
InvalidAlgorithmParameterException - 指定されたパラメータがこのアルゴリズムには無効な場合

marshalParams

public abstract void marshalParams(XMLStructure parent,
                                   XMLCryptoContext context)
                            throws MarshalException
アルゴリズム固有のパラメータを整列化します。整列化するパラメータがない場合、このメソッドは例外をスローせずに返します。

パラメータ:
parent - 整列化されたパラメータが追加される親ノードを格納する、機構固有の構造
context - 追加のコンテキストを格納する XMLCryptoContext。該当しない場合は null も可
例外:
ClassCastException - parent または context の型がこの TransformService と互換性がない場合
NullPointerException - parentnull の場合
MarshalException - パラメータを整列化できない場合

init

public abstract void init(XMLStructure parent,
                          XMLCryptoContext context)
                   throws InvalidAlgorithmParameterException
指定されたパラメータおよび文書コンテキストでこの TransformService を初期化します。

パラメータ:
parent - 親構造を格納する機構固有の構造
context - 追加のコンテキストを格納する XMLCryptoContext。該当しない場合は null も可
例外:
ClassCastException - parent または context の型がこの TransformService と互換性がない場合
NullPointerException - parentnull の場合
InvalidAlgorithmParameterException - 指定されたパラメータがこのアルゴリズムには無効な場合

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。