Woolpack API

woolpack.xml
クラス XmlUtils

java.lang.Object
  上位を拡張 woolpack.xml.XmlUtils

public final class XmlUtils
extends java.lang.Object

DOMを操作するユーティリティです。 型推論で表記を簡略するためのスタティックメソッドと変数を含みます。

作成者:
nakamura

フィールドの概要
static Fn<NodeContext,java.lang.Void,java.lang.RuntimeException> CLONE_NODE
          Node.cloneNode(boolean)で複製したノードを再設定する関数です。
static Fn<NodeContext,org.w3c.dom.Node,java.lang.RuntimeException> GET_NODE
          DOM ノード名を返す関数です。
static Fn<org.w3c.dom.Node,java.lang.String,java.lang.RuntimeException> GET_NODE_NAME
          DOM ノード名を返す関数です。
static EL NODE_EL
          NodeContextのアクセサにアクセスする式言語です。
static Fn<NodeContext,java.lang.Void,java.lang.RuntimeException> NORMALIZE_NODE
          ドキュメントノードに対してNode.normalize()を呼び出す関数です。
static Fn<NodeContext,java.lang.Void,java.lang.RuntimeException> REMOVE_CHILDREN
          DOM ノードの全ての子ノードを削除する関数です。
static Fn<NodeContext,java.lang.Void,java.lang.RuntimeException> REMOVE_THIS
          子ノードを全て含む DOM ノードを削除する関数です。
static Fn<NodeContext,java.lang.Void,java.lang.RuntimeException> RETAIN_CHILDREN
          現在の位置の DOM ノードのみを削除する関数です。
 
メソッドの概要
static void appendText(org.w3c.dom.Node node, java.lang.String text)
          DOM ノードの子ノードにテキストノードを追加します。
static
<C extends NodeContext,E extends java.lang.Exception>
Fn<C,java.lang.Void,E>
branchByAttrValue(java.lang.Iterable<java.lang.String> attrNames, Fn<java.lang.String,? extends Fn<? super C,java.lang.Void,? extends E>,? extends E> fn)
          属性値をキーとして委譲先を検索して委譲する関数を生成します。
static
<C extends NodeContext,E extends java.lang.Exception>
Fn<C,java.lang.Void,E>
copyTemplate(GettingEL collectionEL, EL valueEL, Fn<? super C,java.lang.Void,? extends E> fn)
          コンテキスト役からコレクション取得し、 コレクションの各値に対し DOM ノードをコピーして処理を委譲し、 最後にオリジナルのノードを削除する関数を生成します。
static boolean equalsNode(org.w3c.dom.Node node0, org.w3c.dom.Node node1)
          DOM ノードを比較します。
static
<C extends NodeContext,E extends java.lang.Exception>
Fn<C,java.lang.Void,E>
findNode(Fn<? super org.w3c.dom.Node,? extends org.w3c.dom.NodeList,? extends E> findable, Fn<? super C,java.lang.Void,? extends E> fn)
          ノードを検索して委譲する関数を生成します。
static
<C extends NodeContext,E extends java.lang.Exception>
Fn<C,java.lang.Void,E>
findNode(Fn<? super org.w3c.dom.Node,? extends org.w3c.dom.NodeList,? extends E> findable, Fn<? super C,java.lang.Void,? extends E> firstFn, Fn<? super C,java.lang.Void,? extends E> pluralFn)
          ノードを検索して委譲する関数を生成します。
static Fn<NodeContext,java.lang.String,java.lang.RuntimeException> getAttrValue(java.lang.String attrName)
          DOM エレメントの属性値を返す関数を生成します。
static org.w3c.dom.Document getDocumentNode(org.w3c.dom.Node node)
          DOM ドキュメントを返します。
static
<C extends NodeContext>
Fn<C,java.lang.Void,java.lang.RuntimeException>
insertElementToChild(java.lang.String elementName)
          子ノードとして DOM エレメントを挿入する関数を生成します。
static
<C extends NodeContext,E extends java.lang.Exception>
Fn<C,java.lang.Void,E>
insertElementToChild(java.lang.String elementName, Fn<? super C,java.lang.Void,? extends E> fn)
          子ノードとして DOM エレメントを挿入する関数を生成します。
static
<C extends NodeContext>
ParentElementInserter<C,java.lang.RuntimeException>
insertElementToParent(java.lang.String elementName)
          親ノードとして DOM エレメントを挿入する関数を生成します。
