org.opengion.fukurou.util

## クラス TagBuffer

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

-     public final class TagBuffer
      extends java.lang.Object

       TagBuffer.java は、共通的に使用される 簡易タグ作成クラスです。
       タグヘッダーは、オブジェクト作成時に登録する為、後の変更は出来ません。
       BODY部や、属性は、一度登録すると書き換えできません。
       また、同一属性チェックは行いません。登録した属性のキーや、値を取り出すことも出来ません。
       あくまで、タグ文字列をストレートに作成することに特化したクラスです。
       これらの高度な機能が必要であれば、Attributes をご参照ください。

       makeTag() メソッドを呼び出した時点で、内部にタグ文字列をキャッシュします。
       それ以降の変更は、出来ません。

       内部的には、構造化されていません。あくまで、文字列連結(StringBuilder)の
       簡易クラスとして、使用してください。

       ※ 6.1.1.0 (2015/01/17)
          StringBuilder と同様、add メソッドの戻り値に、自分自身を戻します。
          これにより、連結処理できるようにします。

  機能分類
    ユーティリティ
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### コンストラクタのサマリー

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

  - ### メソッドのサマリー

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

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

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

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

    - #### TagBuffer

          public TagBuffer()

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

    - #### TagBuffer

          public TagBuffer(java.lang.String tagName)

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

  - ### メソッドの詳細

    - #### addBody

          public TagBuffer addBody(java.lang.String body)

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

        6.1.1.0 (2015/01/17) #setBody(String) の代替えメソッドとして、新規追加

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

    - #### addBody

          public TagBuffer addBody(java.lang.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:何もしない)
      戻り値:
        自分自身
      変更履歴:

        6.1.1.0 (2015/01/17) 戻り値に、自分自身を返すようにします。

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

    - #### add

          public TagBuffer add(java.lang.String str)

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

        6.1.1.0 (2015/01/17) 戻り値に、自分自身を返すようにします。

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

    - #### add

          public TagBuffer add(java.lang.String key,
                               java.lang.String val)

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

        3.8.6.1 (2006/10/20) シングルとダブルが混在する場合は、シングルをエスケープする
        6.1.1.0 (2015/01/17) 戻り値に、自分自身を返すようにします。

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

    - #### add

          public TagBuffer add(java.lang.String key,
                               java.lang.String val,
                               boolean flag)

      タグの 属性(key="value")を登録します。 属性は、key="value" の文字列を作成します。 key が null の場合は、値だけをそのまま連結します。 val が null の場合は、登録しません。 flag に、false を指定すると、属性は追加しません。これは、if( flag ) { tagBuffer.add( key,val ); } の様な判定処理を、tagBuffer.add( key,val,flag ); に簡素化するために使用できます。 TagBuffer は、StringBuilderの様に、メソッドの戻り値は、自分自身のオブジェクトなので、 上記の flag を使用して、切れ目なく連結させることが可能になります。 value に、ダブルコーテーション(")が含まれている場合は、属性値をシングルコーテーション でくくります。 両方含まれている場合は、シングルコーテーションをエスケープ文字に変換します。 このメソッドは、makeTag() が呼ばれた後は、登録できなくなります。
      パラメータ:
        `key` - 属性キー (null の場合は、val属性値 をそのまま追加する)
        `val` - 属性値 (null の場合は、なにもしない)
        `flag` - 属性を追加かどうかを決めるフラグ(true:追加する/false:何もしない)
      戻り値:
        自分自身
      変更履歴:

        6.1.1.0 (2015/01/17) 戻り値に、自分自身を返すようにします。

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

    - #### makeTag

          public java.lang.String makeTag()

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

    - #### makeTag

          public java.lang.String makeTag(int rowNo,
                                          java.lang.String val)

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

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