パッケージ 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なしの値のみ                   値を出力

  機能分類
    画面表示
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

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

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

  - ### フィールドの概要

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

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

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

  - ### メソッドの概要

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッド | 説明
    --- | --- | ---
    `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を返しません