uCosminexus Interschema ユーザーズガイド

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

10.2.5 TranslateDataクラス

ここでは,TranslateDataクラスの仕様について説明します。

<この項の構成>
(1) TranslateDataクラスの概要
(2) メソッドの詳細

(1) TranslateDataクラスの概要

継承
java.lang.Object
|
+-- jp.co.Hitachi.soft.interschema2.TranslateData

 

直系の既知のサブクラス
FileData,StringData,InputStreamData,OutputStreamData

形式
public abstract class TranslateData
extends java.lang.Object

 

説明
変換対象データの抽象クラスを定義します。変換対象データは,フォーマット名,フォーマット名に対応するデータオブジェクト,データエリア初期サイズ,及びデータエリア増分サイズを持ちます。Translatorクラスのexecメソッドを実行する際に,このクラスを指定して変換を行います。
フォーマット名には,変換対象となるFDLのフォーマット名又はDTDのルート要素名が指定されます。
データオブジェクトには,フォーマット名に対応する固有のデータを表現したJavaオブジェクトが指定されます。
データエリア初期サイズ及びデータエリア増分サイズは,変換時に確保するデータエリアのサイズを指定する場合に設定します。
これらの値は,変換対象データが出力データとして指定された場合だけ有効です。
ユーザは,このクラスを拡張して独自の変換対象データを定義することで,任意の形式のデータオブジェクトを変換することができます。ユーザ独自の変換対象データの定義については,「10.4(2) サンプルコード(TranslateData派生クラス)」を参照してください。
また,toByteArrayメソッド及びtoDataObjectメソッドを実装する場合,エラーを報告するときは,必ずUserException又はその派生クラスの例外をスローしてください。それ以外の例外をスローしたときは,Interschemaは予期しないエラーとして処理します。

メソッドの概要
形式 機能
public final String getFormatName() 現在のフォーマット名を取得します。
public final void setFormatName(String formatName) 指定されたフォーマット名を設定します。
public final Object getDataObject() 現在のデータオブジェクトを取得します。
public final void setDataObject(Object data) 指定されたデータオブジェクトを設定します。
public final int getMemoryInitSize() 現在の出力データエリア初期サイズを取得します。
public inal void setMemoryInitSize(int initSize) 指定された出力データエリア初期サイズを設定します。
public final init getMemoryIncrementSize() 現在の出力データエリア増分サイズを取得します。
public final void setMemoryIncrementSize(int incrementSize) 指定のされた出力データエリア増分サイズを設定します。
protected abstract byte[] toByteArray(Object obj) 指定されたデータオブジェクトをバイト列に変換します。
protected abstract Object toDataObject(byte[] byteData) 指定されたバイト列をデータオブジェクトに変換します。

(2) メソッドの詳細

(a) getFormatName

形式
public final String getFormatName()

 

引数
なし

説明
現在のフォーマット名を取得します。

戻り値
フォーマット名が返されます。
(b) setFormatName

形式
public final void setFormatName(String formatName)

 

引数
引数 内容
formatName フォーマット名を指定します。

説明
指定されたフォーマット名を設定します。

戻り値
なし
(c) getDataObject

形式
public final Object getDataObject()

 

引数
なし

説明
現在のデータオブジェクトを取得します。

戻り値
変換対象フォーマットデータを返します。
(d) setDataObject

形式
public final void setDataObject(Object data)

 

引数
引数 内容
data データオブジェクトを指定します。

説明
指定されたデータオブジェクトを設定します。

戻り値
なし
(e) getMemoryInitSize

形式
public final int getMemoryInitSize()

 

引数
なし

説明
現在の出力データエリア初期サイズを取得します。

戻り値
出力データエリア初期サイズが返されます。
(f) setMemoryInitSize

形式
public final void setMemoryInitSize(int initSize)

 

引数
引数 内容
initSize 出力データエリア初期サイズを指定します。

説明
指定された出力データエリア初期サイズを設定します。
この値に0が設定された場合は,システム情報ファイル「ettrans.ini」内の[MemoryData]セクションで定義された値を使用します。システム情報ファイル「ettrans.ini」に定義がない場合は,1024バイトを仮定します。

戻り値
なし
(g) getMemoryIncrementSize

形式
public final int getMemoryIncrementSize()

 

引数
なし

説明
現在の出力データエリア増分サイズを取得します。

戻り値
出力データエリア増分サイズを指定します。
(h) setMemoryIncrementSize

形式
public final void setMemoryIncrementSize(int incrementSize)

 

引数
引数 内容
incrementSize 出力データエリア増分サイズを指定します。

説明
指定された出力データエリア増分サイズを設定します。
この値に0が設定された場合は,システム情報ファイル「ettrans.ini」内の[MemoryData]セクションで定義された値を使用します。システム情報ファイル「ettrans.ini」に定義がない場合は,1024バイトを仮定します。

戻り値
なし
(i) toByteArray

形式
protected abstract byte[] toByteArray(Object obj)
    throws TranslatorException, UserException

 

引数
引数 内容
obj データオブジェクトを指定します。

説明
指定されたデータオブジェクトをバイト列に変換します。このメソッドは抽象メソッドであるため,サブクラスは必ずこのメソッドを実装する必要があります。サブクラス固有のデータオブジェクトをバイト列に変換する方法を実装しています。通常は,「任意のデータオブジェクトxについて,x.equals(toDataObject(toByteArray(x))がtrueを返す」という要件を満たすように実装します。

戻り値
データオブジェクトのバイト列が返されます。

例外
例外 内容
TranslatorException データオブジェクトのバイト列への変換に失敗した場合に発生します。
UserException ユーザが定義した変換対象データで例外が発生した場合に発生します。
(j) toDataObject

形式
protected abstract Object toDataObject ( byte[] byteData )
    throws TranslatorException, UserException

 

引数
引数 内容
byteData データオブジェクトのバイト列を指定します。

説明
指定されたバイト列をデータオブジェクトに変換します。このメソッドは抽象メソッドであるため,サブクラスは必ずこのメソッドを実装する必要があります。バイト列をサブクラス固有のデータオブジェクトに変換する方法を実装します。通常は,「任意の変換対象フォーマットデータxについて,x.equals(toDataObject(toByteArray(x))がtrueを返す」という要件を満たすように実装します。

戻り値
データオブジェクトが返されます。

例外
例外 内容
TranslatorException バイト列のデータオブジェクトへの変換に失敗した場合に発生します。
UserException ユーザが定義した変換対象データで例外が発生した場合に発生します。