クラス TagBuffer
java.lang.Object
org.opengion.fukurou.util.TagBuffer
TagBuffer.java は、共通的に使用される 簡易タグ作成クラスです。
ここでは、4つの形式(TAG , CSS , JSON , ARRAY )をサポートします。
TAG形式:
BODYなし <tag key1="val1" key2="val2" ・・・/>
BODYあり <tag key1="val1" key2="val2" ・・・>body</tag>
CSS形式:
{ key1:val1; key2:val2; ・・・ }
JSON形式:
文字 { "key1":"val1", "key2":"val2", ・・・ }
数値 { "key1":num1 , "key2":num2 , ・・・ }
ARRAY形式:
文字 [ "val1", "val2", ・・・ ]
数値 [ num1 , num2 , ・・・ ]
これらの形式は、#startTag( String ) , #startCss( String ) , #startJson() , #startArray()
メソッドで始まり、#make() で、完了します。
完了とは、内部の StringBuilder に書き込まれることを意味しますので、再び、
startXXX()メソッドから始めることが可能です。
つまり、一つのインスタンスに、TAGやCSSをまとめて追記していくことが出来ます。
最後に、#toString() メソッドで、内部の StringBuilder を文字列として返します。
TagBuffer クラスの中身を全面的に見直しています。また、過去のTagBufferと互換性を取るための
メソッドも残していますが、順次、削除していく予定です。
もっと高度な機能が必要であれば、
Attributes
をご参照ください。- 変更履歴:
- 7.0.1.0 (2018/10/15) 新規作成
- 機能分類
- ユーティリティ
- 導入されたバージョン:
- JDK8.0,
-
コンストラクタの概要
コンストラクタ -
メソッドの概要
修飾子とタイプメソッド説明データの登録エリアのバッファに直接値を追加します。キー配列と値配列のセットを、追加します。キーと値のセットを、追加します。キーと値のセットを、追加します(データ形式 ARRAY以外有効)。データの BODY部のバッファに直接値を追加します(データ形式 TAGのみ有効)。データの BODY部のバッファに直接値を追加します(データ形式 TAGのみ有効)。データ本体のバッファに直接値を追加します。データ本体のバッファに直接値を追加します。データの登録エリアに、数値型として値を追加します(データ形式 ARRAYのみ有効)。データの登録エリアに、数値型として値を追加します(データ形式 ARRAYのみ有効)。addOptions
(String... vals) データの登録エリアのバッファに直接値を追加します。addOptions
(String val, boolean isUse) データの登録エリアのバッファに直接値を追加します。データの登録エリアに、文字型として値を追加します(データ形式 ARRAYのみ有効)。データの登録エリアに、文字型として値を追加します(データ形式 ARRAYのみ有効)。clear()
内部データのバッファをすべてクリアします。make()
整形されたデータ文字列を 作成します。makeTag()
内部データの文字列を返します。行番号付きのタグの 整形された文字列を 作成します。ARRAY形式のデータ作成を宣言します。CSS形式のデータ作成を宣言します。JSON形式のデータ作成を宣言します。TAG形式のデータ作成を宣言します。toAfter()
TAG形式のデータの、BODY+終了タグの文字列を作成して返します。toBefore()
TAG形式のデータの、要素部分(BODYの直前まで)の文字列を作成して返します。toString()
内部データの文字列を返します。
-
コンストラクタの詳細
-
TagBuffer
public TagBuffer()デフォルトコンストラクター -
TagBuffer
タグ名を指定した、タグ構築用のコンストラクター これは、TagBuffer クラスとの互換性の為に用意されたコンストラクターです。- パラメータ:
name
- タグの名前
-
-
メソッドの詳細
-
startTag
TAG形式のデータ作成を宣言します。 TAG形式: BODYなし <tag key1="val1" key2="val2" ・・・/> BODYあり <tag key1="val1" key2="val2" ・・・>body</tag>- パラメータ:
name
- タグの名前- 戻り値:
- 自分自身
- このメソッドは、nullを返しません
-
startCss
CSS形式のデータ作成を宣言します。 CSS形式: { key1:val1; key2:val2; ・・・ }- パラメータ:
name
- CSSのセレクター- 戻り値:
- 自分自身
- このメソッドは、nullを返しません
-
startJson
JSON形式のデータ作成を宣言します。 JSON形式: 文字 { "key1":"val1", "key2":"val2", ・・・ } 数値 { "key1":num1 , "key2":num2 , ・・・ }- 戻り値:
- 自分自身
- このメソッドは、nullを返しません
-
startArray
ARRAY形式のデータ作成を宣言します。 ARRAY形式: 文字 [ "val1", "val2", ・・・ ] 数値 [ num1 , num2 , ・・・ ]- 戻り値:
- 自分自身
- このメソッドは、nullを返しません
-
addBuffer
データ本体のバッファに直接値を追加します。 指定の可変長文字列は、何の加工も無く、' '(スペース)で区切られて、直接追加されます。 データ形式以外の文字列を前後、間に追記したい場合に、都度呼びます。 引数が null や、空文字列の場合は、何もしません。- パラメータ:
vals
- データ本体のバッファに直接追加する可変長文字列- 戻り値:
- 自分自身
- 関連項目:
- このメソッドは、nullを返しません
-
addBuffer
データ本体のバッファに直接値を追加します。 指定の文字列は、何の加工も無く、' '(スペース)で区切られて、直接追加されます。 データ形式以外の文字列を前後、間に追記したい場合に、都度呼びます。 引数が null や、空文字列の場合は、何もしません。- パラメータ:
val
- データ本体のバッファに直接追加する文字列isUse
- 追加処理を行うかどうかの判定(true:処理する/false:処理しない)- 戻り値:
- 自分自身
- 関連項目:
- このメソッドは、nullを返しません
-
add
データの登録エリアのバッファに直接値を追加します。 これは、TagBuffer クラスとの互換性の為に用意されたメソッドです。 近い将来、削除します。- パラメータ:
val
- データの登録エリアのバッファに直接追加する文字列- 戻り値:
- 自分自身
- 関連項目:
- このメソッドは、nullを返しません
-
addOptions
データの登録エリアのバッファに直接値を追加します。 指定の可変長文字列は、何の加工も無く、' '(スペース)で区切られて、直接追加されます。 これは、データ生成中のバッファに対して、追加を行います。 例えば、外部で、タグやCSSのデータ形式を作成済みで、その文字列を追記するなどです。 引数が null や、空文字列の場合は、何もしません。- パラメータ:
vals
- データの登録エリアのバッファに直接追加する可変長文字列- 戻り値:
- 自分自身
- 関連項目:
- このメソッドは、nullを返しません
-
addOptions
データの登録エリアのバッファに直接値を追加します。 指定の文字列は、何の加工も無く、' '(スペース)で区切られて、直接追加されます。 これは、データ生成中のバッファに対して、追加を行います。 例えば、外部で、タグやCSSのデータ形式を作成済みで、その文字列を追記するなどです。 引数が null や、空文字列の場合は、何もしません。- パラメータ:
val
- データの登録エリアのバッファに直接追加する文字列isUse
- 追加処理を行うかどうかの判定(true:処理する/false:処理しない)- 戻り値:
- 自分自身
- 関連項目:
- このメソッドは、nullを返しません
-
addBody
データの BODY部のバッファに直接値を追加します(データ形式 TAGのみ有効)。 指定の可変長文字列は、何の加工も無く、' '(スペース)で区切られて、直接追加されます。 これは、データの BODY部のバッファに対して、追加を行います。 BODY部は、タグのbody として使用されているデータで、BODY有り無しの判定は、 このデータが登録されたかどうかで判定しています。 引数が null の場合は、何もしません。- パラメータ:
vals
- データのBODY部のバッファに直接追加する可変長文字列- 戻り値:
- 自分自身
- 関連項目:
- このメソッドは、nullを返しません
-
addBody
データの BODY部のバッファに直接値を追加します(データ形式 TAGのみ有効)。 指定の文字列は、何の加工も無く、' '(スペース)で区切られて、直接追加されます。 これは、データの BODY部のバッファに対して、追加を行います。 BODY部は、タグのbody として使用されているデータで、BODY有り無しの判定は、 このデータが登録されたかどうかで判定しています。 引数が null や、空文字列の場合は、何もしません。- パラメータ:
val
- データのBODY部のバッファに直接追加する文字列isUse
- 追加処理を行うかどうかの判定(true:処理する/false:処理しない)- 戻り値:
- 自分自身
- 関連項目:
- このメソッドは、nullを返しません
-
addNum
データの登録エリアに、数値型として値を追加します(データ形式 ARRAYのみ有効)。 データが、数値型の場合、ダブルコーテーションは付けません。 指定の可変長文字列は、何の加工も無く、endStr(終端連結時文字)で区切られて、追加されます。 ARRAY形式のみ有効なので、endStrは、',' になります。 データが、null の場合、endStr(終端連結時文字)のみが、追加されますので、 データの個数は、変わりません。 最後に必ず、endStr(終端連結時文字)が付きます。- パラメータ:
vals
- データの登録エリアに、数値型として追加する可変長文字列- 戻り値:
- 自分自身
- 関連項目:
- このメソッドは、nullを返しません
-
addNum
データの登録エリアに、数値型として値を追加します(データ形式 ARRAYのみ有効)。 データが、数値型の場合、ダブルコーテーションは付けません。 指定の文字列は、何の加工も無く、endStr(終端連結時文字)で区切られて、追加されます。 ARRAY形式のみ有効なので、endStrは、',' になります。 データが、null の場合、endStr(終端連結時文字)のみが、追加されます。 最後に必ず、endStr(終端連結時文字)が付きます。- パラメータ:
val
- データの登録エリアに、数値型として追加する文字列isUse
- 追加処理を行うかどうかの判定(true:処理する/false:処理しない)- 戻り値:
- 自分自身
- 関連項目:
- このメソッドは、nullを返しません
-
addStr
データの登録エリアに、文字型として値を追加します(データ形式 ARRAYのみ有効)。 データが、文字型の場合、ダブルコーテーションを付けて登録します。 指定の可変長文字列は、何の加工も無く、endStr(終端連結時文字)で区切られて、追加されます。 ARRAY形式のみ有効なので、endStrは、',' になります。 データが、null の場合、""(空文字列)と、endStr(終端連結時文字)が、追加されますので、 データの個数は、変わりません。 最後に必ず、endStr(終端連結時文字)が付きます。- パラメータ:
vals
- データの登録エリアに、文字型として追加する可変長文字列- 戻り値:
- 自分自身
- 関連項目:
- このメソッドは、nullを返しません
-
addStr
データの登録エリアに、文字型として値を追加します(データ形式 ARRAYのみ有効)。 データが、文字型の場合、ダブルコーテーションを付けて登録します。 指定の文字列は、何の加工も無く、endStr(終端連結時文字)で区切られて、追加されます。 ARRAY形式のみ有効なので、endStrは、',' になります。 データが、null の場合、""(空文字列)と、endStr(終端連結時文字)が、追加されます。 最後に必ず、endStr(終端連結時文字)が付きます。- パラメータ:
val
- データの登録エリアに、文字型として追加する文字列isUse
- 追加処理を行うかどうかの判定(true:処理する/false:処理しない)- 戻り値:
- 自分自身
- 関連項目:
- このメソッドは、nullを返しません
-
add
キーと値のセットを、追加します。 key が nullか、ゼロ文字列の場合は、なにもしません。 val が null の場合は、なにもしません。 val が、ゼロ文字列の場合は、追加します val に、ダブルコーテーション(")が含まれている場合は、属性値をシングルコーテーション でくくります。 両方含まれている場合は、シングルコーテーションをエスケープ文字(')に変換します。- パラメータ:
key
- 属性キー(nullか、ゼロ文字列の場合は、なにもしません)val
- 属性値 (null の場合は、なにもしない)- 戻り値:
- 自分自身
- 関連項目:
- このメソッドは、nullを返しません
-
add
キー配列と値配列のセットを、追加します。 これは、配列の数だけ、#add( boolean , String , String ) を呼び出して処理を行います。 個々の配列内のkey,valは、先のメソッドの規約に従います。 キー配列と値配列のサイズが異なる場合や、配列が null の場合は、何もしません。 (エラーではなく何もしないのでご注意ください。)- パラメータ:
keys
- 属性キー配列vals
- 属性値配列- 戻り値:
- 自分自身
- 関連項目:
- このメソッドは、nullを返しません
-
add
キーと値のセットを、追加します(データ形式 ARRAY以外有効)。 key が nullか、ゼロ文字列の場合は、なにもしません。 val が null の場合は、なにもしません。 val が、ゼロ文字列の場合は、追加します isUse が、false の場合は、なにもしません。 val に、ダブルコーテーション(")が含まれている場合は、属性値をシングルコーテーション でくくります。 両方含まれている場合は、シングルコーテーションをエスケープ文字(')に変換します。 isUse に、false を指定すると、属性は追加しません。これは、if( isUse ) { tagBuf.add( key,val ); } の様な判定処理を、tagBuf.add( key,val,isUse ); とすることで、StringBuilderの様に、連結して使用できます。 値 に、ダブルコーテーション(")が含まれている場合は、属性値をシングルコーテーション でくくります。 両方含まれている場合は、シングルコーテーションをエスケープ文字に変換します。- パラメータ:
key
- 属性キー(nullか、ゼロ文字列の場合は、なにもしません)val
- 属性値 (null の場合は、なにもしない)isUse
- 属性を追加かどうかを決めるフラグ(true:追加する/false:何もしない)- 戻り値:
- 自分自身
- 関連項目:
- このメソッドは、nullを返しません
-
make
整形されたデータ文字列を 作成します。 このメソッドは、startXXX で開始さえたデータ形式に応じて、データ本体のバッファに追記します。 一連のデータ作成処理は、この、#make() メソッドで終了します。 その後、startXXX を呼び出すことで、新しいデータ形式の作成を開始できます。- 戻り値:
- 自分自身
- このメソッドは、nullを返しません
-
toBefore
TAG形式のデータの、要素部分(BODYの直前まで)の文字列を作成して返します。 これは、TAG形式で、BODY部分が、別途処理が必要な場合、要素部分まで作成したい場合に使用します。 また、TAG形式以外の場合は、データの登録エリアのバッファをそのまま文字列にして返します。 この処理を実行すると、内部のすべてのバッファがクリアされます。 唯一、nameや、区切り文字情報は残っていますので、続きから、BODY の登録や、次のタグの登録が可能です。 最後は、#toAfter() メソッドを実行すれば、タグとしての形式を保つことが可能です。- 戻り値:
- 要素部分(BODYの直前まで)の文字列
- 関連項目:
- このメソッドは、nullを返しません
-
toAfter
TAG形式のデータの、BODY+終了タグの文字列を作成して返します。 通常は、#toBefore() を呼んだ後に、最後に実行するメソッドです。 この処理を実行すると、内部のすべてのバッファがクリアされます。- 戻り値:
- 要素部分(BODYの直前まで)の文字列
- 関連項目:
- このメソッドは、nullを返しません
-
clear
内部データのバッファをすべてクリアします。 内部データには、データ登録バッファ、データBODY部バッファ、データ本体バッファと 3種類のバッファを持っています。 この、3種類のバッファすべてをクリアします。- 戻り値:
- 自分自身
- このメソッドは、nullを返しません
-
toString
内部データの文字列を返します。 データ本体のバッファを文字列に変換して返します。 これは、#make() か、#tagBefore() を実行後に行います。そうしないと、 データが設定されていません。 この処理を行っても、データはクリアされないため、再び処理を行うことが可能です。 中間のデータを確認する場合や、最後にデータを取り出す場合に利用します。 -
makeTag
内部データの文字列を返します。 return tagBuf.make().toString(); と同じ結果を返します。 これは、TagBuffer クラスとの互換性の為に用意されたメソッドです。 内部にキャッシュとして持つため、最初に一度実行すると、以降、同じ値しか返されません。- 戻り値:
- データ本体の文字列
-
makeTag
行番号付きのタグの 整形された文字列を 作成します。 内部データから生成された文字列に含まれる、[I] に、行番号を、 [V] に、設定値を埋め込みます。 これは、TagBuffer クラスとの互換性の為に用意されたメソッドです。 内部にキャッシュとして持つため、最初に一度実行すると、以降、同じ値しか返されません。 逆に、何度実行しても、内部変数は書き換えられませんので、 行番号と、設定値を替えて、連続で呼ぶことが可能です。- パラメータ:
rowNo
- 行番号([I] 文字列を変換します)val
- 設定値([V] 文字列を変換します)- 戻り値:
- 行番号と設定値が置き換えられた文字列
-