static
<C extends NodeContext,E extends java.lang.Exception>
Fn<C,java.lang.Void,E>
insertElementToParent(java.lang.String elementName, Fn<? super C,java.lang.Void,? extends E> fn)
          親ノードとして DOM エレメントを挿入する関数を生成します。
static
<C> Fn<C,org.w3c.dom.Node,java.lang.Exception>
nodeFactory(Fn<? super C,? extends java.io.Reader,? extends java.lang.Exception> readerFactory, Fn<XmlTransformerContext,java.lang.Void,? extends java.lang.Exception> transformer)
          ReaderXmlTransformerを使用するNodeのファクトリを生成します。
static Fn<NodeContext,java.lang.Void,java.lang.RuntimeException> removeAttr(java.lang.String attrName)
          DOM エレメントの属性を削除する関数を生成します。
static void removeChildren(org.w3c.dom.Node node)
          指定された DOM ノードの全ての子ノードを削除します。
static void removeThis(org.w3c.dom.Node node)
          子ノードを含むDOMノードを削除します。
static
<C extends NodeContext,E extends java.lang.Exception>
Fn<C,java.lang.Void,E>
replaceText(Fn<? super C,java.lang.String,? extends E> fn)
          指定された DOM ノードをテキストノードに置き換える関数を生成します。
static
<C extends NodeContext,E extends java.lang.Exception>
Fn<C,java.lang.Void,E>
replaceTextToChild(Fn<? super C,java.lang.String,? extends E> fn)
          指定された DOM ノードの子ノードをテキストノードに置き換える関数を生成します。
static void retainChildren(org.w3c.dom.Node node)
          指定された DOM ノードのみを削除します。
static
<C extends NodeContext,E extends java.lang.Exception>
Fn<C,java.lang.Void,E>
seekNode(Fn<? super C,java.lang.Void,? extends E> fn)
          DOMノードを再帰的にループしながら委譲する関数を生成します。
static
<C extends NodeContext,E extends java.lang.Exception>
Fn<C,java.lang.Void,E>
setNode(Fn<? super C,? extends org.w3c.dom.Node,? extends E> fn)
          委譲先で生成したノードを設定する関数を生成します。
static
<C extends NodeContext,E extends java.lang.Exception>
Fn<C,java.lang.Void,E>
updateAttrValue(java.lang.String attrName, Fn<? super C,java.lang.String,? extends E> fn)
          委譲先の返却値で属性値を更新する関数を生成します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

GET_NODE

public static final Fn<NodeContext,org.w3c.dom.Node,java.lang.RuntimeException> GET_NODE
DOM ノード名を返す関数です。


GET_NODE_NAME

public static final Fn<org.w3c.dom.Node,java.lang.String,java.lang.RuntimeException> GET_NODE_NAME
DOM ノード名を返す関数です。


REMOVE_THIS

public static final Fn<NodeContext,java.lang.Void,java.lang.RuntimeException> REMOVE_THIS
子ノードを全て含む DOM ノードを削除する関数です。


REMOVE_CHILDREN

public static final Fn<NodeContext,java.lang.Void,java.lang.RuntimeException> REMOVE_CHILDREN
DOM ノードの全ての子ノードを削除する関数です。


RETAIN_CHILDREN

public static final Fn<NodeContext,java.lang.Void,java.lang.RuntimeException> RETAIN_CHILDREN
現在の位置の DOM ノードのみを削除する関数です。 子ノードは指定されたノードの位置に挿入されます。


CLONE_NODE

public static final Fn<NodeContext,java.lang.Void,java.lang.RuntimeException> CLONE_NODE
Node.cloneNode(boolean)で複製したノードを再設定する関数です。


NORMALIZE_NODE

public static final Fn<NodeContext,java.lang.Void,java.lang.RuntimeException> NORMALIZE_NODE
ドキュメントノードに対してNode.normalize()を呼び出す関数です。


NODE_EL

public static final EL NODE_EL
NodeContextのアクセサにアクセスする式言語です。

メソッドの詳細

equalsNode

public static boolean equalsNode(org.w3c.dom.Node node0,
                                 org.w3c.dom.Node node1)
DOM ノードを比較します。

パラメータ:
node0 -
node1 -
戻り値:
同一内容を表すなら true。それ以外は false。

removeThis

