ts.util.resource
クラス XmlResource

java.lang.Object
  上位を拡張 ts.util.resource.AbstractResource
      上位を拡張 ts.util.resource.XmlResource
すべての実装されたインタフェース:
Resource

public class XmlResource
extends AbstractResource

XMLファイルを対象とするリソースクラス。
XMLファイルをロードして、その内容から指定されたキーに対する値を取得する。 また、指定されたキーに対して値を設定し、その内容をXMLファイルに保存する。 名前空間の対応については、名前空間を特定してロードしたり保存したりすること はできないが、名前空間を使ったXMLファイルでも、名前空間を使用しない場合と 同様にロードして値を取得したり、値を設定して保存したりできるようにしている。

XMLファイルの記述と、リソースオブジェクトのキーとの対応は、例えば以下のよう になる。

  〜 XMLファイル 〜
    <aaa>
      <bbb>
        <ddd>あああ</ddd>
        <eee>いいい</eee>
        <eee>ううう</eee>
      </bbb>
      <ccc>
        <fff id="F1">えええ</fff>
        <fff id="F2">おおお</fff>
      </ccc>
    </aaa>
   - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    res : XmlResource

    res.getFirstValue("aaa.bbb.ddd") → あああ
    res.getFirstValue("aaa.bbb.eee") → いいい
    res.getFirstValue("aaa.bbb.fff") → えええ

    res.getValues("aaa.bbb.ddd")     → { あああ }
    res.getValues("aaa.bbb.eee")     → { いいい, ううう }
    res.getValues("aaa.bbb.fff")     → { えええ, おおお }

    res.getFirstValue("aaa.bbb.eee(id=F1)") → えええ
    res.getFirstValue("aaa.bbb.eee(id=F2)") → おおお

    res.getValues("aaa.bbb.eee(id=F2)") → { おおお }

    res.getFirstAttribute("aaa.bbb.fff", "id")        → F1
    res.getFirstAttribute("aaa.bbb.fff(id=F2)", "id") → F2

    res.getAttributes("aaa.bbb.fff", "id")        → F1
    res.getAttributes("aaa.bbb.fff(id=F2)", "id") → F2
 

バージョン:
$Revision: 1.2 $, $Date: 2010-10-16 09:34:36 $
作成者:
佐藤隆之.

フィールドの概要
 
インタフェース ts.util.resource.Resource から継承されたフィールド
EMPTY
 
コンストラクタの概要
  XmlResource()
          デフォルトコンストラクタ。
  XmlResource(java.lang.String path)
          XMLファイルのパスを引数にとるコンストラクタ。
protected XmlResource(XmlResource res)
          コピーコンストラクタ。
 
メソッドの概要
protected  javax.xml.parsers.DocumentBuilder createDocumentBuilder()
          XMLドキュメント構築オブジェクトを作成する。
protected  java.util.List<org.w3c.dom.Node> findAllNodes(java.lang.String key)
          指定されたキーに該当する全てのノードを取得する。
protected  org.w3c.dom.Node findFirstNode(java.lang.String key)
          指定されたキーに最初に該当するノードを取得する。
protected  org.w3c.dom.Node findOrCreateFirstNode(java.lang.String key)
          キー要素リストに最初に該当する下位ノードを探索して、存在すればそれを返し、 存在しなければ作成して返す。
 java.util.List<java.lang.String> getAttributes(java.lang.String key, java.lang.String attr)
          指定されたキーに該当する全要素の、指定された属性の値のリストを取得する。
 java.lang.String getBaseElementName()
          基底要素の名前を取得する。
protected  org.w3c.dom.Node getBaseNode()
          このオブジェクトが示すドキュメントオブジェクトの基底ノードを取得する。
 java.util.List<Resource> getChildren(java.lang.String key)
          指定されたキーに最初に該当する子リソースのリストを取得する。
protected  org.w3c.dom.Document getDocument()
          XMLドキュメントオブジェクトを取得する。
 java.lang.String getFirstAttribute(java.lang.String key, java.lang.String attr)
          指定されたキーに最初に該当する要素の、指定された属性の値を取得する。
 Resource getFirstChild(java.lang.String key)
          指定されたキーに最初に該当する要素を基底要素とする子リソースを取得する。
 java.lang.String getFirstValue(java.lang.String key)
          指定されたキーに最初に該当する要素の値文字列を取得する。
