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

クラス OGNode

  • 直系の既知のサブクラス:
    OGDocument, OGElement

    public class OGNode
    extends java.lang.Object
    ノードの基底クラスとなる、OGNode クラスを定義します。 OGElement、OGDocument は、この、OGNode クラスを継承します。 ただし、OGAttributes は、独立しているため、このクラスは継承していません。 最も一般的なノードは、テキストノードであり、 OGNode は、enum OGNodeType で区別される状態を持っています。 その内、OGElement と OGDocument は、サブクラスになっています。 OGNodeType は、それぞれ、再設定が可能です。 例えば、既存のエレメントやノードに対して、コメントタイプ(Comment)を指定すると、 ファイル等への出力時にコメントとして出力されます。   List   :内部に、OGNode の ArrayList を持つ   Text   :内部は、文字列の BODY 部分を持つ   Comment  :内部は、文字列であるが、toString() 時には、コメント記号を前後に出力する。   Cdata   :内部は、TextNodeのArrayList を持つ、toString() 時には、Cdataを前後に出力する。   Element  :タグ名、属性、OGNode の ArrayList の入れ子状態をもつ   Document :トップのElement として、read/write するときに使用。構造は、唯一の OGElement を持つ List タイプ
    変更履歴:
    5.1.8.0 (2010/07/01) 新規作成, 5.6.1.2 (2013/02/22) 構想からやり直し
    バージョン
    5.0
    作成者
    Kazuhiko Hasegawa
    導入されたバージョン:
    JDK6.0,
    • フィールドの概要

      フィールド 
      修飾子とタイプ フィールド 説明
      protected static int BUFFER_MIDDLE
      StringBilderなどの初期値を設定します。
      protected static java.lang.String CR
      システムの改行コードを設定します。
    • コンストラクタの概要

      コンストラクタ 
      コンストラクタ 説明
      OGNode()
      デフォルトコンストラクター ここでは、NodeType は、List に設定されます。
      OGNode​(java.lang.String txt)
      テキストノードを構築するためのコンストラクター テキストノードは、簡易的に、内部には、ノードリストではなく文字列を持っています。
    • メソッドの概要

      すべてのメソッド インスタンス・メソッド concreteメソッド 
      修飾子とタイプ メソッド 説明
      OGNode addNode​(java.lang.String txt)
      テキストノードをノードリストに追加します。
      OGNode addNode​(OGNode node)
      ノードをノードリストに追加します。
      void changeNode​(OGNode orgNode, OGNode newNode)
      ノードリストから、指定のノード(orgNode)を新しいノード(newNode)に置き換えます。
      void clearNode()
      ノードリストから、すべてのノードを削除します。
      java.util.List<OGElement> getChildElementList()
      ノードリストから、直下(メンバー)のエレメントのみをリストにして返します。
      java.util.List<OGElement> getElementList​(java.lang.String qName)
      ノードリストから、下位の階層に存在するすべてのエレメントをリストにして返します。
      OGNode getNode​(int adrs)
      ノードリストに追加されている、ノードを返します。
      OGNodeType getNodeType()
      ノードタイプを取得します。
      int getParentCount()
      自身にセットされている、親ノードの階層数を返します。
      OGNode getParentNode()
      自身にセットされている、親ノードを返します。
      java.lang.String getText​(int cnt)
      ノードリストの文字列を返します。
      int nodeSize()
      ノードリストに追加されている、ノードの個数を返します。
      OGNode removeNode​(int adrs)
      ノードリストから、指定の配列番号の、ノードを削除します。
      void setNode​(int adrs, OGNode node)
      ノードリストに、ノードをセットします。
      void setNodeType​(OGNodeType type)
      ノードタイプを設定します。
      java.lang.String toString()
      オブジェクトの文字列表現を返します。
      • クラスから継承されたメソッド java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • フィールドの詳細

      • CR

        protected static final java.lang.String CR
        システムの改行コードを設定します。
      • BUFFER_MIDDLE

        protected static final int BUFFER_MIDDLE
        StringBilderなどの初期値を設定します。 200
        関連項目:
        定数フィールド値
    • コンストラクタの詳細

      • OGNode

        public OGNode()
        デフォルトコンストラクター ここでは、NodeType は、List に設定されます。
      • OGNode

        public OGNode​(java.lang.String txt)
        テキストノードを構築するためのコンストラクター テキストノードは、簡易的に、内部には、ノードリストではなく文字列を持っています。
        パラメータ:
        txt - テキストノードの設定値
        変更履歴:
        5.6.1.2 (2013/02/22) 内部テキストがない場合のタグの終了時にスペースは入れない。 ここでは、NodeType は、Text に設定されます。 ただし、引数のテキストが null のNodeType は、List に設定されます。
    • メソッドの詳細

      • addNode

        public OGNode addNode​(java.lang.String txt)
        テキストノードをノードリストに追加します。 内部的にテキストノードを構築して、リストに追加しています。 戻り値は、StringBuilder#append(String) の様に、連結登録できるように 自分自身を返しています。 テキストノードに、この処理を行うと、エラーになります。 一旦、テキストノードとして作成したノードには、ノードを追加できません。
        パラメータ:
        txt - テキストノードの設定値
        戻り値:
        自分自身(this)のノード
        このメソッドは、nullを返しません
      • addNode

        public OGNode addNode​(OGNode node)
        ノードをノードリストに追加します。 追加するノードの親として、自分自身を登録します。 なお、同じオブジェクトを、複数の親に追加する場合(ノードリストには追加可能)は、 親ノードは、最後に登録されたノードのみが設定されます。 テキストノードに、この処理を行うと、エラーになります。 一旦、テキストノードとして作成したノードには、ノードを追加できません。
        パラメータ:
        node - ノード
        戻り値:
        自分自身(this)のノード
        このメソッドは、nullを返しません
      • nodeSize

        public int nodeSize()
        ノードリストに追加されている、ノードの個数を返します。
        戻り値:
        ノードリストの数
      • getNode

        public OGNode getNode​(int adrs)
        ノードリストに追加されている、ノードを返します。 ノードの指定には、配列番号を使用します。 ノードの個数は、事前に、nodeSize() で調べて置いてください。 当然、テキストノードの場合は、nodeSize()==0 なので、 このメソッドでは取得できません。
        パラメータ:
        adrs - ノードリストの位置
        戻り値:
        指定の配列番号のノード
      • setNode

        public void setNode​(int adrs,
                            OGNode node)
        ノードリストに、ノードをセットします。 ノードリストの指定のアドレスに、ノードをセットします。 これは、追加ではなく置換えになります。 ノードの指定には、配列番号を使用します。 ノードの個数は、事前に、nodeSize() で調べて置いてください。
        パラメータ:
        adrs - ノードリストの位置
        node - セットするノード
      • getParentNode

        public OGNode getParentNode()
        自身にセットされている、親ノードを返します。 親ノードは、自身のオブジェクトに、一つしか設定できません。 これは、オブジェクトとして、同一ノードを、複数の親ノードに 追加した場合(これは、ノードリストへの追加なので可能)最後に追加した 親ノードのみ、保持していることになります。 XML を構築するときは、同一のノードであっても、毎回、作成しなおさないと、 親ノードを見つけて、何かを行う場合には、おかしな動きをすることになります。 なお、ノードオブジェクト自体が、親ノードから削除されても、自身の 親ノード情報は保持し続けています。 ある Element から削除したノードを別のElementに追加すると、その時点で、 親ノードも更新されます。
        戻り値:
        親ノード
      • getParentCount

        public int getParentCount()
        自身にセットされている、親ノードの階層数を返します。 自身のオブジェクトに設定されている親ノードを順番にさかのぼって、 何階層あるか返します。 これは、getText(int) の引数に使えます。 親ノードがひとつもない場合、つまり自身が最上位の場合は、0 が返されます。
        戻り値:
        自身の階層
      • removeNode

        public OGNode removeNode​(int adrs)
        ノードリストから、指定の配列番号の、ノードを削除します。 ノードの指定には、配列番号を使用します。 ノードの個数は、事前に、nodeSize() で調べて置いてください。
        パラメータ:
        adrs - ノードリストの位置
        戻り値:
        削除されたノード
      • clearNode

        public void clearNode()
        ノードリストから、すべてのノードを削除します。 これは、ノードリストをクリアします。
      • changeNode

        public void changeNode​(OGNode orgNode,
                               OGNode newNode)
        ノードリストから、指定のノード(orgNode)を新しいノード(newNode)に置き換えます。 ノードは、それぞれ、ノードが作成された順番で、ユニークな番号を持っています。 その番号を元に、ノードを探し出して、置き換えます。 通常の、XMLパースから作成されたノードは、すべて一意にユニーク番号が振られますが、 新しくつったノードを複数のノードと置き換える場合、置き換えられた後のノードは、 オブジェクトそのものが、同一になるため、注意が必要です。
        パラメータ:
        orgNode - 置換元のオリジナルノード
        newNode - 置換する新しいノード
      • getChildElementList

        public java.util.List<OGElement> getChildElementList()
        ノードリストから、直下(メンバー)のエレメントのみをリストにして返します。 ノードリストの第一レベルで、エレメントのみを返します。 通常は、あるエレメントを、getElementList( String ) 等で検索した後、その子要素を 取り出す場合に使用します。 該当するエレメントが、なにも存在しない場合は、空のリストオブジェクトが返されます。
        戻り値:
        直下(メンバー)のエレメントのリスト
      • getElementList

        public java.util.List<OGElement> getElementList​(java.lang.String qName)
        ノードリストから、下位の階層に存在するすべてのエレメントをリストにして返します。 エレメントは、名前を指定して検索します。 該当するエレメントが、なにも存在しない場合は、空のリストオブジェクトが返されます。
        パラメータ:
        qName - エレメントの名前
        戻り値:
        下位の階層に存在するすべてのエレメントのリスト
      • setNodeType

        public void setNodeType​(OGNodeType type)
        ノードタイプを設定します。 ノードタイプとは、List , Text , Comment , Cdata , Element , Document などの ノードの種別を表す enum タイプです。 基本的には、オブジェクトの取得時に、ファクトリメソッド経由であれば、自動的に設定 されています。 ここでは、可変設定できます。 例えば、既存のエレメントやノードに対して、コメントタイプ(Comment)を指定すると、 ファイル等への出力時にコメントとして出力されます。 null を指定すると、なにも処理されません。
        パラメータ:
        type - enumのOGNodeType
        関連項目:
        OGNodeType
      • getNodeType

        public OGNodeType getNodeType()
        ノードタイプを取得します。 ノードタイプとは、List , Text , Comment , Cdata , Element , Document などの ノードの種別を表す enum タイプです。 基本的には、オブジェクトの取得時に、ファクトリメソッド経由であれば、自動的に設定 されています。
        戻り値:
        ノードタイプ
        関連項目:
        OGNodeType
      • getText

        public java.lang.String getText​(int cnt)
        ノードリストの文字列を返します。 これは、タグで言うところのBODY部に書かれた文字列に相当します。 該当する文字列が、存在しない場合は、空の文字列(ゼロストリング)が返されます。
        パラメータ:
        cnt - Nodeの階層
        戻り値:
        ノードリストの文字列(BODY部に書かれた文字列)
      • toString

        public java.lang.String toString()
        オブジェクトの文字列表現を返します。 文字列は、OGNodeType により異なります。 Comment ノードの場合は、コメント記号を、Cdata ノードの場合は、CDATA を つけて出力します。
        オーバーライド:
        toString クラス内 java.lang.Object
        戻り値:
        このオブジェクトの文字列表現
        関連項目:
        Object.toString()
        このメソッドは、nullを返しません