パッケージ 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) 新規作成
  バージョン
    5.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK6.0,

- - ### フィールドの概要

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

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

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

  - ### メソッドの概要

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッド | 説明
    --- | --- | ---
    `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を返しません