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")を登録します。
    `String` | `makeTag()` タグの 整形された文字列を 作成します。
    `String` | `makeTag(int rowNo, String val)` 行番号付きのタグの 整形された文字列を 作成します。
    `void` | `setBody(String body)` タグの BODY部を登録します。

    - ### クラスから継承されたメソッド 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)

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

    - #### 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.