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ユーザが定義した変換対象データで例外が発生した場合に発生します。