Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 基本開発編

[目次][用語][索引][前へ][次へ]

11.1.3 データ変換APIの詳細

サービスプラットフォームが提供するデータ変換APIは,パッケージ「jp.co.Hitachi.soft.csc.dt.api.transformer」に所属します。

<この項の構成>
(1) パッケージ「jp.co.Hitachi.soft.csc.dt.api.transformer」に所属するクラス
(2) インターフェースの詳細
(3) クラスの詳細
(4) 列挙型の詳細
(5) 例外クラスの詳細

(1) パッケージ「jp.co.Hitachi.soft.csc.dt.api.transformer」に所属するクラス

パッケージ「jp.co.Hitachi.soft.csc.dt.api.transformer」に所属するインターフェースおよびクラスの一覧を次に示します。

●インターフェース

表11-2 インターフェースの一覧(パッケージ「jp.co.Hitachi.soft.csc.dt.api.transformer」)

インターフェース名 説明
DataTransformer データ変換基盤のデータ変換処理を呼び出すインターフェースです。
FormatDataCacheController データ変換基盤のキャッシュ操作を実行するインターフェースです。

●クラス

表11-3 クラスの一覧(パッケージ「jp.co.Hitachi.soft.csc.dt.api.transformer」)

クラス名 説明
DataTransformerCacheManager データ変換APIのインスタンスを管理するクラスです。
FormatDefinition フォーマット定義およびデータ変換定義を格納するクラスです。

●列挙型

表11-4 列挙型の一覧(パッケージ「jp.co.Hitachi.soft.csc.dt.api.transformer」)

列挙型名 説明
FormatDataKind フォーマット定義およびデータ変換定義の種別を表す列挙型です。

●例外クラス

表11-5 例外クラスの一覧(パッケージ「jp.co.Hitachi.soft.csc.dt.api.transformer」)

クラス名 説明
CacheNotFoundException データ変換処理でフォーマット定義およびデータ変換定義のキャッシュが見つからなかったことを通知する例外クラスです。
DataTransformException データ変換APIの例外を扱うクラスです。

(2) インターフェースの詳細

(a) DataTransformerインターフェース

データ変換基盤のデータ変換処理を呼び出すインターフェースです。

●クラス定義
 
public interface DataTransformer
 
説明
transformメソッドの引数に要求電文,フォーマット定義ファイルの情報,データ変換定義ファイルの情報を指定し,変換後の応答電文をバイト配列で返します。
なお,サポートするデータ変換の形式は次のとおりです。
  • XML→XML
  • XML→バイナリ
  • バイナリ→XML
  • バイナリ→バイナリ
このクラスは,バイナリフォーマット定義(FDX),およびデータ変換定義(XSLT)のキャッシュを保持します。それぞれのキャッシュは別々に管理されます。キャッシュを保持できる上限値は,システムプロパティで設定します。
データ変換処理では,バイナリフォーマット定義,およびデータ変換定義のキャッシュを参照し,データ変換をします。キャッシュを登録していない場合は,transformメソッドに対して定義ファイルの情報を指定してください。
未登録のキャッシュは,データ変換処理時にキャッシュが登録されます。
XML Schemaはデータ変換で使用されません。そのため,transformメソッドに対してXML Schemaの定義ファイルを指定する必要はありません。また,このクラスでXML Schemaのキャッシュは保持しません。
インスタンスを破棄する際には,stopメソッドを一度だけ呼び出してください。
注意事項
要求電文と応答電文のN対1のデータ変換には対応していません。

●メソッド
DataTransformerインターフェースのメソッドを次の表に示します。

表11-6 DataTransformerインターフェースのメソッド

メソッド名 説明
transform 引数で指定した変換元のデータに対し,データ変換処理を実行し,変換後のデータを返します。
stop 停止処理を実行します。
●transform
引数で指定した変換元のデータに対し,データ変換処理を実行し,変換後のデータを返します。
このメソッドはスレッドセーフです。
形式
 
