パッケージ org.opengion.fukurou.model

# クラス Formatter

java.lang.Object
org.opengion.fukurou.model.Formatter

public class Formatter extends Object
[PN],[OYA] などの [] で指定されたカラムで表されたフォーマットデータに対して、 DataModel オブジェクトを適用して 各カラムに実データを割り当てるオブジェクトです。 カラム名には、特殊カラム名が使用できます。これは、DataModel に存在しないカラム名 ですが、値を返すことが出来ます。

     [KEY.カラム名] : 行番号付きカラム名
     [I]            : 行番号
     [J]            : 登録時の件数(1～)            7.3.1.3 (2021/03/09)
     [ROW.ID]       : 行毎のチェックボックスのID
     [ROW.JSON]     : 行毎の全データのJavaScriptオブジェクト形式 { key:val,key:val,... }
     カラムの前に修飾記号(#,$,!)を付けるとフォーマットを変更できます。
     ただし、FormatTextField 系 と FormatTable 系で、出力される形式が異なります。
                      FormatTextField 系               FormatTable 系
     [#カラム名]    : TDなしのラベルと入力フィールド   ラベルを出力
     [$カラム名]    : TDなしの入力フィールドのみ       レンデラーを出力
     [!カラム名]    : TDなしの値のみ                   値を出力

機能分類
  画面表示
導入されたバージョン:
  JDK5.0,

- ## ネストされたクラスの概要

  ネストされたクラス
  修飾子とタイプ
  クラス
  説明
  `static interface`
  `Formatter.TriFunction<V,T,P,R>`
  引数を3つ取る Function の 関数型インターフェースを定義します。

- ## フィールドの概要

  フィールド
  修飾子とタイプ
  フィールド
  説明
  `static final String`
  `JOINT_STRING`
  カラムID(連結文字列)行番号の連結文字列を定義 "__"
  `static final int`
  `NO_DISPLAY`
  特殊カラム名の定義: 非表示
  `static final String`
  `ROW_ID_KEY`
  テーブル表示のチェックボックスを特定する id の 名称( id は、この名称＋行番号) "cb"
  `static final int`
  `SYS_CNT`
  6.9.5.0 (2018/04/23) 特殊カラム名の定義: 行番号 [I]
  `static final int`
  `SYS_JSON`
  特殊カラム名の定義: [ROW.JSON]
  `static final int`
  `SYS_ROWNUM`
  6.9.5.0 (2018/04/23) 特殊カラム名の定義: 行番号 [I]

- ## コンストラクタの概要

  コンストラクタ
  コンストラクタ
  説明
  `Formatter(DataModel<?> model, String fmt)`
  データモデルとフォーマットを指定してフォーマッターを構築します。

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `String[]`
  `getClmKeys()`
  フォーマットのカラム名配列を返します。
  `int[]`
  `getClmNos()`
  フォーマットのカラム番号配列を返します。
  `String`
  `getClmParam(int ad)`
  フォーマットの指定の位置のカラムのパラメータを返します。
  `String[]`
  `getClmPrms()`
  フォーマットのカラムのパラメータ配列を返します。
  `String[]`
  `getFormat()`
  フォーマット配列を返します。
  `String`
  `getFormatString(int row)`
  指定の 行番号に対する、DataModel を元に作成したフォーマット文字列を返します。
  `String`
  `getFormatString(int row, String separator)`
  指定の 行番号に対する、DataModel を元に作成したフォーマット文字列を返します。
  `String`
  `getFormatString(int row, String separator, Formatter.TriFunction<String,Character,String,String> triFunc)`
  指定の 行番号に対する、DataModel を元に作成したフォーマット文字列を返します。
  `String`
  `getJson(int row)`
  行毎の全データのJavaScriptオブジェクト形式 を返します。
  `String`
  `getLineFormatString(DataModel<Object> model)`
  引数の DataModel を元に作成したフォーマット文字列を返します。
  `String`
  `getQueryFormatString()`
  先のフォーマット情報の［カラム名］を、クエスチョンマークに置き換えたフォーマットを返します。
  `char[]`
  `getType()`
  タイプ文字列配列を返します。
  `String`
  `getValue(int row, int clm)`
  column にあるセルの属性値をStringに変換して返します。

  ### クラスから継承されたメソッド java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## フィールド詳細

  - ### JOINT_STRING

    public static final String JOINT_STRING
    カラムID(連結文字列)行番号の連結文字列を定義 "__"
    関連項目:
      - 定数フィールド値

  - ### ROW_ID_KEY

    public static final String ROW_ID_KEY
    テーブル表示のチェックボックスを特定する id の 名称( id は、この名称＋行番号) "cb"
    関連項目:
      - 定数フィールド値

  - ### SYS_JSON

    public static final int SYS_JSON
    特殊カラム名の定義: [ROW.JSON]
    関連項目:
      - 定数フィールド値

  - ### SYS_ROWNUM

    public static final int SYS_ROWNUM
    6.9.5.0 (2018/04/23) 特殊カラム名の定義: 行番号 [I]
    関連項目:
      - 定数フィールド値

  - ### SYS_CNT

    public static final int SYS_CNT
    6.9.5.0 (2018/04/23) 特殊カラム名の定義: 行番号 [I]
    関連項目:
      - 定数フィールド値

  - ### NO_DISPLAY

    public static final int NO_DISPLAY
    特殊カラム名の定義: 非表示
    関連項目:
      - 定数フィールド値

- ## コンストラクタの詳細

  - ### Formatter

    public Formatter(DataModel<?> model, String fmt)
    データモデルとフォーマットを指定してフォーマッターを構築します。
    パラメータ:
      `model` - データモデル
      `fmt` - [カラム名]形式のフォーマットデータ
    変更履歴:
      6.4.3.4 (2016/03/11) Formatterに新しいコンストラクターを追加する。

- ## メソッドの詳細

  - ### getValue

    public String getValue(int row, int clm)
    column にあるセルの属性値をStringに変換して返します。 ここでは、[KEY.カラム名] , [I] , [J] , [ROW.ID] は同じ値(row)を返します。
    パラメータ:
      `row` - 処理中の行番号
      `clm` - 値が参照されるカラム番号
    戻り値:
      指定されたセルの値
    変更履歴:
      6.4.3.2 (2016/02/19) 値が null の場合は、ゼロ文字列を設定する。, 7.3.1.3 (2021/03/09) [J] で、登録件数(1～) を表現する。

  - ### getFormatString

    public String getFormatString(int row)
    指定の 行番号に対する、DataModel を元に作成したフォーマット文字列を返します。
    パラメータ:
      `row` - 行番号( [I]フォーマット処理用 )
    戻り値:
      指定のObject配列を元に作成したフォーマット文字列
    変更履歴:
      7.2.9.0 (2020/10/12) type(#,$,!)を考慮した関数型I/F対応
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getFormatString

    public String getFormatString(int row, String separator)
    指定の 行番号に対する、DataModel を元に作成したフォーマット文字列を返します。 データはseparatorで指定された区切り文字で囲まれて返されます。
    パラメータ:
      `row` - 行番号( [I]フォーマット処理用 )
      `separator` - セパレーター
    戻り値:
      指定のObject配列を元に作成したフォーマット文字列
    変更履歴:
      7.2.9.0 (2020/10/12) type(#,$,!)を考慮した関数型I/F対応
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getFormatString

    public String getFormatString(int row, String separator, Formatter.TriFunction<String,Character,String,String> triFunc)
    指定の 行番号に対する、DataModel を元に作成したフォーマット文字列を返します。 データはseparatorで指定された区切り文字で囲まれて返されます。 ここでは、[KEY.カラム名] , [I] , [J] , [ROW.ID] は同じ値(row)を返します。
    パラメータ:
      `row` - 行番号( [I]フォーマット処理用 )
      `separator` - セパレーター
      `triFunc` - TriFunction関数
    戻り値:
      内部のDataModelを元に作成したフォーマット文字列
    変更履歴:
      4.3.1.1 (2008/08/23) switch に、default label が存在しないため、追加, 6.4.3.2 (2016/02/19) 値が null の場合は、ゼロ文字列を設定する。, 7.2.9.0 (2020/10/12) type(#,$,!)を考慮した関数型I/F対応, 7.3.1.3 (2021/03/09) [J] で、登録件数(1～) を表現する。
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getLineFormatString

    public String getLineFormatString(DataModel<Object> model)
    引数の DataModel を元に作成したフォーマット文字列を返します。 これは、簡易処理で、DataModel オブジェクトは、実質的には、LineModel です。 パッケージの関連から、引数が、DataModel オブジェクトになっています。
    パラメータ:
      `model` - DataModelオブジェクト(実質的には、LineModelオブジェクト)
    戻り値:
      引数のDataModelを元に作成したフォーマット文字列
    変更履歴:
      6.3.2.0 (2015/07/10) LineModelで、Formatter処理できるように、対応します。
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getQueryFormatString

    public String getQueryFormatString()
    先のフォーマット情報の［カラム名］を、クエスチョンマークに置き換えたフォーマットを返します。 これは、java.sql.PreparedStatement 形式のQuery文字列を合成する場合に使用します。
    戻り値:
      PreparedStatement形式のQuery文字列
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getClmKeys

    public String[] getClmKeys()
    フォーマットのカラム名配列を返します。
    戻り値:
      フォーマットのカラム名配列
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getClmPrms

    public String[] getClmPrms()
    フォーマットのカラムのパラメータ配列を返します。 [#XXX] 、[$XXX]、[!XXX] で、カラムオブジェクトに渡すパラメータを、[$XXX param]形式で 指定できます。param 部分を、カラム配列と関連付けて、返します。 未設定のパラメータは、null が設定されています。
    戻り値:
      フォーマットのパラメータ名配列
    変更履歴:
      6.8.3.1 (2017/12/01) [$XXXX param] で、RendererValueのパラメータを動的に変更できます。
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getClmParam

    public String getClmParam(int ad)
    フォーマットの指定の位置のカラムのパラメータを返します。 [#XXX] 、[$XXX]、[!XXX] で、カラムオブジェクトに渡すパラメータを、[$XXX param]形式で 指定できます。param 部分を、カラム番号を指定することで、返します。 未設定のパラメータは、null が設定されています。
    パラメータ:
      `ad` - パラメータのアドレス(カラムと同じ位置)
    戻り値:
      フォーマットのパラメータ
    変更履歴:
      6.8.3.1 (2017/12/01) [$XXXX param] で、RendererValueのパラメータを動的に変更できます。
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getClmNos

    public int[] getClmNos()
    フォーマットのカラム番号配列を返します。
    戻り値:
      フォーマットのカラム番号配列
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getFormat

    public String[] getFormat()
    フォーマット配列を返します。
    戻り値:
      フォーマット配列
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getType

    public char[] getType()
    タイプ文字列配列を返します。 タイプとは、[XXX] の記述で、[#XXX] は、XXXカラムのラベルを、[$XXX]は、XXXカラムの レンデラーを、[!XXX] は、値のみ取り出す指定を行います。 主に、TextField系のフォーマットとTable系では、意味合いが異なりますので、 ご注意ください。
    戻り値:
      タイプ文字列配列 '#':ラベルのみ '$':レンデラー '!':値のみ その他:通常
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getJson

    public String getJson(int row)
    行毎の全データのJavaScriptオブジェクト形式 を返します。 JavaScriptオブジェクト形式とは、{ key:val,key:val,... }の形式で、 ここでは、内部設定された DataModel のすべてのカラム名をキーに、 引数で渡された 配列を 値として使用します。
    パラメータ:
      `row` - (DataModelの)行番号
    戻り値:
      指定の行番号に対応する全データのJSON形式データ
    変更履歴:
      6.4.3.2 (2016/02/19) 値が null の場合は、ゼロ文字列を設定する。
    このﾒｿｯﾄﾞは、nullを返しません