public static void removeThis(org.w3c.dom.Node node)
子ノードを含むDOMノードを削除します。

パラメータ:
node -

removeChildren

public static void removeChildren(org.w3c.dom.Node node)
指定された DOM ノードの全ての子ノードを削除します。

パラメータ:
node -

retainChildren

public static void retainChildren(org.w3c.dom.Node node)
指定された DOM ノードのみを削除します。子ノードは指定された DOM ノードの位置に挿入されます。

パラメータ:
node -

appendText

public static void appendText(org.w3c.dom.Node node,
                              java.lang.String text)
DOM ノードの子ノードにテキストノードを追加します。

パラメータ:
node -
text -

getDocumentNode

public static org.w3c.dom.Document getDocumentNode(org.w3c.dom.Node node)
DOM ドキュメントを返します。 DOM ドキュメントに対してNode.getOwnerDocument() の呼び出しが失敗するためにこのメソッドを定義しました。

パラメータ:
node -
戻り値:
ドキュメントノード。

branchByAttrValue

public static <C extends NodeContext,E extends java.lang.Exception> Fn<C,java.lang.Void,E> branchByAttrValue(java.lang.Iterable<java.lang.String> attrNames,
                                                                                                             Fn<java.lang.String,? extends Fn<? super C,java.lang.Void,? extends E>,? extends E> fn)
属性値をキーとして委譲先を検索して委譲する関数を生成します。

型パラメータ:
C -
E -
パラメータ:
attrNames - 属性値を取得するための属性名の候補一覧。
fn - 属性値と委譲先の対応表。
戻り値:
関数。

findNode

public static <C extends NodeContext,E extends java.lang.Exception> Fn<C,java.lang.Void,E> findNode(Fn<? super org.w3c.dom.Node,? extends org.w3c.dom.NodeList,? extends E> findable,
                                                                                                    Fn<? super C,java.lang.Void,? extends E> firstFn,
                                                                                                    Fn<? super C,java.lang.Void,? extends E> pluralFn)
ノードを検索して委譲する関数を生成します。 委譲先でノードを操作した場合、次の検索結果に影響するかは委譲先に依存します。

型パラメータ:
C -
E -
パラメータ:
findable - ノードを検索する委譲先。
firstFn - 最初の委譲先(ポインタは検索結果)。
pluralFn - 2番目以降の委譲先(ポインタは検索結果)。
戻り値:
関数。

findNode

public static <C extends NodeContext,E extends java.lang.Exception> Fn<C,java.lang.Void,E> findNode(Fn<? super org.w3c.dom.Node,? extends org.w3c.dom.NodeList,? extends E> findable,
                                                                                                    Fn<? super C,java.lang.Void,? extends E> fn)
ノードを検索して委譲する関数を生成します。 委譲先でノードを操作した場合、次の検索結果に影響するかは委譲先に依存します。

型パラメータ:
C -
E -
パラメータ:
findable -
fn - 委譲先(ポインタは検索結果)。
戻り値:
関数。

getAttrValue

public static Fn<NodeContext,java.lang.String,java.lang.RuntimeException> getAttrValue(java.lang.String attrName)
DOM エレメントの属性値を返す関数を生成します。

パラメータ:
attrName - 属性名。
戻り値:
関数。

insertElementToChild

public static <C extends NodeContext,E extends java.lang.Exception> Fn<C,java.lang.Void,E> insertElementToChild(java.lang.String elementName,
                                                                                                                Fn<? super C,java.lang.Void,? extends E> fn)
子ノードとして DOM エレメントを挿入する関数を生成します。

型パラメータ:
C -
E -
パラメータ:
elementName - エレメント名。
fn - 委譲先(ポインタは挿入したエレメント)。
戻り値:
関数。

insertElementToChild

public static <C extends NodeContext> Fn<C,java.lang.Void,java.lang.RuntimeException> insertElementToChild(java.lang.String elementName)
子ノードとして DOM エレメントを挿入する関数を生成します。

型パラメータ:
C -
パラメータ:
elementName - エレメント名。
戻り値:
関数。

insertElementToParent

public static <C extends NodeContext,E extends java.lang.Exception> Fn<C,java.lang.Void,E> insertElementToParent(java.lang.String elementName,
                                                                                                                 Fn<? super C,java.lang.Void,? extends E> fn)
親ノードとして DOM エレメントを挿入する関数を生成します。

