Class CobolModule

java.lang.Object
jp.osscons.opensourcecobol.libcobj.common.CobolModule

public class CobolModule extends Object
libcob/common.hのcob_moduleに対応するクラス
実行中のプログラム1つ分の実行時情報(照合順序、小数点文字、通貨記号、各種フラグ、 プログラムID、手続き部の引数など)を保持する。
CALLによる呼び出しの入れ子をモジュールスタックで管理し、現在実行中のモジュールを追跡する。
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    手続き部に渡された引数(USING句の引数)のリスト
    PROGRAM COLLATING SEQUENCEで指定された照合順序
    char
    通貨記号として用いる文字
    char
    小数点として用いる文字
    int
    符号の表示方法(DISPLAY SIGN)
    int
    2進数項目の桁あふれを切り捨てるかどうかのフラグ
    int
    ファイル名のマッピングを行うかどうかのフラグ
    int
    DISPLAY文の整形出力を行うかどうかのフラグ
  • Constructor Summary

    Constructors
    Constructor
    Description
    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)
    コンストラクタ
  • Method Summary

    Modifier and Type
    Method
    Description
    static int
    呼び出し元プログラムの名前(プログラムID)を指定された記憶領域へ書き込む。
    C$NARGなどの呼び出し元情報を取得する機能に相当する。
    現在実行中のモジュールを取得する。
    このスレッドで実行中のモジュールがない場合は、直近に実行を終えたモジュールを返す。
    static int
    現在実行中のモジュールにおける小数点文字を取得する。
    static int
    現在のスレッドのモジュールスタックの深さを返す。
    static boolean
    モジュールキューが空かどうか
    static void
    pop()
    モジュールスタックからモジュールを取り除く
    static void
    push(CobolModule module)
    モジュールスタックに追加する
    static void
    現在のスレッドに紐づくモジュールスタックを破棄する。実行単位の終了時に呼び出す。
    void
    このモジュールの手続き部の引数(USING句の引数)を設定する。
    既存の引数をすべて消去した上で、指定された引数で置き換える。
    void
    setProgramId(String programName)
    このモジュールのプログラムID(プログラム名)を設定する。

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • collating_sequence

      public CobolDataStorage 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_truncate
      2進数項目の桁あふれを切り捨てるかどうかのフラグ
    • flag_pretty_display

      public int flag_pretty_display
      DISPLAY文の整形出力を行うかどうかのフラグ
    • cob_procedure_parameters

      public List<AbstractCobolField> 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 STATUS
      cursorPos - 画面入出力時のカーソル位置
      displaySign - 符号の表示方法(DISPLAY SIGN)
      decimalPoint - 小数点として用いる文字
      currencySymbol - 通貨記号として用いる文字
      numericSeparator - 桁区切りとして用いる文字
      flagFilenameMapping - ファイル名のマッピングを行うかどうかのフラグ
      flagBinaryTruncate - 2進数項目の桁あふれを切り捨てるかどうかのフラグ
      flagPrettyDisplay - DISPLAY文の整形出力を行うかどうかのフラグ
      spare8 - 予約領域
      programId - プログラムID(プログラム名)
  • Method Details

    • getCurrentModule

      public static CobolModule getCurrentModule()
      現在実行中のモジュールを取得する。
      このスレッドで実行中のモジュールがない場合は、直近に実行を終えたモジュールを返す。
      Returns:
      現在実行中のモジュール。このスレッドでモジュールが一度も実行されていない場合はnull
    • push

      public static void push(CobolModule module)
      モジュールスタックに追加する
      Parameters:
      module - キューに追加するモジュール
    • pop

      public static void pop()
      モジュールスタックからモジュールを取り除く
    • getStackDepth

      public static int getStackDepth()
      現在のスレッドのモジュールスタックの深さを返す。
      Returns:
      スタックに積まれているモジュールの数
    • resetThreadState

      public static void resetThreadState()
      現在のスレッドに紐づくモジュールスタックを破棄する。実行単位の終了時に呼び出す。
    • calledBy

      public static int calledBy(CobolDataStorage data)
      呼び出し元プログラムの名前(プログラムID)を指定された記憶領域へ書き込む。
      C$NARGなどの呼び出し元情報を取得する機能に相当する。
      Parameters:
      data - 呼び出し元プログラム名の書き込み先となる記憶領域
      Returns:
      呼び出し元の情報を書き込んだ場合、または第1引数が存在しない場合は1、 呼び出し元が存在しない場合(空白を書き込んだ場合)は0、 呼び出し元のプログラムIDがnullの場合は-1
    • isQueueEmpty

      public static boolean isQueueEmpty()
      モジュールキューが空かどうか
      Returns:
      モジュールスタックが空の場合はtrue、そうでない場合はfalse
    • setProgramId

      public void setProgramId(String programName)
      このモジュールのプログラムID(プログラム名)を設定する。
      Parameters:
      programName - 設定するプログラム名
    • setParameters

      public void setParameters(AbstractCobolField... field)
      このモジュールの手続き部の引数(USING句の引数)を設定する。
      既存の引数をすべて消去した上で、指定された引数で置き換える。
      Parameters:
      field - 手続き部に渡す引数の並び
    • getDecimalPoint

      public static int getDecimalPoint()
      現在実行中のモジュールにおける小数点文字を取得する。
      Returns:
      現在のモジュールの小数点文字