org.opengion.fukurou.xml

## クラス OGElement

- java.lang.Object
- - org.opengion.fukurou.xml.OGNode
  - - org.opengion.fukurou.xml.OGElement

-     public class OGElement
      extends OGNode

  エレメントをあらわす、OGElement クラスを定義します。 エレメントは、OGNode クラスを継承し、名称、属性、ノードリストを持つオブジェクトです。 通常で言うところの、タグになります。 属性は、OGAttributes クラスで管理します。ノードリスト に関する操作は、OGNodeクラスの実装です。 OGNode は、enum OGNodeType で区別される状態を持っています。 OGNodeType は、それぞれ、再設定が可能です。 例えば、既存のエレメントやノードに対して、コメントタイプ(Comment)を指定すると、 ファイル等への出力時にコメントとして出力されます。
  変更履歴:

    5.1.8.0 (2010/07/01) 新規作成

  バージョン
    5.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK6.0,

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

    - ### クラスから継承されたフィールド org.opengion.fukurou.xml.OGNode

      `CR`

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

    コンストラクタ
    コンストラクタと説明
    `OGElement(String qName)` ノード名を指定してのトコンストラクター ノード名のみ指定するため、属性と、ノードリストが空のエレメントを構築します。
    `OGElement(String qName, Attributes atts)` ノード名、属性タブ、属性リストを指定してのトコンストラクター 注意 属性値の正規化は必ず行われます。

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `void` | `addAttr(String key, String val)` 属性リストに、属性(キー、値のセット)を設定します。
    `String` | `getId()` 属性リストから、id属性の、属性値を取得します。
    `OGAttributes` | `getOGAttributes()` 属性オブジェクトを返します。
    `String` | `getTagName()` ノード名を返します。
    `String` | `getText(int cnt)` オブジェクトの文字列表現を返します。
    `String` | `getVal(String key)` 属性リストから、指定の属性キーの、属性値を取得します。
    `boolean` | `match(String name, String key, String val)` 自分自身の状態が、指定の条件に合致しているかどうか、判定します。
    `void` | `setOGAttributes(OGAttributes attri)` 属性オブジェクトをセットします。

    - ### クラスから継承されたメソッド org.opengion.fukurou.xml.OGNode

      `addNode, addNode, changeNode, clearNode, getChildElementList, getElementList, getNode, getNodeType, getParentCount, getParentNode, nodeSize, removeNode, setNode, setNodeType, toString`

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

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

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

    - #### OGElement

          public OGElement(String qName)

      ノード名を指定してのトコンストラクター ノード名のみ指定するため、属性と、ノードリストが空のエレメントを構築します。
      パラメータ:
        `qName` - ノード名

    - #### OGElement

          public OGElement(String qName,
                   Attributes atts)

      ノード名、属性タブ、属性リストを指定してのトコンストラクター 注意 属性値の正規化は必ず行われます。 属性値に含まれるCR(復帰), LF(改行), TAB(タブ)は、 半角スペースに置き換えられます。 XMLの規定では、属性の並び順は保障されませんが、SAXのAttributesは、XMLに記述された順番で 取得できていますので、このクラスでの属性リストも、記述順での並び順になります。
      パラメータ:
        `qName` - ノード名
        `atts` - 属性リスト
      変更履歴:

        5.2.1.0 (2010/10/01) タグ属性の改行処理を、Set からString[] に変更。
        5.6.1.2 (2013/02/22) CR_SET を配列から文字列に変更

  - ### メソッドの詳細

    - #### getTagName

          public String getTagName()

      ノード名を返します。
      戻り値:
        ノード名

    - #### getOGAttributes

          public OGAttributes getOGAttributes()

      属性オブジェクトを返します。 これは、org.xml.sax.Attributes ではなく、OGAttributes オブジェクトを返します。 内部オブジェクトそのものを返しますので、この OGAttributes の変更は、この エレメントが持つ内部属性も変更されます。
      戻り値:
        属性オブジェクト

    - #### setOGAttributes

          public void setOGAttributes(OGAttributes attri)

      属性オブジェクトをセットします。 属性オブジェクトのセットは、このメソッドからのみできるようにします。 内部オブジェクトそのものにセットしますので、異なる OGAttributes をセットしたい場合は、 外部で、コピーしてからセットしてください。
      パラメータ:
        `attri` - 属性オブジェクト(org.opengion.fukurou.xml.OGAttributes)
      変更履歴:

        5.6.1.2 (2013/02/22) 新規追加

    - #### getId

          public String getId()

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

        5.1.9.0 (2010/08/01) 新規追加

    - #### getVal

          public String getVal(String key)

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

        5.6.1.2 (2013/02/22) 新規追加

    - #### addAttr

          public void addAttr(String key,
                     String val)

      属性リストに、属性(キー、値のセット)を設定します。 属性リストの一番最後に、属性(キー、値のセット)を設定します。
      パラメータ:
        `key` - 属性リストのキー
        `val` - 属性リストの値

    - #### match

          public boolean match(String name,
                      String key,
                      String val)

      自分自身の状態が、指定の条件に合致しているかどうか、判定します。 合致している場合は、true を、合致していない場合は、false を返します。 指定の属性が null の場合は、すべてに合致すると判断します。 例えば、kye のみ指定すると、その属性名を持っているエレメントすべてで true が返されます。 実行速度を考えると、ノード名は指定すべきです。
      パラメータ:
        `name` - ノード名 null の場合は、すべての ノード名 に合致
        `key` - 属性名 null の場合は、すべての 属性名 に合致
        `val` - 属性値 null の場合は、すべての 属性値 に合致
      戻り値:
        条件がこのエレメントに合致した場合 true

    - #### getText

          public String getText(int cnt)

      オブジェクトの文字列表現を返します。 文字列は、OGNodeType により異なります。 Comment ノードの場合は、コメント記号を、Cdata ノードの場合は、CDATA を つけて出力します。
      オーバーライド:
        `getText` クラス内 `OGNode`
      パラメータ:
        `cnt` - Nodeの階層（-1:なし、0:改行のみ、1:改行＋" "・・・・）
      戻り値:
        このオブジェクトの文字列表現
      関連項目:
        `OGNode.toString()`
      変更履歴:

        5.6.1.2 (2013/02/22) 内部テキストがない場合のタグの終了時にスペースは入れない。
        5.6.4.4 (2013/05/31) 改行３つを改行２つに置換します。

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