byte[] transform(byte[] data,
                 FormatDefinition inFormatDefinition,
                 FormatDefinition outFormatDefinition,
                 FormatDefinition transformFormatDefinition)
          throws CacheNotFoundException,
                 DataTransformException
 
引数
  • data
    変換元データを指定します。
    nullは指定できません。
  • inFormatDefinition
    要求電文のフォーマット定義ファイルを格納するオブジェクトを指定します。
    nullは指定できません。
  • outFormatDefinition
    応答電文のフォーマット定義ファイルを格納するオブジェクトを指定します。
    nullは指定できません。
  • transformFormatDefinition
    データ変換定義ファイルを格納するオブジェクトを指定します。
    nullは指定できません。
説明
要求電文と応答電文の1対1のデータ変換に対応します。
データ変換をするには,要求電文と応答電文のフォーマット定義,およびデータ変換定義の情報が必要です。
定義ファイルの情報はFormatDefinitionクラスで指定します。
FormatDefinitionクラスでは,定義ファイルの種別,およびキャッシュ名の設定が必須です。nullは指定できません。
バイナリフォーマット定義,およびデータ変換定義のキャッシュを登録していない場合は,定義ファイルの情報もFormatDefinitionクラスに指定してください。
注意事項
XML Schemaの定義ファイルの情報は,このメソッドで使用されません。定義ファイルの種別とキャッシュ名を,FormatDefinitionクラスで指定してください。
戻り値
変換後のデータを返します。
例外
  • データ変換処理で定義ファイルのキャッシュが見つからない場合,例外(CacheNotFoundException)をスローし,エラーメッセージ(KDEC41002-E)をメッセージログに出力します。
  • データ変換APIの処理中に内部エラーが発生した場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41000-E)をメッセージログに出力します。
  • メソッドの引数が不正の場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41001-E)をメッセージログに出力します。
  • データ変換処理で例外が発生した場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41005-E)をメッセージログに出力します。
  • キャッシュの登録処理が失敗した場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41006-E)をメッセージログに出力します。
●stop
停止処理を実行します。
形式
 
void stop()
 
(b) FormatDataCacheControllerインターフェース

データ変換基盤のキャッシュ操作を実行するインターフェースです。

バイナリフォーマット定義(FDX),データ変換定義(XSLT)のキャッシュに関する操作を提供します。

●クラス定義
 
public interface FormatDataCacheController
 
説明
キャッシュの登録や削除の対象となるキャッシュの情報は,FormatDefinitionクラスに指定します。FormatDefinitionインスタンスの生成時に,定義ファイルの種別やキャッシュ名を設定し,このクラスの各メソッドにFormatDefinitionインスタンスを設定してください。
注意事項
このクラスで,XML Schemaのキャッシュ操作はできません。このクラスの各メソッドの引数にXML Schemaを指定すると例外が発生します。

●メソッド
FormatDataCacheControllerインターフェースのメソッドを次の表に示します。

表11-7 FormatDataCacheControllerインターフェースのメソッド

メソッド名 説明
clear フォーマット定義およびデータ変換定義のキャッシュをすべて削除します。
contains フォーマット定義およびデータ変換定義のキャッシュが含まれている場合にtrueを返します。
getCacheNameList フォーマット定義およびデータ変換定義のキャッシュ名の一覧を返します。
register フォーマット定義およびデータ変換定義のキャッシュを登録します。
remove フォーマット定義およびデータ変換定義のキャッシュを削除します。
●clear
フォーマット定義およびデータ変換定義のキャッシュをすべて削除します。キャッシュが一つも登録されていない場合は,削除対象が存在しないので,処理をしないで終了します(正常終了となります)。
このメソッドはスレッドセーフです。
形式
 
void clear()
          throws DataTransformException
 
引数
ありません。
戻り値
ありません。
例外
データ変換APIの処理中に内部エラーが発生した場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41000-E)をメッセージログに出力します。
●contains
フォーマット定義およびデータ変換定義のキャッシュが含まれている場合にtrueを返します。
このメソッドはスレッドセーフです。
形式
 