型パラメータ:
C -
E -
パラメータ:
elementName - エレメント名。
fn - 委譲先(ポインタは挿入したエレメント)。
戻り値:
関数。

insertElementToParent

public static <C extends NodeContext> ParentElementInserter<C,java.lang.RuntimeException> insertElementToParent(java.lang.String elementName)
親ノードとして DOM エレメントを挿入する関数を生成します。

型パラメータ:
C -
パラメータ:
elementName - エレメント名。
戻り値:
関数。

copyTemplate

public static <C extends NodeContext,E extends java.lang.Exception> Fn<C,java.lang.Void,E> copyTemplate(GettingEL collectionEL,
                                                                                                        EL valueEL,
                                                                                                        Fn<? super C,java.lang.Void,? extends E> fn)
コンテキスト役からコレクション取得し、 コレクションの各値に対し DOM ノードをコピーして処理を委譲し、 最後にオリジナルのノードを削除する関数を生成します。 HTML で項目を列挙する時に主に使用します。

型パラメータ:
C -
E -
パラメータ:
collectionEL - コレクションへの参照。
valueEL - コレクションの各値の格納先。
fn - コレクションの各値に対する委譲先(ポインタはコピーしたノード)。
戻り値:
関数。

nodeFactory

public static <C> Fn<C,org.w3c.dom.Node,java.lang.Exception> nodeFactory(Fn<? super C,? extends java.io.Reader,? extends java.lang.Exception> readerFactory,
                                                                         Fn<XmlTransformerContext,java.lang.Void,? extends java.lang.Exception> transformer)
ReaderXmlTransformerを使用するNodeのファクトリを生成します。

型パラメータ:
C -
パラメータ:
readerFactory - リーダーのファクトリ。
transformer - XMLの変換器。
戻り値:
ファクトリ。

removeAttr

public static Fn<NodeContext,java.lang.Void,java.lang.RuntimeException> removeAttr(java.lang.String attrName)
DOM エレメントの属性を削除する関数を生成します。

パラメータ:
attrName - 削除対象の属性名。
戻り値:
関数。

replaceText

public static <C extends NodeContext,E extends java.lang.Exception> Fn<C,java.lang.Void,E> replaceText(Fn<? super C,java.lang.String,? extends E> fn)
指定された DOM ノードをテキストノードに置き換える関数を生成します。 取得した値が null の場合は値を更新しません。

型パラメータ:
C -
E -
パラメータ:
fn - 置き換え文字列の取得先。
戻り値:
関数。

replaceTextToChild

public static <C extends NodeContext,E extends java.lang.Exception> Fn<C,java.lang.Void,E> replaceTextToChild(Fn<? super C,java.lang.String,? extends E> fn)
指定された DOM ノードの子ノードをテキストノードに置き換える関数を生成します。 取得した値が null の場合は値を更新しません。

型パラメータ:
C -
E -
パラメータ:
fn - 置き換え文字列の取得先。
戻り値:
関数。

seekNode

public static <C extends NodeContext,E extends java.lang.Exception> Fn<C,java.lang.Void,E> seekNode(Fn<? super C,java.lang.Void,? extends E> fn)
DOMノードを再帰的にループしながら委譲する関数を生成します。 各層をスナップショットとしてループします。

型パラメータ:
C -
E -
パラメータ:
fn - 委譲先(ポインタは各エレメント)。
戻り値:
関数。

setNode

public static <C extends NodeContext,E extends java.lang.Exception> Fn<C,java.lang.Void,E> setNode(Fn<? super C,? extends org.w3c.dom.Node,? extends E> fn)
委譲先で生成したノードを設定する関数を生成します。

型パラメータ:
C -
E -
パラメータ:
fn - 置き換えノードの取得先。
戻り値:
関数。

updateAttrValue

public static <C extends NodeContext,E extends java.lang.Exception> Fn<C,java.lang.Void,E> updateAttrValue(java.lang.String attrName,
                                                                                                           Fn<? super C,java.lang.String,? extends E> fn)
委譲先の返却値で属性値を更新する関数を生成します。 取得した値が null の場合は値を更新しません。

型パラメータ:
C -
E -
パラメータ:
attrName - 更新対象の属性名。
fn - 更新値を計算する委譲先。
戻り値:
関数。

Woolpack API

Copyright (C) 2006-2007 Takahiro Nakamura. All rights reserved.