protected  java.lang.String getNodeText(org.w3c.dom.Node node)
          指定されたノードのテキスト値を取得する。
 Resource getOrCreateFirstChild(java.lang.String key)
          指定されたキーに最初に該当する要素を基底要素とする子リソースを取得する。
 java.util.List<java.lang.String> getValues(java.lang.String key)
          指定されたキーに該当する全要素の値文字列のリストを取得する。
 java.util.List<java.lang.Object> getValuesAndChildren()
          現在の基底要素の全てのテキスト値と、子要素のリソース・オブジェクトを格納 したリストを取得する。
 void load(java.io.InputStream stream)
          引数の入力ストリームからXMLファイルの内容を読み込む。
 void removeChildren(java.lang.String key)
          指定されたキーに該当する全ての要素を削除する。
 void save(java.io.OutputStream stream)
          このオブジェクトが保持しているドキュメントの内容を、指定された 出力ストリームに保存する。
 void setFirstValue(java.lang.String key, java.lang.String value)
          指定されたキーに最初に該当する要素に、値文字列を設定する。
 void setValidating(boolean isValidating)
          XMLファイルを読み込む際にXMLの正当性をチェックするかどうかを設定する。
protected  java.lang.String shortenWhitespace(java.lang.String s)
          指定された文字列中の空白の並びを一つの空白に短縮する。
 
クラス ts.util.resource.AbstractResource から継承されたメソッド
attributeMatchMark, attributeParenthesis, attributeSeparator, elementSeparator, getAttributeMatchMark, getAttributeParenthesis, getAttributeSeparator, getElementSeparator, getInputStream, getNameOfKeyElement, getOutputStream, getPath, listAttributesOfKeyElement, load, save, setAttributeMatchMark, setAttributeMatchMark, setAttributeParenthesis, setAttributeParenthesis, setAttributeSeparator, setAttributeSeparator, setElementSeparator, setElementSeparator, splitKey
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

XmlResource

public XmlResource()
デフォルトコンストラクタ。


XmlResource

public XmlResource(java.lang.String path)
            throws java.io.FileNotFoundException,
                   java.io.IOException
XMLファイルのパスを引数にとるコンストラクタ。

パラメータ:
path - XMLファイルのパス。
例外:
java.io.FileNotFoundException - 指定したパスのファイルが見つからない場合。
java.io.IOException - ファイルの入出力中に例外が発生した場合。

XmlResource

protected XmlResource(XmlResource res)
コピーコンストラクタ。

パラメータ:
res - コピー元のXMLリソースオブジェクト。
例外:
java.lang.AssertionError - 引数がヌルの場合(デバッグモードのみ)。
メソッドの詳細

setValidating

public void setValidating(boolean isValidating)
XMLファイルを読み込む際にXMLの正当性をチェックするかどうかを設定する。
デフォルトではfalseである。


getDocument

protected org.w3c.dom.Document getDocument()
XMLドキュメントオブジェクトを取得する。

戻り値:
XMLドキュメントオブジェクト。

getBaseNode

protected org.w3c.dom.Node getBaseNode()
このオブジェクトが示すドキュメントオブジェクトの基底ノードを取得する。

戻り値:
基底ノード。

getBaseElementName

public java.lang.String getBaseElementName()
基底要素の名前を取得する。
要素名に名前空間が含まれている場合は、ローカル名だけを返す。

戻り値:
基底要素の名前。

findFirstNode

protected org.w3c.dom.Node findFirstNode(java.lang.String key)
                                  throws IllegalKeyException
指定されたキーに最初に該当するノードを取得する。
該当するノードが一つも存在しない場合はヌルを返す。 引数のキーが不正な場合は例外をスローする。

パラメータ:
key - キー。
戻り値:
引数のキーに最初に対応するノード。
例外:
IllegalKeyException - キーが不正な場合。
java.lang.AssertionError - 引数がヌルの場合(デバッグモードのみ)。

findAllNodes

protected java.util.List<org.w3c.dom.Node> findAllNodes(java.lang.String key)
                                                 throws IllegalKeyException
