パッケージ org.opengion.fukurou.xml
クラス OGNode
- java.lang.Object
-
- 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
システムの改行コードを設定します。
-
メソッドの概要
すべてのメソッド インスタンス・メソッド 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()
オブジェクトの文字列表現を返します。
-
-
-
フィールドの詳細
-
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を返しません
-
-