Class CobolModule
java.lang.Object
jp.osscons.opensourcecobol.libcobj.common.CobolModule
libcob/common.hのcob_moduleに対応するクラス
実行中のプログラム1つ分の実行時情報(照合順序、小数点文字、通貨記号、各種フラグ、 プログラムID、手続き部の引数など)を保持する。
CALLによる呼び出しの入れ子をモジュールスタックで管理し、現在実行中のモジュールを追跡する。
実行中のプログラム1つ分の実行時情報(照合順序、小数点文字、通貨記号、各種フラグ、 プログラムID、手続き部の引数など)を保持する。
CALLによる呼び出しの入れ子をモジュールスタックで管理し、現在実行中のモジュールを追跡する。
-
Field Summary
FieldsModifier and TypeFieldDescription手続き部に渡された引数(USING句の引数)のリストPROGRAM COLLATING SEQUENCEで指定された照合順序char通貨記号として用いる文字char小数点として用いる文字int符号の表示方法(DISPLAY SIGN)int2進数項目の桁あふれを切り捨てるかどうかのフラグintファイル名のマッピングを行うかどうかのフラグintDISPLAY文の整形出力を行うかどうかのフラグ -
Constructor Summary
ConstructorsConstructorDescriptionCobolModule(CobolModule next, CobolDataStorage collatingSequence, AbstractCobolField cutStatus, AbstractCobolField cursorPos, int displaySign, char decimalPoint, char currencySymbol, char numericSeparator, int flagFilenameMapping, int flagBinaryTruncate, int flagPrettyDisplay, int spare8, String programId) コンストラクタ -
Method Summary
Modifier and TypeMethodDescriptionstatic intcalledBy(CobolDataStorage data) 呼び出し元プログラムの名前(プログラムID)を指定された記憶領域へ書き込む。
C$NARGなどの呼び出し元情報を取得する機能に相当する。static CobolModule現在実行中のモジュールを取得する。
このスレッドで実行中のモジュールがない場合は、直近に実行を終えたモジュールを返す。static int現在実行中のモジュールにおける小数点文字を取得する。static int現在のスレッドのモジュールスタックの深さを返す。static booleanモジュールキューが空かどうかstatic voidpop()モジュールスタックからモジュールを取り除くstatic voidpush(CobolModule module) モジュールスタックに追加するstatic void現在のスレッドに紐づくモジュールスタックを破棄する。実行単位の終了時に呼び出す。voidsetParameters(AbstractCobolField... field) このモジュールの手続き部の引数(USING句の引数)を設定する。
既存の引数をすべて消去した上で、指定された引数で置き換える。voidsetProgramId(String programName) このモジュールのプログラムID(プログラム名)を設定する。
-
Field Details
-
collating_sequence
PROGRAM COLLATING SEQUENCEで指定された照合順序 -
display_sign
public int display_sign符号の表示方法(DISPLAY SIGN) -
decimal_point
public char decimal_point小数点として用いる文字 -
currency_symbol
public char currency_symbol通貨記号として用いる文字 -
flag_filename_mapping
public int flag_filename_mappingファイル名のマッピングを行うかどうかのフラグ -
flag_binary_truncate
public int flag_binary_truncate2進数項目の桁あふれを切り捨てるかどうかのフラグ -
flag_pretty_display
public int flag_pretty_displayDISPLAY文の整形出力を行うかどうかのフラグ -
cob_procedure_parameters
手続き部に渡された引数(USING句の引数)のリスト
-
-
Constructor Details
-
CobolModule
public CobolModule(CobolModule next, CobolDataStorage collatingSequence, AbstractCobolField cutStatus, AbstractCobolField cursorPos, int displaySign, char decimalPoint, char currencySymbol, char numericSeparator, int flagFilenameMapping, int flagBinaryTruncate, int flagPrettyDisplay, int spare8, String programId) コンストラクタ- Parameters:
next- スタック上の次の(呼び出し元の)モジュールcollatingSequence- PROGRAM COLLATING SEQUENCEで指定された照合順序cutStatus- 画面入出力時のCRT STATUScursorPos- 画面入出力時のカーソル位置displaySign- 符号の表示方法(DISPLAY SIGN)decimalPoint- 小数点として用いる文字currencySymbol- 通貨記号として用いる文字numericSeparator- 桁区切りとして用いる文字flagFilenameMapping- ファイル名のマッピングを行うかどうかのフラグflagBinaryTruncate- 2進数項目の桁あふれを切り捨てるかどうかのフラグflagPrettyDisplay- DISPLAY文の整形出力を行うかどうかのフラグspare8- 予約領域programId- プログラムID(プログラム名)
-
-
Method Details
-
getCurrentModule
現在実行中のモジュールを取得する。
このスレッドで実行中のモジュールがない場合は、直近に実行を終えたモジュールを返す。- Returns:
- 現在実行中のモジュール。このスレッドでモジュールが一度も実行されていない場合はnull
-
push
モジュールスタックに追加する- Parameters:
module- キューに追加するモジュール
-
pop
public static void pop()モジュールスタックからモジュールを取り除く -
getStackDepth
public static int getStackDepth()現在のスレッドのモジュールスタックの深さを返す。- Returns:
- スタックに積まれているモジュールの数
-
resetThreadState
public static void resetThreadState()現在のスレッドに紐づくモジュールスタックを破棄する。実行単位の終了時に呼び出す。 -
calledBy
呼び出し元プログラムの名前(プログラムID)を指定された記憶領域へ書き込む。
C$NARGなどの呼び出し元情報を取得する機能に相当する。- Parameters:
data- 呼び出し元プログラム名の書き込み先となる記憶領域- Returns:
- 呼び出し元の情報を書き込んだ場合、または第1引数が存在しない場合は1、 呼び出し元が存在しない場合(空白を書き込んだ場合)は0、 呼び出し元のプログラムIDがnullの場合は-1
-
isQueueEmpty
public static boolean isQueueEmpty()モジュールキューが空かどうか- Returns:
- モジュールスタックが空の場合はtrue、そうでない場合はfalse
-
setProgramId
このモジュールのプログラムID(プログラム名)を設定する。- Parameters:
programName- 設定するプログラム名
-
setParameters
このモジュールの手続き部の引数(USING句の引数)を設定する。
既存の引数をすべて消去した上で、指定された引数で置き換える。- Parameters:
field- 手続き部に渡す引数の並び
-
getDecimalPoint
public static int getDecimalPoint()現在実行中のモジュールにおける小数点文字を取得する。- Returns:
- 現在のモジュールの小数点文字
-