boolean contains(FormatDefinition formatDefinition)
          throws DataTransformException
 
引数
  • formatDefinition
    定義ファイルの情報を格納するオブジェクトを指定します。
    nullは指定できません。
説明
FormatDefinitionクラスに設定した種別,およびキャッシュ名と一致するキャッシュから検索します。
戻り値
キャッシュが登録されている場合はtrueを返します。
例外
  • データ変換APIの処理中に内部エラーが発生した場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41000-E)をメッセージログに出力します。
  • メソッドの引数が不正の場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41001-E)をメッセージログに出力します。
●getCacheNameList
フォーマット定義およびデータ変換定義のキャッシュ名の一覧を返します。
このメソッドはスレッドセーフです。
形式
 
java.util.Set<java.lang.String> getCacheNameList(FormatDataKind formatDataKind)
          throws DataTransformException
 
引数
  • formatDataKind
    定義ファイルの種別を指定します。
注意事項
  • 引数に,null,およびXML Schema(XSD)を表す種別は指定できません。
  • キャッシュがひとつも登録されていない場合は空のSetを返します。
  • このメソッドでは一覧の順序性を保証しません。
戻り値
キャッシュ名のSetを返します。
例外
  • データ変換APIの処理中に内部エラーが発生した場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41000-E)をメッセージログに出力します。
  • メソッドの引数が不正の場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41001-E)をメッセージログに出力します。
●register
フォーマット定義およびデータ変換定義のキャッシュを登録します。
このメソッドはスレッドセーフです。
形式
void register(FormatDefinition formatDefinition)
throws DataTransformException
引数
  • formatDefinition
    定義ファイルの情報を格納するオブジェクトを指定します。
    nullは指定できません。
説明
FormatDefinitionクラスに設定した種別,キャッシュ名,定義ファイルのバイト配列を参照し,キャッシュとして登録します。
指定されたキャッシュ名でキャッシュが登録されている場合はキャッシュを更新します。
注意事項
種別,キャッシュ名,および定義ファイルのバイト配列に,nullは指定できません。また,種別にXML Schema(XSD)を指定することもできません。
戻り値
ありません。
例外
  • メソッドの引数が不正の場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41001-E)をメッセージログに出力します。
  • キャッシュの登録処理が失敗した場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41006-E)をメッセージログに出力します。
●remove
フォーマット定義およびデータ変換定義のキャッシュを削除します。指定された種別,キャッシュ名でキャッシュが登録されていない場合は,削除対象が存在しないので,処理をしないで終了します(正常終了となります)。
このメソッドはスレッドセーフです。
形式
void remove(FormatDefinition formatDefinition)
throws DataTransformException
引数
  • formatDefinition
    定義ファイルの情報を格納するオブジェクトを指定します。
    nullは指定できません。
説明
FormatDefinitionクラスに設定した種別,キャッシュ名と一致するキャッシュを削除します。
注意事項
種別,およびキャッシュ名にnullは指定できません。また,種別にXML Schema(XSD)を指定することもできません。
戻り値
ありません。
例外
  • データ変換APIの処理中に内部エラーが発生した場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41000-E)をメッセージログに出力します。
  • メソッドの引数が不正の場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41001-E)をメッセージログに出力します。

(3) クラスの詳細

(a) DataTransformerCacheManagerクラス

データ変換APIのインスタンスを管理するクラスです。

●クラス定義
 
public class DataTransformerCacheManager
extends java.lang.Object
 
