Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 プログラミング・ガイド


Java 配列の取り扱い

COBOL プログラムで配列を表すには、その配列の Java タイプに対応するデータ・タイプの単一基本項目が含まれているグループ項目をコーディングします。 その配列に適した OCCURS または OCCURS DEPENDING ON 節を指定します。

例えば、次のコードは、jlongArray オブジェクトから 500 以下の整数値を受け取る構造を指定します。

01  longArray.
    02 X pic S9(10) comp-5 occurs 1 to 500 times depending on N.

特殊な Java 配列クラスのオブジェクトを操作するには、JNI が提供する サービスを呼び出します。サービスを使用して、配列の個々のエレメントにアクセスして設定し、呼び出したサービスを使用して、以下を行います。

表 1. JNI 配列サービス
サービス 入力引数 戻り値 目的
GetArrayLength
  • JNI 環境ポインター
  • 配列オブジェクトの参照
2 進数フルワード整数としての配列の長さ Java 配列オブジェクト内のエレメント数を取得する
NewBooleanArray、 NewByteArray、 NewCharArray、 NewShortArray、 NewIntArray、 NewLongArray
  • JNI 環境ポインター
  • 2 進数フルワード整数としての、配列内のエレメントの数
配列オブジェクトの参照、または配列を構成できない場合は NULL 新しい Java 配列オブジェクトを作成する
GetBooleanArrayElements、 GetByteArrayElements、 GetCharArrayElements、 GetShortArrayElements、 GetIntArrayElements、 GetLongArrayElements
  • JNI 環境ポインター
  • 配列オブジェクトの参照
  • ブール項目へのポインター ポインターが NULL でない場合は、配列エレメントのコピーが作成されたときは、ブール項目は true に設定される。コピーが作成された場合、変更を配列オブジェクトに書き戻す必要がある場合は、対応する ReleasexxxArrayElements サービスを呼び出さなければならない。
ストレージ・バッファーへのポインター 配列エレメントを Java 配列からストレージ・バッファーに 抽出する。サービスにより、ポインターがストレージ・バッファーに戻される。ポインターは、LINKAGE SECTION に定義される COBOL グループ・データ項目のアドレスとして使用することができる。
ReleaseBooleanArrayElements、 ReleaseByteArrayElements、 ReleaseCharArrayElements、 ReleaseShortArrayElements、 ReleaseIntArrayElements、 ReleaseLongArrayElements
  • JNI 環境ポインター
  • 配列オブジェクトの参照
  • ストレージ・バッファーへのポインター
  • 2 進数フルワード整数としてのリリース・モード。詳細については、Java JNI の資料を参照。 (推奨: 配列の内容をコピーして戻し、ストレージ・バッファーを解放するには、0 を指定する。)
なし。配列のストレージは解放される。 Java 配列から抽出したエレメントが含まれているストレージ・バッファーを 解放し、条件によっては、更新された配列値を配列オブジェクトにマップして戻す。
NewObjectArray
  • JNI 環境ポインター
  • 2 進数フルワード整数としての、配列内のエレメントの数
  • 配列エレメント・クラスに対するオブジェクト参照
  • 最初のエレメント値に対するオブジェクト参照。すべての配列エレメントにはこの値が設定されます。
配列オブジェクトの参照、または配列を構成できない場合は NULL1 新しい Java オブジェクト配列を作成する。
GetObjectArrayElement
  • JNI 環境ポインター
  • 配列オブジェクトの参照
  • 2 進数フルワード整数としての、起点 0 の配列エレメント索引
オブジェクト参照 2 オブジェクト配列内の特定の索引のエレメントを返す。
SetObjectArrayElement
  • JNI 環境ポインター
  • 配列オブジェクトの参照
  • 2 進数フルワード整数としての、起点 0 の配列エレメント索引
  • 新しい値に対するオブジェクト参照
なし 3 オブジェクト配列内のエレメントを設定する。
  1. システムがメモリー不足の場合、NewObjectArray は例外を throw します。
  2. 索引が有効でない場合、GetObjectArrayElement は例外を throw します。
  3. 索引が有効でない場合、または新しい値が配列のエレメント・クラスのサブクラスでない場合、SetObjectArrayElement は例外を throw します。

ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)