クラス 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
    フォーマットタイプの指定の特殊なマーク "h_itd_marker"
  • コンストラクタの概要 リンク・アイコン

    コンストラクタ
    コンストラクタ
    説明
    デフォルトコンストラクター
  • メソッドの概要 リンク・アイコン

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

    クラスから継承されたメソッド java.lang.Object リンク・アイコン

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細 リンク・アイコン

  • コンストラクタの詳細 リンク・アイコン

    • 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 を含む場合は、1行分のデータとして扱う為、 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 を含む場合は、1行分のデータとして扱う為、 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 リンク・アイコン

      このフォーマットのタイプを返します。 このフォーマットのタイプを返します。
      戻り値:
      このフォーマットのタイプを返します。
      変更履歴:
      4.0.0.0 (2007/05/02) enum 定義に変更
    • setRowspan リンク・アイコン

      public void setRowspan(String rowspan)
      テーブルの rowspan 属性をセットします。 rowspan は、ヘッダー部のフォーマットの行数です。初期値は 2行 です。 設定は、"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 は、フォーマットで、サイズは4。 ABC , DEF , GHI に対応するカラム番号がロケーションで、サイズは3。 このメソッドで返すのは、ロケーション番号(3)の方です。
      戻り値:
      ロケーション番号のサイズ
      変更履歴:
      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 リンク・アイコン

      カラムのロケーション番号を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" で、クラス属性を設定しません。これは、CSSファイルに書かれている属性を 使用しないことを意味します。 初期値は、"false" です。
      パラメータ:
      flag - クラス名使用の有無(true:使用しない/false:使用する。)
    • isNoClass リンク・アイコン

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

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

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