指定されたキーに該当する全てのノードを取得する。
該当するノードが一つも存在しない場合は空のリストを返す。 引数のキーが不正な場合は例外をスローする。

パラメータ:
key - キー。
戻り値:
引数のキーに対応する全てのノードを格納するリスト。
例外:
IllegalKeyException - キーが不正な場合。
java.lang.AssertionError - 引数がヌルの場合(デバッグモードのみ)。

findOrCreateFirstNode

protected org.w3c.dom.Node findOrCreateFirstNode(java.lang.String key)
                                          throws IllegalKeyException
キー要素リストに最初に該当する下位ノードを探索して、存在すればそれを返し、 存在しなければ作成して返す。
引数のキーが不正な場合は、例外をスローする。

パラメータ:
key - キー文字列。
戻り値:
引数のキーに最初に対応する、又は作成されたノード。
例外:
IllegalKeyException - キーが不正な場合。
java.lang.AssertionError - 引数がヌルの場合(デバッグモードのみ)。

getNodeText

protected java.lang.String getNodeText(org.w3c.dom.Node node)
指定されたノードのテキスト値を取得する。
引数がヌルの場合は空文字列を返す。

パラメータ:
node - ノードオブジェクト。
戻り値:
引数のノードのテキスト値。

shortenWhitespace

protected java.lang.String shortenWhitespace(java.lang.String s)
指定された文字列中の空白の並びを一つの空白に短縮する。
但し、文字列の先頭と終端の空白は除去する。

パラメータ:
s - 文字列。
戻り値:
空白の並びを一つの空白に短縮された文字列。
例外:
java.lang.AssertionError - 引数がヌルの場合(デバッグモードのみ)。

getFirstValue

public java.lang.String getFirstValue(java.lang.String key)
                               throws IllegalKeyException
指定されたキーに最初に該当する要素の値文字列を取得する。
該当する要素が一つも存在しない場合は空文字列を返す。 引数のキーが不正な場合は例外をスローする。

パラメータ:
key - キー文字列。
戻り値:
引数のキーに最初に該当する要素の値文字列。
例外:
IllegalKeyException - キーが不正な場合。
java.lang.AssertionError - 引数がヌルの場合(デバッグモードのみ)。

getValues

public java.util.List<java.lang.String> getValues(java.lang.String key)
                                           throws IllegalKeyException
指定されたキーに該当する全要素の値文字列のリストを取得する。
該当する要素が一つも存在しない場合は空のリストを返す。 引数のキーが不正な場合は例外をスローする。

パラメータ:
key - キー文字列。
戻り値:
引数のキーに該当する全要素の値文字列のリスト。
例外:
IllegalKeyException - キーが不正な場合。
java.lang.AssertionError - 引数のヌルの場合(デバッグモードのみ)。

getFirstAttribute

public java.lang.String getFirstAttribute(java.lang.String key,
                                          java.lang.String attr)
                                   throws IllegalKeyException
指定されたキーに最初に該当する要素の、指定された属性の値を取得する。
該当する要素が存在しない場合は空文字列を返す。 該当する要素に、指定された名前の属性が存在しない場合は空文字列を返す。 引数のキーが不正な場合は例外をスローする。

パラメータ:
key - キー文字列。
attr - 属性名。
戻り値:
引数のキーに最初に該当する要素の、指定された属性の値。
例外:
IllegalKeyException - キーが不正な場合。
java.lang.AssertionError - 引数がヌルの場合(デバッグモードのみ)。

getAttributes

public java.util.List<java.lang.String> getAttributes(java.lang.String key,
                                                      java.lang.String attr)
                                               throws IllegalKeyException
指定されたキーに該当する全要素の、指定された属性の値のリストを取得する。
該当する要素が一つも存在しない場合は空のリストを返す。 引数のキーが不正な場合は例外をスローする。

パラメータ:
key - キー文字列。
attr - 属性名。
戻り値:
引数のキーに該当する全要素の、指定された属性の値のリスト。
例外:
IllegalKeyException - キーが不正な場合。
AssertError - 引数がヌルの場合。

getFirstChild

public Resource getFirstChild(java.lang.String key)
                       throws IllegalKeyException
