パッケージ org.opengion.fukurou.xml

# クラス OGAttributes

java.lang.Object
org.opengion.fukurou.xml.OGAttributes

public class OGAttributes extends Object
属性リストをあらわす、OGAttributes クラスを定義します。 属性リストは、キーと値のペアを、並び順で管理しているリストを保持しています。 内部的には、 org.xml.sax.Attributes からの値の設定と、タブの属性の整列を行うための 属性タブ、属性の改行の制御、属性の長さの制御 などを行います。

変更履歴:
  5.1.8.0 (2010/07/01) 新規作成
導入されたバージョン:
  JDK6.0,

- ## フィールドの概要

  フィールド
  修飾子とタイプ
  フィールド
  説明
  `static final int`
  `CR_CNT`
  属性の個数制限。
  `static final int`
  `CR_LEN`
  属性の長さ制限。

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

  コンストラクタ
  コンストラクタ
  説明
  `OGAttributes()`
  デフォルトトコンストラクター 取りあえず、属性オブジェクトを構築する場合に使用します。
  `OGAttributes(Attributes attri)`
  属性タブ、属性リスト、属性改行の有無を指定してのトコンストラクター 属性タブ、属性リストに null を指定すると、デフォルトトコンストラクターの設定と 同じ状態になります。

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `void`
  `add(int adrs, String key, String val)`
  指定のアドレスの属性リストに、属性(キー、値のセット)を設定します。
  `void`
  `add(String key, String val)`
  属性リストに、属性(キー、値のセット)を設定します。
  `int`
  `getAdrs(String key)`
  属性リストから、指定の属性キーの、アドレスを取得します。
  `String`
  `getId()`
  属性リストから、id属性の、属性値を取得します。
  `String`
  `getKey(int adrs)`
  属性リストから、指定の配列番号の、属性キーを取得します。
  `String`
  `getText(String attTab)`
  オブジェクトの文字列表現を返します。
  `String`
  `getVal(int adrs)`
  属性リストから、指定の配列番号の、属性値を取得します。
  `String`
  `getVal(String key)`
  属性リストから、指定の属性キーの、属性値を取得します。
  `void`
  `remove(int adrs)`
  指定のアドレスの属性リストから、属性情報を削除します。
  `void`
  `setUseCR(boolean useCR)`
  属性改行の有無を設定します。
  `void`
  `setVal(int adrs, String val)`
  属性リストの、指定の配列番号に、属性値を設定します。
  `void`
  `setVal(String key, String val)`
  属性リストに、指定のキー、属性値を設定します。
  `int`
  `size()`
  属性リストの個数を取得します。
  `String`
  `toString()`
  オブジェクトの文字列表現を返します。

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

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

- ## フィールド詳細

  - ### CR_CNT

    public static final int CR_CNT
    属性の個数制限。この個数で改行を行う。 4
    関連項目:
      - 定数フィールド値

  - ### CR_LEN

    public static final int CR_LEN
    属性の長さ制限。これ以上の場合は、改行を行う。 80
    関連項目:
      - 定数フィールド値

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

  - ### OGAttributes

    public OGAttributes()
    デフォルトトコンストラクター 取りあえず、属性オブジェクトを構築する場合に使用します。 属性タブは、改行＋タブ 、属性リストは、空のリスト、属性改行は、false を初期設定します。

  - ### OGAttributes

    public OGAttributes(Attributes attri)
    属性タブ、属性リスト、属性改行の有無を指定してのトコンストラクター 属性タブ、属性リストに null を指定すると、デフォルトトコンストラクターの設定と 同じ状態になります。 注意 属性値の正規化は必ず行われます。 属性値に含まれるCR(復帰), LF(改行), TAB(タブ)は、 半角スペースに置き換えられます。 XMLの規定では、属性の並び順は保障されませんが、SAXのAttributesは、XMLに記述された順番で 取得できていますので、このクラスでの属性リストも、記述順での並び順になります。
    パラメータ:
      `attri` - 属性リスト
    変更履歴:
      5.1.9.0 (2010/08/01) id 属性のみ特別にキャッシュしておく。

