クライアントアプリケーションでは、以下のデータが利用できます。
bean生成ツールまたはCOBOL開発支援ツールから生成したbean
java.util.Mapインタフェース実装クラス
javax.resource.cci.MappedRecordインタフェース実装クラス
javax.resource.cci.IndexedRecordインタフェース実装クラス
ポイント
beanとMapとIndexedRecordでは、以下の違いがあります。MappedRecordの特性はMapと同様です。
データの種類 | Bean | Map | IndexedRecord |
---|---|---|---|
変換処理 | アプリケーション連携実行基盤で変換する必要がないため、処理効率は高くなります。 | アプリケーション連携実行基盤で変換処理が実行されます。 | アプリケーション連携実行基盤で変換処理が実行されます。 |
拡張性 | サーバアプリケーションのパラメタに変更があった場合に、再作成が必要です。 | サーバアプリケーションのパラメタに依存しないため、パラメタの増減に柔軟に対応できます。 | サーバアプリケーションのパラメタに変更があった場合に、再作成が必要です。 |
プログラム記述 | サーバアプリケーションのパラメタに合ったメソッドや型となるため、記述性が高くなります。 | サーバアプリケーションのパラメタ名を文字列で指定、参照時にキャストが必要など、記述性が低くなります。 | サーバアプリケーションのパラメタに合ったメソッドや型となるため、記述性が高くなります。 |
安全性 | サーバアプリケーションのパラメタに対応したメソッドを利用するため、パラメタ名の誤りはコンパイル時にチェックされます。 | サーバアプリケーションのパラメタ名の誤りや設定内容などをチェックすることはできません。 | サーバアプリケーションのパラメタ名の誤りや設定内容などをチェックすることはできません。 |
以降では、クライアントアプリケーションで用いるデータ型について説明します。
JavaクライアントAPIへ指定するサーバアプリケーションのデータは、beanの場合とMapの場合で異なります。IndexedRecordの場合はMapの場合とclass(構造体/集団項目)以外に同様です。以下にbeanの場合とMap、IndexedRecordの場合にそれぞれ指定可能なデータ型を示します。MappedRecordで利用可能な型はMapと同様です。
データ型識別 | クライアントアプリケーションで利用可能な型 | ||
---|---|---|---|
概要 | 詳細 | beanの場合 | Map、IndexedRecordの場合 |
整数型 | 8ビット符号付整数 | byte | java.lang.Byte |
16ビット符号付整数 | short | java.lang.Short | |
32ビット符号付整数 | int | java.lang.Integer | |
64ビット符号付整数 | long | java.lang.Long | |
非整数型 | 32ビット符号付浮動小数 | float | java.lang.Float |
64ビット符号付浮動小数 | double | java.lang.Double | |
真偽値 | boolean | java.lang.Boolean | |
文字列 | java.lang.String | java.lang.String | |
class(構造体/集団項目) | class(注1) | java.util.Map(Mapの場合) IndexedRecord (IndexedRecordの場合)(注8) | |
配列(注2)(注3)(注4) | XXX[](注5) | XXX[](注6) | |
バイナリ(注7) | byte[] | byte[] |
注1)classは、bean生成ツールまたはCOBOL開発支援ツールで生成されたクラスに限ります。
注2)バイナリの配列は使用できません。
注3)利用可能な最大次元数は5次元まで、設定可能な要素数は1~65535までです。多次元配列の各次元における配列要素数が異なる配列は指定できません。
注4)java.lang.Stringの配列以外で要素にnullを指定することはできません。
注5)配列は、「beanの場合」で示すデータ型に限ります。
注6)配列は、「Mapの場合」で示すデータ型に限ります。
注7)バイナリは、byte[]で表します。
注8)Mapの場合とIndexedRecordの場合、それぞれ混在して設定することができません。
備考.XXXには表で記載しているJavaデータ型が入ります。
クライアントで扱うデータの初期値は、Javaの仕様により設定されます。クライアントでデータが設定されなかった場合、サーバアプリケーションへ渡される値(初期値)は、以下のようになります。MappedRecordの場合はMapと同様です。IndexedRecordの場合、初期値が設定されないため、必ず値を設定してください。
クライアントのデータ型 | サーバで設定される初期値 | ||
---|---|---|---|
beanの場合 | Mapの場合 | データ型 | 初期値 |
java.lang.String | java.lang.String | char * | NULL |
Byte | java.lang.Byte | unsigned char | 0 |
Short | java.lang.Short | short | 0 |
Int | java.lang.Integer | int | 0 |
Long | java.lang.Long | long long | 0 |
Float | java.lang.Float | float | 0.0 |
Double | java.lang.Double | double | 0.0 |
boolean | java.lang.Boolean | unsigned char | 0 |
配列型 | 配列型 | 配列型 | NULL |
byte[] | byte[] | バイナリ | NULL |
bean | java.util.Map | 構造体 | NULL |
クライアントのデータ型 | サーバで設定される初期値 | ||||
---|---|---|---|---|---|
beanの場合 | Mapの場合 | データ型 | 初期値 | ||
未設定データの判定処理(なし) | 未設定データの判定処理(あり) | ||||
未設定データの初期化(ON) | 未設定データの初期化(OFF) | ||||
java.lang.String | java.lang.String | PIC X(n). | 不定 | n個の半角空白 | INVALID_MARKER |
PIC S9(1~18) | +000000000 (S9(9)のとき) | ||||
小数点付き数字データ | 00000 (9(4)V9(1)のとき) | ||||
byte | java.lang.Byte | 使用不可 | |||
short | java.lang.Short | PIC S9(1~4) COMP | +0 (S9(1)のとき) | ||
int | java.lang.Integer | PIC S9(5~9) COMP | +00000 (S9(5)のとき) | ||
long | java.lang.Long | PIC S9(10~18) COMP | +0000000000 (S9(10)のとき) | ||
float | java.lang.Float | COMP-1 | .00000000E 00 | ||
double | java.lang.Double | COMP-2 | .00000000000000000E 00 | ||
boolean | java.lang.Boolean | 使用不可 | |||
配列型 | 配列型 | OCCURS句付きの項目 | 不定 | 従属するデータ項目の初期値 | INVALID_MARKER |
byte[] | byte[] | バイナリ | 不定 | 長さゼロ | INVALID_MARKER |
bean | java.util.Map | 集団項目 | 不定 | 集団項目の初期値 | INVALID_MARKER |
注)数字項目をjava.lang.Stringとして利用する場合は、COBOL実行基盤インタフェースの生成時に、COBOL実行基盤インタフェースの形式として2進項目整数データをString型にマッピングするよう指定する必要があります。COBOL実行基盤インタフェースの形式の指定方法については、“14.4.5.3 COBOL実行基盤インタフェースを生成するアプリケーション情報の追加”の“■オプション情報”を参照してください。