COBOL2002 Cosminexus連携機能ガイド


8.2.1 COBOLの各データ項目の設定方法と設定値

Javaのデータと受け渡しするCOBOLの各データ項目のsetter/getter規則を表8-3に示します。

表8‒3 各データ項目のsetter/getter規則

COBOLデータ項目

setter変換規則

getter変換規則

Javaデータ属性

英字項目

英数字項目

英数字編集項目

数字編集項目

日本語項目

日本語編集項目※4

1. String文字列をencodeオプション※1またはunicodeオプション※9に従って変換したバイト配列にする。

2. 1.の値の長さがCOBOLデータ項目長よりも長い場合は切り捨てられ,短い場合は半角空白が埋められる。

1. COBOLのデータ値をencodeオプション※1またはunicodeオプション※9に従って変換したStringオブジェクトを作成する。

文字列データ(String)

日本語項目

日本語編集項目※5

1. String文字列をencodeオプション※1またはunicodeオプション※9に従って変換したバイト配列にする。

2. 1.の値の長さがCOBOLデータ項目長よりも長い場合は切り捨てられ,短い場合はjapaneseオプション※3に従って全角空白または半角空白が埋められる。

1. COBOLのデータ値をencodeオプション※1またはunicodeオプション※9に従って変換したStringオブジェクトを作成する。

日本語データ(String)

英字項目

英数字項目

英数字編集項目

数字編集項目

日本語項目

日本語編集項目※4※6

集団項目※8

1. COBOLのデータ領域にbyte配列の値を無変換で設定する。Byte配列の長さが長い場合は切り捨てられ,短い場合はnull(0x00)が埋められる。

1. COBOLのデータ領域を無変換でbyte配列にする。

バイト配列データ(byte[])

英字項目

英数字項目

英数字編集項目

数字編集項目

日本語項目

日本語編集項目※4※6

次のデータに変換する。

[図データ]

全体長は可変で,

1. 長さを表すint(setterで指定された長さを設定)

2. データ自身を表すbyte配列

(配列長は,setterで指定された長さ)

(setterで指定されたデータを無変換で設定)

である。

1. 次に示すデータからbyte配列に変換する。

[図データ]

2. 先頭4バイトの長さ(1.)分のbyte配列に,データ自身(2.)を無変換でコピーする。

(*) 長さは,byte配列のlengthプロパティで取得する。

可変長データ(byte[])

アドレスデータ項目

次のデータに変換する。

[図データ]

全体長は可変で,

1. 長さを表すint(setterで指定された長さを設定)

2. データ自身を表すbyte配列

(配列長は,setterで指定された長さ)

(setterで指定されたデータを無変換で設定)

である。

1. 次に示すデータからbyte配列に変換する。

[図データ]

2. 先頭4バイトの長さ(1.)分のbyte配列に,データ自身(2.)を無変換でコピーする。

(*) 長さは,byte配列のlengthプロパティで取得する。

アドレスデータ(byte[])

単精度内部浮動項目

1. endianオプション※2に従ってデータの並び順を変更する。

1. endianオプション※2に従ってデータの並び順を変更する。

単精度データ(Float)

倍精度内部浮動項目

倍精度データ(Double)

1〜4けたの小数を含まない2進項目

1. endianオプション※2またはcomp5オプション※7に従ってデータの並び順を変更する。

1. endianオプション※2またはcomp5オプション※7に従ってデータの並び順を変更する。

Shortデータ(Short)

5〜9けたの小数を含まない2進項目

Integerデータ(Integer)

10〜18けたの小数を含まない2進項目

Longデータ(Long)

小数を含む2進項目

1. 小数点位置を合わせた2進データを作成する。

2. endianオプション※2に従ってデータの並び順を変更する。

1. endianオプション※2に従ってデータの並び順を変更する。

2. 小数点位置を合わせた数字データを作成する。

10進データ(BigDecimal)

外部10進

1. 符号を除いて,小数点位置を合わせた,数字データを作成する。

2. 独立符号であれば,空白/+/−のどれかを文字データに付加する。そうでなければ,符号付きで負の値の場合は,符号を含むバイト位置の先頭4ビットを0x7Xとする。

(*) 数値のけた数が項目のけた数よりも大きい場合,けた落ちが発生する。整数けたでは左端の数値から,小数けたでは右端の数値からけた落ちが発生する。

1. 独立符号であれば,空白/+/−のどれかから符号を決定する。そうでなければ,符号を含むバイト位置の先頭4ビットが0x3Xであれば正符号と,0x7Xであれば負符号とし,4ビットを0x3Xとする。

2. 符号も含めて,小数点位置を合わせた,数字データを作成する。

10進データ(BigDecimal)

内部10進

1. 符号を除いて,小数点位置を合わせた,内部10進項目の形式のデータを作成する。

(*) 数値のけた数が項目のけた数よりも大きい場合,けた落ちが発生する。整数けたでは左端の数値から,小数けたでは右端の数値からけた落ちが発生する。

(*) 内部10進項目は,1バイトで数字2けたを表現します。各けたは0〜9の数字で,最右端の4ビットで符号を表現する。

確保される領域長は,けた数から算出できる。

領域長=( けた数 / 2 ) + 1

(小数点以下は切り捨て)

偶数けた数の場合は,先頭の4ビットは0となる。

(*) 符号は次のように表現する。

  • 正符号:0xC (ビット値=1100)

  • 負符号:0xD (ビット値=1101)

  • 符号無:0xF (ビット値=1111)

符号なし内部10進項目に負の値を設定しようとすると,エラーになる。

1. 符号部分を取り出し,符号を決定する。符号付き内部10進項目の場合は,符号部分が‘+’/‘−’以外の場合はすべて‘+’とし,符号なし内部10進項目の場合は,常に‘+’とする。

2. 符号以外の数値を数字データにし,符号を付加する。

(*) 偶数けた数の場合は,先頭の4ビットは使用しない。

(*) 数字部分の値が0〜9以外の場合,値は保証しない。

10進データ(BigDecimal)

注※1

encodeオプションについては「5.4.4 encodeオプション」を参照してください。

注※2

endianオプションについては「5.4.5 endianオプション」を参照してください。

注※3

japaneseオプションについては「5.4.6 japaneseオプション」を参照してください。

注※4

「COBOLアクセス用Bean生成ツール−ステップ1/3」画面で「日本語項目を英数字項目として扱う」チェックボックスをオンにしてCOBOLアクセス用Beanを生成した場合,日本語項目および日本語編集項目は英数字項目と同じ扱いとなります。

注※5

「COBOLアクセス用Bean生成ツール−ステップ1/3」画面で「日本語項目を英数字項目として扱う。」チェックボックスをオフにしてCOBOLアクセス用Beanを生成した場合,日本語項目および日本語編集項目は日本語項目として扱います。

注※6

「COBOLアクセス用Bean生成ツール−ステップ2/3」画面でデータ属性フィールドを「バイト配列データ(byte[])」または「可変長データ(byte[])」に変更した場合,バイト配列データまたは可変長データとして扱います。

注※7

COBOLアクセス用Bean生成時にCOMP-5として扱うことを指定した2進項目の場合,comp5オプションに従います。comp5オプションについては,「5.4.2 comp5オプション」を参照してください。

注※8

COBOLアクセス用Bean生成時に「集団項目のバイト配列アクセスを使用する。」チェックボックスをオンにした場合,バイト配列データとして扱います。

注※9

unicodeオプションについては「5.4.8 unicodeオプション」を参照してください。