説明
このクラスは,DataTransformerインスタンスを複数保持し,グループ名という一意の識別子で管理します。
データ変換処理を呼び出す前に,getDataTransformerメソッドにグループ名を指定し,DataTransformerインスタンスを取得してください。データ変換処理はDataTransformerインスタンスから呼び出します。
DataTransformerインスタンスは,getDataTransformerメソッドの呼び出し時にキャッシュに存在しない場合,生成されます。
DataTransformerインスタンスは,データ変換基盤のキャッシュとロガーを保持します。キャッシュ数の上限数などの値はシステムプロパティ値が適用されます。
値を変更する場合は,システムプロパティを変更し,DataTransformerインスタンスを再作成してください。
FormatDataCacheControllerインスタンスは,データ変換基盤のキャッシュに対する操作を提供します。グループ名に関連するDataTransformerインスタンスにアクセスし,キャッシュの登録や削除をします。
キャッシュ処理を呼び出す前に,createFormatDataCacheControllerメソッドを呼び出し,FormatDataCacheControllerインスタンスを生成してください。

●メソッド
DataTransformerCacheManagerクラスのメソッドを次の表に示します。

表11-8 DataTransformerCacheManagerクラスのメソッド

メソッド名 説明
createFormatDataCacheController FormatDataCacheControllerインスタンスを生成します。
getDataTransformer 指定されたグループ名に関連付けられているDataTransformerインスタンスを返します。
removeDataTransformer 指定されたグループ名に関連付けられているDataTransformerインスタンスを削除します。
●createFormatDataCacheController
FormatDataCacheControllerインスタンスを生成します。
形式
public static FormatDataCacheController createFormatDataCacheController(java.lang.String groupName)
throws DataTransformException
引数
  • groupName
    グループ名を指定します。
戻り値
FormatDataCacheControllerインスタンスを返します。
例外
  • データ変換APIの処理中に内部エラーが発生した場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41000-E)をメッセージログに出力します。
  • メソッドの引数が不正の場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41001-E)をメッセージログに出力します。
  • プロパティの値が不正の場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41004-E)をメッセージログに出力します。
●getDataTransformer
指定されたグループ名に関連付けられているDataTransformerインスタンスを返します。
グループ名に関連付けられているインスタンスが存在しない場合は,新規に生成します。
形式
public static DataTransformer getDataTransformer(java.lang.String groupName)
throws DataTransformException
引数
  • groupName
    グループ名を指定します。
戻り値
DataTransformerインスタンスを返します。
例外
  • データ変換APIの処理中に内部エラーが発生した場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41000-E)をメッセージログに出力します。
  • メソッドの引数が不正の場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41001-E)をメッセージログに出力します。
  • プロパティの値が不正の場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41004-E)をメッセージログに出力します。
●removeDataTransformer
指定されたグループ名に関連付けられているDataTransformerインスタンスを削除します。インスタンスが存在しない場合は,削除処理をしません。
DataTransformerインスタンスを削除する前にDataTransformerインスタンスの停止処理が呼び出されます。
形式
 
public static boolean removeDataTransformer(java.lang.String groupName)
          throws DataTransformException
 
引数
  • groupName
    グループ名を指定します。
戻り値
インスタンスが削除された場合はtrueを返します。
例外
メソッドの引数が不正の場合,例外(DataTransformException)をスローし,エラーメッセージ(KDEC41001-E)をメッセージログに出力します。
(b) FormatDefinitionクラス

フォーマット定義およびデータ変換定義を格納するクラスです。

●クラス定義
 
public class FormatDefinition
extends java.lang.Object
 
説明
コンストラクタに次に示す情報を指定してください。
  • 定義ファイルの種別を表すFormatDataKind列挙型
    定義ファイルの種別は,データ変換処理,およびキャッシュのすべての処理で必要な情報です。
  • キャッシュ名
    次の処理で必要な情報です。
    ・データ変換
    ・キャッシュの登録
    ・キャッシュの削除
    ・キャッシュの存在確認
  • 定義ファイルのバイト配列
    データ変換処理とキャッシュの登録で使用します。

●コンストラクタ
FormatDefinitionクラスのコンストラクタを次の表に示します。

表11-9 FormatDefinitionクラスのコンストラクタ

コンストラクタ名 説明
FormatDefinition

(形式1)
FormatDefinitionインスタンスを生成し,定義情報の種別およびキャッシュ名を設定します。