指定されたキーに最初に該当する要素を基底要素とする子リソースを取得する。
指定されたキーに該当する要素が存在しない場合は Resource.EMPTYを返す。 引数のキーが不正な場合は例外をスローする。

パラメータ:
key - キー文字列。
戻り値:
引数のキーに最初に該当する要素の子リソース。
例外:
IllegalKeyException - キーが不正な場合。
java.lang.AssertionError - 引数がヌルの場合(デバッグモードのみ)。

getChildren

public java.util.List<Resource> getChildren(java.lang.String key)
                                     throws IllegalKeyException
指定されたキーに最初に該当する子リソースのリストを取得する。
指定されたキーに該当する要素が存在しない場合は空のリストを返す。 引数のキーが不正な場合は例外をスローする。

パラメータ:
key - キー文字列。
戻り値:
引数のキーに該当する要素の子リソースのリスト。
例外:
IllegalKeyException - キーが不正な場合。
java.lang.AssertionError - 引数がヌルの場合(デバッグモードのみ)。

setFirstValue

public void setFirstValue(java.lang.String key,
                          java.lang.String value)
                   throws IllegalKeyException
指定されたキーに最初に該当する要素に、値文字列を設定する。
指定されたキーに該当する要素が存在しない場合は、その要素を作成して 値を設定する。

パラメータ:
key - キー文字列。
value - 引数のキーに最初に該当する要素に設定する値。
例外:
IllegalKeyException - キーが不正な場合。
java.lang.AssertionError - 引数がヌルの場合(デバッグモードのみ)。

getOrCreateFirstChild

public Resource getOrCreateFirstChild(java.lang.String key)
                               throws IllegalKeyException
指定されたキーに最初に該当する要素を基底要素とする子リソースを取得する。 指定されたキーに該当する要素が存在しない場合は作成して返す。
引数のキーが不正な場合は例外をスローする。

パラメータ:
key - キー文字列。
戻り値:
指定されたキーに最初に該当する要素を基底要素とする子リソース。
例外:
IllegalKeyException - キーが不正な場合。
java.lang.AssertionError - 引数がヌルの場合(デバッグモードのみ)。

removeChildren

public void removeChildren(java.lang.String key)
                    throws IllegalKeyException
指定されたキーに該当する全ての要素を削除する。
指定されたキーに該当する要素が見つからなかった場合は、何もしない。

パラメータ:
key - キー文字列。
例外:
IllegalKeyException - キーが不正な場合。
java.lang.AssertionError - 引数がヌルの場合(デバッグモードのみ)。

getValuesAndChildren

public java.util.List<java.lang.Object> getValuesAndChildren()
現在の基底要素の全てのテキスト値と、子要素のリソース・オブジェクトを格納 したリストを取得する。

戻り値:
現在の基底要素のテキスト値、及び子要素のリソース・オブジェクトを 格納したリスト。

load

public void load(java.io.InputStream stream)
          throws java.io.IOException
引数の入力ストリームからXMLファイルの内容を読み込む。

定義:
クラス AbstractResource 内の load
パラメータ:
stream - 入力ストリーム。
例外:
java.io.IOException - 読み込み中に例外が発生した場合。
java.lang.AssertionError - 引数がヌルの場合(デバッグモードのみ)。

createDocumentBuilder

protected javax.xml.parsers.DocumentBuilder createDocumentBuilder()
                                                           throws javax.xml.parsers.ParserConfigurationException
XMLドキュメント構築オブジェクトを作成する。

戻り値:
XMLドキュメント構築オブジェクト。
例外:
javax.xml.parsers.ParserConfigurationException - 要求された構成を満たすXMLドキュメント 構築オブジェクトを生成できない場合

save

public void save(java.io.OutputStream stream)
          throws java.io.IOException
このオブジェクトが保持しているドキュメントの内容を、指定された 出力ストリームに保存する。

定義:
クラス AbstractResource 内の save
パラメータ:
stream - 出力ストリーム。
例外:
java.lang.UnsupportedOperationException - 子リソースを保存しようとした場合。
java.io.IOException - ファイルの保存中に例外が発生した場合。
java.lang.AssertionError - 引数がヌルの場合(デバッグモードのみ)。


Copyright (C) SATOH Takayuki All Rights Reserved.