- ## メソッドの詳細

  - ### setUseCR

    public void setUseCR(boolean useCR)
    属性改行の有無を設定します。 タグによって、属性が多くなったり、意味が重要な場合は、属性１つづつに改行を 行いたいケースがあります。 属性改行をtrue に設定すると、属性一つづつで、改行を行います。 false の場合は、自動的な改行処理が行われます。 これは、属性の個数制限(CR_CNT)を超える場合は、改行を行います。
    パラメータ:
      `useCR` - 属性改行の有無(true:１属性単位の改行)
    関連項目:
      - `CR_CNT`
      - `CR_LEN`

  - ### size

    public int size()
    属性リストの個数を取得します。
    戻り値:
      属性リストの個数

  - ### getKey

    public String getKey(int adrs)
    属性リストから、指定の配列番号の、属性キーを取得します。
    パラメータ:
      `adrs` - 配列番号
    戻り値:
      属性キー

  - ### getVal

    public String getVal(int adrs)
    属性リストから、指定の配列番号の、属性値を取得します。
    パラメータ:
      `adrs` - 配列番号
    戻り値:
      属性値

  - ### getVal

    public String getVal(String key)
    属性リストから、指定の属性キーの、属性値を取得します。 この処理は、属性リストをすべてスキャンして、キーにマッチする 属性オブジェクトを見つけ、そこから、属性値を取り出すので、 パフォーマンスに問題があります。 基本的には、アドレス指定で、属性値を取り出すようにしてください。
    パラメータ:
      `key` - 属性キー
    戻り値:
      属性値
    変更履歴:
      5.1.9.0 (2010/08/01) 新規追加

  - ### getAdrs

    public int getAdrs(String key)
    属性リストから、指定の属性キーの、アドレスを取得します。 どちらかというと、キーの存在チェックに近い処理を行います。 この処理は、属性リストをすべてスキャンして、キーにマッチする 属性オブジェクトを見つけ、そこから、属性値を取り出すので、 パフォーマンスに問題があります。
    パラメータ:
      `key` - 属性キー
    戻り値:
      アドレス キーが存在しない場合は、-1 を返す。
    変更履歴:
      5.1.9.0 (2010/08/01) 新規追加

  - ### getId

    public String getId()
    属性リストから、id属性の、属性値を取得します。 id属性 は、内部的にキャッシュしており、すぐに取り出せます。 タグを特定する場合、一般属性のキーと値で選別するのではなく、 id属性を付与して選別するようにすれば、高速に見つけることが可能になります。
    戻り値:
      id属性値
    変更履歴:
      5.1.9.0 (2010/08/01) 新規追加

  - ### setVal

    public void setVal(int adrs, String val)
    属性リストの、指定の配列番号に、属性値を設定します。
    パラメータ:
      `adrs` - 配列番号
      `val` - 属性値
    変更履歴:
      5.1.9.0 (2010/08/01) id 属性のみ特別にキャッシュしておく。

  - ### setVal

    public void setVal(String key, String val)
    属性リストに、指定のキー、属性値を設定します。 もし、属性リストに、指定のキーがあれば、属性値を変更します。 なければ、最後に追加します。
    パラメータ:
      `key` - 属性キー
      `val` - 属性値
    変更履歴:
      5.6.1.2 (2013/02/22) 新規追加

  - ### add

    public void add(String key, String val)
    属性リストに、属性(キー、値のセット)を設定します。 属性リストの一番最後に、属性(キー、値のセット)を設定します。
    パラメータ:
      `key` - 属性リストのキー
      `val` - 属性リストの値
    変更履歴:
      5.1.9.0 (2010/08/01) id 属性のみ特別にキャッシュしておく。

  - ### add

    public void add(int adrs, String key, String val)
    指定のアドレスの属性リストに、属性(キー、値のセット)を設定します。 指定のアドレスの属性を置き換えるのではなく追加します。
    パラメータ:
      `adrs` - 属性リストのアドレス
      `key` - 属性リストのキー
      `val` - 属性リストの値
    変更履歴:
      5.1.9.0 (2010/08/01) id 属性のみ特別にキャッシュしておく。

  - ### remove

    public void remove(int adrs)
    指定のアドレスの属性リストから、属性情報を削除します。 指定のアドレスの属性を置き換えるのではなく追加します。
    パラメータ:
      `adrs` - 属性リストのアドレス
    変更履歴:
      5.1.9.0 (2010/08/01) id 属性のみ特別にキャッシュしておく。

  - ### getText

    public String getText(String attTab)
    オブジェクトの文字列表現を返します。 属性については、並び順は、登録順が保障されます。 属性は、３つのパターンで文字列化を行います。 ・useCR=true の場合 この場合は、属性を１行ずつ改行しながら作成します。属性キーは、 最大長＋１ でスペース埋めされて、整形されます。 ・useCR=false の場合 ・属性の個数制限(CR_CNT)単位に、改行が行われます。 これは、属性が右に多く並びすぎるのを防ぎます。 ・属性の長さ制限(CR_LEN)単位で、改行が行われます。 これは、たとえ、属性の個数が少なくても、文字列として長い場合は、 改行させます。
    パラメータ:
      `attTab` - Nodeの階層を表す文字列。
    戻り値:
      このオブジェクトの文字列表現
    関連項目:
      - `OGNode.toString()`
      - `setUseCR(boolean)`
    変更履歴:
      5.6.1.2 (2013/02/22) 改行処理の修正。最後の属性処理の後にも改行を入れる。, 5.6.4.4 (2013/05/31) 改行処理の修正。attTabが、ゼロ文字列の場合の対応。
    このﾒｿｯﾄﾞは、nullを返しません

  - ### toString

    public String toString()
    オブジェクトの文字列表現を返します。
    オーバーライド:
      `toString` クラス内 `Object`
    戻り値:
      このオブジェクトの文字列表現
    関連項目:
      - `OGNode.toString()`
    変更履歴:
      5.6.1.2 (2013/02/22) 改行処理の修正。最後の属性処理の後にも改行を入れる。
    このﾒｿｯﾄﾞは、nullを返しません