org.opengion.fukurou.util

## クラス TagBuffer

- java.lang.Object
- - org.opengion.fukurou.util.TagBuffer

-     public final class TagBuffer
      extends Object

  TagBuffer.java は、共通的に使用される 簡易タグ作成クラスです。 タグヘッダーは、オブジェクト作成時に登録する為、後の変更は出来ません。 BODY部や、属性は、一度登録すると書き換えできません。 また、同一属性チェックは行いません。登録した属性のキーや、値を取り出すことも出来ません。 あくまで、タグ文字列をストレートに作成することに特化したクラスです。 これらの高度な機能が必要であれば、`Attributes` をご参照ください。 makeTag() メソッドを呼び出した時点で、内部にタグ文字列をキャッシュします。 それ以降の変更は、出来ません。 内部的には、構造化されていません。あくまで、文字列連結(StringBuilder)の 簡易クラスとして、使用してください。
  機能分類
    ユーティリティ
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

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

    コンストラクタ
    コンストラクタと説明
    `TagBuffer()` デフォルトコンストラクター このコンストラクターを使用すると、タグ名を指定できないため、 完成形のタグは、作成できません。
    `TagBuffer(String tagName)` コンストラクター タグ名に null を指定すると、デフォルトコンストラクターと同様に、 完成形のタグは、作成できません。

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `void` | `add(String str)` タグの属性に、追加登録します。
    `void` | `add(String key, String val)` タグの 属性(key="value")を登録します。
    `TagBuffer` | `addBody(String body)` タグの BODY部を追加登録します。
    `TagBuffer` | `addBody(String body, boolean flag)` タグの BODY部を追加登録します。
    `String` | `makeTag()` タグの 整形された文字列を 作成します。
    `String` | `makeTag(int rowNo, String val)` 行番号付きのタグの 整形された文字列を 作成します。
    `void` | `setBody(String body)` 推奨されていません。 `addBody(String)`

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

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

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

    - #### TagBuffer

          public TagBuffer()

      デフォルトコンストラクター このコンストラクターを使用すると、タグ名を指定できないため、 完成形のタグは、作成できません。属性リスト(key="value")の 連結形式を得る場合にのみ、使用して下さい。

    - #### TagBuffer

          public TagBuffer(String tagName)

      コンストラクター タグ名に null を指定すると、デフォルトコンストラクターと同様に、 完成形のタグは、作成できません。属性リスト(key="value")の 連結形式を得る場合にのみ、タグ名 にnull を指定して下さい。
      パラメータ:
        `tagName` - タグ名称

  - ### メソッドの詳細

    - #### setBody

          public void setBody(String body)

      推奨されていません。 `addBody(String)`
      タグの BODY部を登録します。 登録しない場合は、BODY部のないタグ(空要素タグ)を生成します。 BODY部を指定すると、<tagName key="val" ･･･ >body</tagName> 形式になります。 BODY部が、null の場合は、 <tagName key="val" ･･･ /> 形式になります。 このメソッドは、makeTag() が呼ばれた後は、登録できなくなります。
      パラメータ:
        `body` - タグのBODY部

    - #### addBody

          public TagBuffer addBody(String body)

      タグの BODY部を追加登録します。 すでに、登録済みの場合は、その値に、追記します。 そうでない場合(初めての場合)は、その値をセットします。 null を登録した場合は、何もしません。 ※ 従来あった #setBody(String)の様に、null を登録した場合、Body を リセットする機能はありません。新しいオブジェクトを作成してください。 このメソッドは、makeTag() が呼ばれた後は、登録できなくなります。
      パラメータ:
        `body` - タグのBODY部に追加する文字列
      戻り値:
        自分自身
      変更履歴:

        5.8.4.1 (2015/02/20) 6.1.1.0逆移植 #setBody(String) の代替えメソッドとして、新規追加

      このメソッドは、nullを返しません

    - #### addBody

          public TagBuffer addBody(String body,
                          boolean flag)

      タグの BODY部を追加登録します。 すでに、#setBody(String) で、登録済みの場合は、その値に、追記します。 そうでない場合は、#setBody(String) と同じ動作になります。 null を登録した場合は、何もしません。 flag に、false を指定すると、追加登録しません。これは、if( flag ) { tagBuffer.addBody( body ); } の様な判定処理を、tagBuffer.body( body,flag ); に簡素化するために使用できます。 TagBuffer は、StringBuilderの様に、メソッドの戻り値は、自分自身のオブジェクトなので、 上記の flag を使用して、切れ目なく連結させることが可能になります。 このメソッドは、makeTag() が呼ばれた後は、登録できなくなります。
      パラメータ:
        `body` - タグのBODY部に追加する文字列
        `flag` - タグのBODY部に追加かどうかを決めるフラグ(true:追加する/false:何もしない)
      戻り値:
        自分自身
      変更履歴:

        5.8.4.1 (2015/02/20) 6.1.1.0逆移植 戻り値に、自分自身を返すようにします。

      このメソッドは、nullを返しません

    - #### add

          public void add(String key,
                 String val)

      タグの 属性(key="value")を登録します。 属性は、key="value" の文字列を作成します。key か、value のどちらかが null の場合は、登録しません。 value に、ダブルコーテーション(")が含まれている場合は、属性値をシングルコーテーション でくくります。 両方含まれている場合は、シングルコーテーションをエスケープ文字に変換します。 このメソッドは、makeTag() が呼ばれた後は、登録できなくなります。
      パラメータ:
        `key` - 属性キー (null の場合は、なにもしない)
        `val` - 属性値 (null の場合は、なにもしない)
      変更履歴:

        3.8.6.1 (2006/10/20) シングルとダブルが混在する場合は、シングルをエスケープする

    - #### add

          public void add(String str)

      タグの属性に、追加登録します。 文字列として、key="value" の形式データを与えてください。連結時は、後ろに スペースを一つ挟みますので、与える引数自体に連結用スペースを追加しておく 必要はありません。 通常は、tagName なしで作成した、Tagbuffer オブジェクトの makeTag() メソッドの 返り値を渡しますが、Attributes.getAttribute() の返り値でも使用できます。 引数が null の場合は、なにもしません。 このメソッドは、makeTag() が呼ばれた後は、登録できなくなります。
      パラメータ:
        `str` - タグバッファーを追加します。
      関連項目:
        `makeTag()`, `Attributes.getAttribute()`

    - #### makeTag

          public String makeTag()

      タグの 整形された文字列を 作成します。 このメソッドは、tagName,body,属性より タグの完成形の文字列を作成します。 作成された文字列は、内部でキャッシュされます。 BODY部を指定すると、<tagName key="val" ･･･ >body</tagName> 形式になります。 BODY部が、null の場合は、 <tagName key="val" ･･･ /> 形式になります。 タグ名を指定しない(null)と、完成形のタグは、作成できません。 属性リスト(key="value")の連結形式を返します。 このメソッドの呼び出し以降では、setBody() も add() も実行できません。
      戻り値:
        整形された タグ文字列

    - #### makeTag

          public String makeTag(int rowNo,
                       String val)

      行番号付きのタグの 整形された文字列を 作成します。 このメソッドは、makeTag() の結果より、[I] 文字列を引数の行番号と変換します。 これにより、動的に行番号つきの情報を属性に付与することが可能になります。 内部にキャッシュされる値は、[I] 記号を変換していない状態の文字列です。 よって、このメソッドは、rowNo を変えて、何度でも呼び出すことは可能ですが、 setBody() や add() は実行できません。
      パラメータ:
        `rowNo` - 行番号([I] 文字列を変換します。)
        `val` - 設定値([V] 文字列を変換します。)
      戻り値:
        整形された タグ文字列

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.