パッケージ org.opengion.hayabusa.html

# クラス TableFormatter

java.lang.Object
org.opengion.hayabusa.html.TableFormatter

public class TableFormatter extends Object
[PN],[OYA] などの [] で指定されたカラムで表されたフォーマットデータに対して、 DBTableModelオブジェクトを適用して 各カラムに実データを割り当てるオブジェクトです。 特に、[XXXX]に対して、[#XXXX]、[$XXXX]、[!XXXX]などの特殊記号が使用できます。 特殊記号の解釈は、HTMLFormatTextField系とHTMLFormatTable系で異なりますので ご注意ください。 '#':ラベルのみ '$':レンデラー '!':値のみ

変更履歴:
  3.5.4.0 (2003/11/25) 新規追加
機能分類
  画面表示
導入されたバージョン:
  JDK5.0,

- ## フィールドの概要

  フィールド
  修飾子とタイプ
  フィールド
  説明
  `static final String`
  `HYBS_ITD_MARKER`
  フォーマットタイプの指定の特殊なマーク "h_itd_marker"

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

  コンストラクタ
  コンストラクタ
  説明
  `TableFormatter()`
  デフォルトコンストラクター

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `String`
  `getFormat()`
  フォーマットを取得します。
  `String`
  `getFormat(int no)`
  フォーマット文字列を返します。
  `FormatterType`
  `getFormatType()`
  このフォーマットのタイプを返します。
  `String`
  `getItdBody()`
  itdフォーマット文字列を取得します。
  `int`
  `getLocation(int no)`
  カラムのロケーション番号を返します。
  `int`
  `getLocationSize()`
  ロケーション番号のサイズを返します。
  `IntStream`
  `getLocationStream()`
  カラムのロケーション番号をIntStreamで返します。
  `String`
  `getRowspan()`
  設定された rowspan を返します。
  `String`
  `getSystemFormat(int row, int loc)`
  システムフォーマット文字列を返します。
  `String`
  `getTrTag()`
  設定された フォーマットの trタグを返します。
  `char`
  `getType(int no)`
  タイプ文字列を返します。
  `boolean`
  `isNoClass()`
  カラムのクラス名(X,S9 など)のセットを行うかどうか取得します。
  `boolean`
  `isUse(int row, DBTableModel table)`
  このフォーマットを使用するかどうかの問い合わせを返します。
  `void`
  `makeFormat(DBTableModel table)`
  DBTableModelを利用して、フォーマットデータを初期化します。
  `void`
  `setFormat(String fmt)`
  フォーマットをセットします。
  `void`
  `setFormat(String fmt, boolean flag)`
  フォーマットをセットします。
  `void`
  `setFormatType(FormatterType ftype)`
  テーブルフォーマットのタイプを指定します。
  `void`
  `setItdBody(String itd)`
  itdフォーマット文字列を設定します。
  `void`
  `setKeyBreakClm(String kclm)`
  ここで指定したカラムの値が、キーブレイクした場合、このタグを使用します。
  `void`
  `setNoClass(String flag)`
  カラムのクラス名(X,S9 など)のセットを行うかどうか指定します。
  `protected void`
  `setNoDisplay(int no)`
  指定のロケーション番号の値をクリアします。
  `void`
  `setRowspan(String rowspan)`
  テーブルの rowspan 属性をセットします。
  `void`
  `setUsableKey(String key)`
  フォーマットの使用可否を判断するキーとなるカラム名を指定します。
  `void`
  `setUsableList(String list)`
  フォーマットの使用可否を判断する文字列リストを指定します。

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

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

- ## フィールド詳細

  - ### HYBS_ITD_MARKER

    public static final String HYBS_ITD_MARKER
    フォーマットタイプの指定の特殊なマーク "h_itd_marker"
    関連項目:
      - 定数フィールド値

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

  - ### TableFormatter

    public TableFormatter()
    デフォルトコンストラクター
    変更履歴:
      6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

- ## メソッドの詳細

  - ### setFormat

    public void setFormat(String fmt, boolean flag)
    フォーマットをセットします。 フォーマットに、<table>を含む場合、TextField扱いなので、フォーマット分割 しません。table を含まず、tr を含む場合は、１行分のデータとして扱う為、 trTag を求めます。 trTag と format との間に、行ヘッダーが入ります。 Tomcat6では、JSPのパース時に、tabやspaceはそのままパースされるため、</td>前 のスペース削除処理も行います。
    パラメータ:
      `fmt` - [カラム名] 形式のフォーマットデータ
      `flag` - falseにすると先頭のtrタグを取る処理を行いません(5.5.0.3)
    変更履歴:
      4.3.2.0 (2008/09/10) </td>前のスペースを取り消します。, 5.5.0.3 (2012/03/13) <tr>を取らないフラグ追加

  - ### setFormat

    public void setFormat(String fmt)
    フォーマットをセットします。 フォーマットに、<table>を含む場合、TextField扱いなので、フォーマット分割 しません。table を含まず、tr を含む場合は、１行分のデータとして扱う為、 trTag を求めます。 trTag と format との間に、行ヘッダーが入ります。 Tomcat6では、JSPのパース時に、tabやspaceはそのままパースされるため、</td>前 のスペース削除処理も行います。
    パラメータ:
      `fmt` - [カラム名] 形式のフォーマットデータ
    変更履歴:
      5.5.0.3 (2012/03/13) 引数追加につき。

  - ### getFormat

    public String getFormat()
    フォーマットを取得します。
    戻り値:
      フォーマットデータ
    変更履歴:
      3.5.5.8 (2004/05/20) 新規追加, 5.1.7.0 (2010/06/01) サニタイズ戻し処理("\\]\\"から"["に戻し)を追加

  - ### makeFormat

    public void makeFormat(DBTableModel table)
    DBTableModelを利用して、フォーマットデータを初期化します。
    パラメータ:
      `table` - DBTableModelオブジェクト
    変更履歴:
      3.5.5.0 (2004/03/12) [KEY.カラム名] 機能追加, 3.5.5.2 (2004/04/02) [I] で、行番号を作成します。, 3.5.6.0 (2004/06/18) '!' 値のみ 追加 既存の '$' は、レンデラー, 3.6.0.0 (2004/09/17) [ROW.ID] で、行毎のチェックボックスのIDを返します。, 5.1.7.0 (2010/06/01) サニタイズ戻し処理("\\]\\"から"["に戻し)を追加, 5.7.6.3 (2014/05/23) キーブレイクをチェックする keyBreakClm 属性追加, 6.4.3.4 (2016/03/11) Formatterに新しいコンストラクターを追加する。

  - ### setFormatType

    public void setFormatType(FormatterType ftype)
    テーブルフォーマットのタイプを指定します。 enum FormatterType で、指定します。
    パラメータ:
      `ftype` - フォーマットのタイプ
    変更履歴:
      4.0.0.0 (2007/05/02) enum 定義に変更

  - ### getFormatType

    public FormatterType getFormatType()
    このフォーマットのタイプを返します。 このフォーマットのタイプを返します。
    戻り値:
      このフォーマットのタイプを返します。
    変更履歴:
      4.0.0.0 (2007/05/02) enum 定義に変更

  - ### setRowspan

    public void setRowspan(String rowspan)
    テーブルの rowspan 属性をセットします。 rowspan は、ヘッダー部のフォーマットの行数です。初期値は ２行 です。 設定は、"2" などの、数字部のみをセットします。
    パラメータ:
      `rowspan` - 属性

  - ### getRowspan

    public String getRowspan()
    設定された rowspan を返します。 これは、フォーマットの段組の数を取り出します。 文字列としては、rowspan="2" という形で取り出します。
    戻り値:
      フォーマット文字列

  - ### getLocationSize

    public int getLocationSize()
    ロケーション番号のサイズを返します。 フォーム位置番号は、0 から getLocationSize()-1 までの数字を指定します。 ロケーションサイズは、aaa[ABC]bbb[DEF]ccc[GHI]ddd となっている場合、 aaa , bbb , ccc , ddd は、フォーマットで、サイズは４。 ABC , DEF , GHI に対応するカラム番号がロケーションで、サイズは３。 このメソッドで返すのは、ロケーション番号(３)の方です。
    戻り値:
      ロケーション番号のサイズ
    変更履歴:
      6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)

  - ### getLocation

    public int getLocation(int no)
    カラムのロケーション番号を返します。 引数は、0 から、getLocationSize()-1 までの数で指定します。 指定の位置の、フォーマットのカラム名に対応するロケーション番号 を返します。
    パラメータ:
      `no` - フォーム位置番号
    戻り値:
      ロケーション番号
    変更履歴:
      6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)

  - ### getLocationStream

    public IntStream getLocationStream()
    カラムのロケーション番号をIntStreamで返します。 指定の位置の、フォーマットのカラム名に対応するロケーション番号のIntStreamです。
    戻り値:
      内部のLocation配列を、IntStreamで返します。
    変更履歴:
      6.4.3.4 (2016/03/11) 内部のLocation配列を、IntStreamで返します。

  - ### setNoDisplay

    protected void setNoDisplay(int no)
    指定のロケーション番号の値をクリアします。 ただし、直前のフォーマットに、td タグが存在する場合は、 style="display:none;" を設定することで、td タグそのものが 無くなります。 その場合、段組みなどのレイアウトを行っていると、フォーマットが 崩れますので、十分ご確認ください。 また、同一 td 内に複数のカラムを指定した場合は、tdタグ内のすべての カラムが消えます。 td タグが存在しない場合は、非表示というより、データを空に するだけになります。
    パラメータ:
      `no` - フォーム位置番号
    変更履歴:
      6.2.0.0 (2015/02/27) フォーマット系の noDisplay 対応, 6.2.0.1 (2015/03/06) 非表示のマーカーに、Formatter#NO_DISPLAY を使用する。, 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)

  - ### getFormat

    public String getFormat(int no)
    フォーマット文字列を返します。 引数は、0 から、getLocationSize() までの数で指定します。 指定のフォーマットが、aaa[ABC]bbb[DEF]ccc[GHI]ddd となっている場合、 aaa , bbb , ccc , ddd を引数 0 , 1 , 2 , 3 で返します。
    パラメータ:
      `no` - フォーム位置番号
    戻り値:
      フォーマット文字列
    変更履歴:
      6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)

  - ### getSystemFormat

    public String getSystemFormat(int row, int loc)
    システムフォーマット文字列を返します。 システムフォーマット文字列は、[KEY.カラム名] などの特殊記号で指定された カラム名の事で、location には、マイナスの値が設定されます。 マイナスの値に応じて、処理を変えることが出来ます。 [KEY.カラム名] : 行番号付きカラム名 [I] : 行番号 [J] : 登録数 7.3.1.3 (2021/03/09) ※ ただし、ここでは登録件数が判らないため、行番号を返しておきます。 [ROW.ID] : 行毎のチェックボックスのID [ROW.JSON] : 行毎の全データのJavaScriptオブジェクト形式
    パラメータ:
      `row` - 行番号
      `loc` - 位置番号
    戻り値:
      フォーマット文字列
    変更履歴:
      3.5.5.0 (2004/03/12) [KEY.カラム名] 機能追加, 3.5.5.2 (2004/04/02) [I] で、行番号を作成します。, 3.6.0.0 (2004/09/17) [ROW.ID] で、行毎のチェックボックスのIDを返します。, 4.0.0.0 (2007/05/02) Formatter を使用するように変更, 6.2.0.1 (2015/03/06) 非表示のマーカーに、Formatter#NO_DISPLAY を使用する。, 6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs), 7.3.1.3 (2021/03/09) [J] で、登録件数(1～) を表現する。
    このﾒｿｯﾄﾞは、nullを返しません

  - ### getType

    public char getType(int no)
    タイプ文字列を返します。 タイプとは、[XXX] の記述で、[#XXX] は、XXXカラムのラベルを、[$XXX]は、XXXカラムの レンデラーを、[!XXX} は、値のみ取り出す指定を行います。 主に、TextField系のフォーマットとTable系では、意味合いが異なりますので、 ご注意ください。
    パラメータ:
      `no` - フォーム位置番号
    戻り値:
      タイプ文字列 '#':ラベルのみ '$':レンデラー '!':値のみ その他:通常
    変更履歴:
      6.3.9.0 (2015/11/06) コンストラクタで初期化されていないフィールドを null チェックなしで利用している(findbugs)

  - ### getTrTag

    public String getTrTag()
    設定された フォーマットの trタグを返します。 これは、trタグにclass属性他の設定がされていた場合に、変換後の 文字列にも反映させる為に必要です。
    戻り値:
      フォーマットの trタグ
    変更履歴:
      5.1.7.0 (2010/06/01) サニタイズ戻し処理("\\]\\"から"["に戻し)を追加
    このﾒｿｯﾄﾞは、nullを返しません

  - ### setNoClass

    public void setNoClass(String flag)
    カラムのクラス名(X,S9 など)のセットを行うかどうか指定します。 "true" で、クラス属性を設定しません。これは、ＣＳＳファイルに書かれている属性を 使用しないことを意味します。 初期値は、"false" です。
    パラメータ:
      `flag` - クラス名使用の有無(true:使用しない/false:使用する。)

  - ### isNoClass

    public boolean isNoClass()
    カラムのクラス名(X,S9 など)のセットを行うかどうか取得します。 "true" で、クラス属性を設定しません。これは、ＣＳＳファイルに書かれている属性を 使用しないことを意味します。 初期値は、"false" です。
    戻り値:
      クラス名使用の有無(true:使用しない/false:使用する。)

  - ### setUsableKey

    public void setUsableKey(String key)
    フォーマットの使用可否を判断するキーとなるカラム名を指定します。 キーが、usableList に含まれる場合は、このフォームを使用できます。 キー(カラム名)が指定されない場合は、常に使用されます。 ※ 現時点では、BODYタイプのみ使用しています。
    パラメータ:
      `key` - フォーマットの使用可否を判断するカラム名

  - ### setUsableList

    public void setUsableList(String list)
    フォーマットの使用可否を判断する文字列リストを指定します。 キーが、この文字列リスト中に存在する場合は、このフォームを使用できます。 この文字列リストは、固定な文字列です。{@XXXX}は使用できますが、[XXXX]は 使用できません。 初期値は、"1" です。 ※ 現時点では、BODYタイプのみ使用しています。
    パラメータ:
      `list` - フォーマットの使用可否を判断する文字列リスト
    関連項目:
      - `isUse(int,DBTableModel)`

  - ### setKeyBreakClm

    public void setKeyBreakClm(String kclm)
    ここで指定したカラムの値が、キーブレイクした場合、このタグを使用します。 キーブレイクで 使用可否を指定する為の機能です。 この設定値は、usableKey,usableList とは、独立しているため、それぞれで 有効になれば、使用されると判断されます。 キーブレイク判定では、最初の1件目は、必ず使用されると判断されます。
    パラメータ:
      `kclm` - キーブレイクをチェックするカラムID
    変更履歴:
      5.7.6.3 (2014/05/23) 新規追加

  - ### isUse

    public boolean isUse(int row, DBTableModel table)
    このフォーマットを使用するかどうかの問い合わせを返します。 "true" で、使用します。setUsableKey( String ) で、指定された カラム名の値が、setUsableList( String ) で指定された文字列に含まれていれば、 使用します。カラム名がセットされない場合は、デフォルト値("true")が使用されます。 ※ 現時点では、BODYタイプのみ使用しています。 カラムのデータに、不正なスペースが入る場合を想定して、trim() しています。 よって、usableList の値にスペースは使用できません。 5.7.6.3 (2014/05/23) 以降は、keyBreakClm によるキーブレイクチェックも追加されました。 従来の usableKey,usableList とは、独立しているため、それぞれで有効になれば、 使用されると判断されます。
    パラメータ:
      `row` - 行番号
      `table` - DBTableModelオブジェクト
    戻り値:
      このフォームを使用するかどうか(true:使用する/false:使用しない)
    関連項目:
      - `setUsableKey(String)`
      - `setUsableList(String)`
    変更履歴:
      3.5.6.2 (2004/07/05) 判定評価用カラムの値を trim() します。, 5.7.6.3 (2014/05/23) キーブレイクをチェックする keyBreakClm 属性追加

  - ### setItdBody

    public void setItdBody(String itd)
    itdフォーマット文字列を設定します。 itd ボディ部の文字列を指定します。 itd ボディは、繰り返し処理を行います。これを、上位のボディ文字列の中の HYBS_ITD_MARKER 文字列 と置き換えます。
    パラメータ:
      `itd` - itdフォーマットの文字列
    変更履歴:
      3.5.6.0 (2004/06/18) itdフォーマット文字列の取り込み

  - ### getItdBody

    public String getItdBody()
    itdフォーマット文字列を取得します。 itd ボディ部の文字列を取得します。 itd ボディは、繰り返し処理を行います。これを、上位のボディ文字列の中の HYBS_ITD_MARKER 文字列 と置き換えます。
    戻り値:
      itdフォーマットの文字列
    変更履歴:
      3.5.6.0 (2004/06/18) itdフォーマット文字列の取り込み