(形式2)
FormatDefinitionインスタンスを生成し,定義情報の種別,キャッシュ名,および定義ファイルのバイト配列を設定します。
●FormatDefinition(形式1)
FormatDefinitionインスタンスを生成し,定義情報の種別およびキャッシュ名を設定します。
形式
 
public FormatDefinition(FormatDataKind formatDataKind,
                        java.lang.String cacheName)
 
引数
  • formatDataKind
    定義ファイルの種別を指定します。
  • cacheName
    定義ファイルのキャッシュ名を指定します。
●FormatDefinition(形式2)
FormatDefinitionインスタンスを生成し,定義情報の種別,キャッシュ名,および定義ファイルのバイト配列を設定します。
形式
 
public FormatDefinition(FormatDataKind formatDataKind,
                        java.lang.String cacheName,
                        byte[] definitionBytes)
 
引数
  • formatDataKind
    定義ファイルの種別を指定します。
  • cacheName
    定義ファイルのキャッシュ名を指定します。
  • definitionBytes
    定義ファイルのバイト配列を指定します。

●メソッド
FormatDefinitionクラスのメソッドを次の表に示します。

表11-10 FormatDefinitionクラスのメソッド

メソッド名 説明
getCacheName 定義ファイルのキャッシュ名を返します。
getDefinitionBytes 定義ファイルのバイト配列を返します。
getFormatDataKind 定義ファイルの種別をFormatDataKind列挙型で返します。
●getCacheName
定義ファイルのキャッシュ名を返します。
形式
 
public java.lang.String getCacheName()
 
戻り値
定義ファイルのキャッシュ名を返します。
●getDefinitionBytes
定義ファイルのバイト配列を返します。
形式
 
public byte[] getDefinitionBytes()
 
戻り値
定義ファイルのバイト配列を返します。
●getFormatDataKind
定義ファイルの種別をFormatDataKind列挙型で返します。
形式
 
public FormatDataKind getFormatDataKind()
 
戻り値
定義ファイルの種別を返します。

(4) 列挙型の詳細

(a) FormatDataKind

フォーマット定義およびデータ変換定義の種別を表す列挙型です。

●定義
 
public enum FormatDataKind
extends java.lang.Enum<FormatDataKind>
 

●定数
FormatDataKindの列挙型定数を次の表に示します。

表11-11 FormatDataKindの列挙型定数

定数名 説明
FDX バイナリフォーマット定義であることを表します。
XSD XML Schemaであることを表します。
XSLT XSLTスタイルシート(データ変換定義)であることを表します。
●FDX
バイナリフォーマット定義であることを表します。
形式
 
public static final FormatDataKind FDX
 
●XSD
XML Schemaであることを表します。
形式
 
public static final FormatDataKind XSD
 
●XSLT
XSLTスタイルシート(データ変換定義)であることを表します。
形式
 
public static final FormatDataKind XSLT
 

●メソッド
FormatDataKindのメソッドを次の表に示します。

表11-12 FormatDataKindのメソッド

メソッド名 説明
valueOf 指定した名前を持つこの型の列挙型定数を返します。
values この列挙型の定数を含む配列を宣言されている順序で返します。
●valueOf
指定した名前を持つこの型の列挙型定数を返します。
形式
 
public static FormatDataKind valueOf(java.lang.String name)
 
説明
文字列は,この型の列挙型定数を宣言するのに使用した識別子と正確に一致している必要があります(余分な空白文字を含めることはできません)。
引数
  • name
    返される列挙型定数の名前を指定します。
戻り値
指定した名前の列挙型定数を返します。
例外
  • この列挙型に指定した名前の定数がない場合,例外(java.lang.IllegalArgumentException)をスローします。
  • 引数がnullの場合,例外(java.lang.NullPointerException)をスローします。
●values
この列挙型の定数を含む配列を宣言されている順序で返します。
形式
public static FormatDataKind[] values()
説明
このメソッドは,次のようにして定数を反復するために使用できます。
 
for(FormatDataKind c: FormatDataKind.values())
  System.out.println(c);
 
戻り値
この列挙型の定数を含む,宣言されている順序での配列を返します。
例外
ありません。

(5) 例外クラスの詳細

(a) CacheNotFoundExceptionクラス

データ変換処理で,フォーマット定義およびデータ変換定義のキャッシュが見つからなかったことを通知する例外クラスです。

●クラス定義
 
public class CacheNotFoundException
extends java.lang.Exception
 

●コンストラクタ
CacheNotFoundExceptionクラスのコンストラクタを次の表に示します。

表11-13 CacheNotFoundExceptionクラスのコンストラクタ

コンストラクタ名 説明
CacheNotFoundException

(形式1)
空のCacheNotFoundExceptionインスタンスを生成します。

(形式2)
CacheNotFoundExceptionインスタンスを生成し,詳細メッセージを設定します。

(形式3)
CacheNotFoundExceptionインスタンスを生成し,詳細メッセージとキャッシュ名を設定します。
●CacheNotFoundException(形式1)
空のCacheNotFoundExceptionインスタンスを生成します。
形式
 
public CacheNotFoundException()
 
引数
ありません。
●CacheNotFoundException(形式2)
CacheNotFoundExceptionインスタンスを生成し,詳細メッセージを設定します。
形式
 
public CacheNotFoundException(java.lang.String s)
 
引数
  • s
    詳細メッセージを指定します。
●CacheNotFoundException(形式3)
CacheNotFoundExceptionインスタンスを生成し,詳細メッセージとキャッシュ名を設定します。
形式
 
public CacheNotFoundException(java.lang.String s,
          java.lang.String cacheName)
 
引数
  • s
    詳細メッセージを指定します。
  • cacheName
    定義ファイルのキャッシュ名を指定します。

●メソッド
CacheNotFoundExceptionクラスのメソッドを次の表に示します。

表11-14 CacheNotFoundExceptionクラスのメソッド

メソッド名 説明
getCacheName 定義ファイルのキャッシュ名を返します。
●getCacheName
定義ファイルのキャッシュ名を返します。
形式
 
public java.lang.String getCacheName()
 
戻り値
定義ファイルのキャッシュ名を返します。
(b) DataTransformExceptionクラス

データ変換APIの例外を扱うクラスです。

●クラス定義
 
public class DataTransformException
extends java.lang.Exception
 

●コンストラクタ
DataTransformExceptionクラスのコンストラクタを次の表に示します。

表11-15 DataTransformExceptionクラスのコンストラクタ

コンストラクタ名 説明
DataTransformException

(形式1)
空のDataTransformExceptionインスタンスを生成します。

(形式2)
DataTransformExceptionインスタンスを生成し,詳細メッセージを設定します。

(形式3)
DataTransformExceptionインスタンスを生成し,例外の原因となるクラスを設定します。

(形式4)
DataTransformExceptionインスタンスを生成し,詳細メッセージと例外の原因となるクラスを設定します。
●DataTransformException(形式1)
空のDataTransformExceptionインスタンスを生成します。
形式
 
public DataTransformException()
 
引数
ありません。
●DataTransformException(形式2)
DataTransformExceptionインスタンスを生成し,詳細メッセージを設定します。
形式
 
public DataTransformException(java.lang.String s)
 
引数
  • s
    詳細メッセージを指定します。
●DataTransformException(形式3)
DataTransformExceptionインスタンスを生成し,例外の原因となるクラスを設定します。
形式
 
public DataTransformException(java.lang.Throwable t)
 
引数
  • t
    例外の原因となるクラスを指定します。
●DataTransformException(形式4)
DataTransformExceptionインスタンスを生成し,詳細メッセージと例外の原因となるクラスを設定します。
形式
 
public DataTransformException(java.lang.String s,
                              java.lang.Throwable t)
 
引数
  • s
    詳細メッセージを指定します。
  • t
    例外の原因となるクラスを指定します。