org.pigeonblood.impl.core.list
クラス SimpleDocumentList

java.lang.Object
  上位を拡張 org.pigeonblood.impl.core.list.SimpleDocumentList
すべての実装されたインタフェース:
java.lang.Iterable<org.lixm.core.model.XMLModel>, java.util.Collection<org.lixm.core.model.XMLModel>, java.util.RandomAccess, org.lixm.core.list.XMLDocumentList<org.lixm.core.model.XMLModel>, org.lixm.core.list.XMLModelList<org.lixm.core.model.XMLModel>, org.lixm.optional.v15.model.dynamic.DynamicModel

public class SimpleDocumentList
extends java.lang.Object
implements org.lixm.core.list.XMLDocumentList<org.lixm.core.model.XMLModel>, java.util.RandomAccess

XMLDocumentListの単純な実装です。
間接的にCollectionを実装するので他の Java Collections Frameworkと同等の扱いが可能です。

各種アクセス方法

モデルへの順次アクセス

モデルへの順次アクセスを行うにはマニピュレータを取得します。

 //モデルリストからマニピュレータの取得
 XMLManipulator mani = list.Iterator();
 for( ; mani.hasNext(); ){
        System.out.println(mani.next());
 }
 

このコードは以下と同義です。

 for(AbstractModel model : list){
        System.out.println(model);
 } 

また、マニピュレータの前進と後退は独立したインデックスからそれぞれ開始されます。

モデルへのランダムアクセス

モデルへのランダムアクセスを行うにはget(int) を直接利用するか、カーソルを取得します。

 
 XMLCursor cur = list.getCursor();
 
 //直接インデックスを指定してアクセス
 System.out.println(list.get(10));
 
 //カーソルから特定モデルの位置情報を取得してからアクセス
 System.out.println(list.get(cur.getRootStartTag()));
 System.out.println(list.get(cur.getFirst()));
 

モデルの位置情報へのアクセス

モデルの位置情報を取得するにはカーソルを取得します。

 XMLCursor cur = list.getCursor();
 
 System.out.println("ルート要素の開始タグの位置は" + list.get(cur.getRootStartTag()) + "です。");
 System.out.println("ルート要素の終了タグの位置は" + list.get(cur.getRootEndTag()) + "です。");
 
 

導入されたバージョン:
0.1
作成者:
tasogare

コンストラクタの概要
SimpleDocumentList(int length)
          リストの長さを指定して新たなリストを作成します。
SimpleDocumentList(org.lixm.core.model.XMLModel[] models)
          ソースモデル配列を元に新たなリストを作成します。
 
メソッドの概要
 boolean add(org.lixm.core.model.XMLModel model)
          リストにモデルを追加します。
 boolean addAll(java.util.Collection<? extends org.lixm.core.model.XMLModel> c)
          コレクション内の全ての要素をリストに追加します。
 void clear()
          リストをクリアします。
 boolean contains(java.lang.Object o)
          リストに指定されたモデルが含まれているかどうか調べます。
 boolean containsAll(java.util.Collection<?> c)
          リストに指定されたコレクションの全てが含まれているかどうか調べます。
 org.lixm.core.model.XMLModel get(int index)
          リストの指定した位置のモデルを取得
 org.lixm.core.list.XMLCursor getCursor()
          
 org.lixm.core.model.XMLModel getRootEndTag()
          
 org.lixm.core.model.XMLModel getRootStartTag()
          
 boolean isEmpty()
          
 boolean isSealed()
          
 java.util.Iterator<org.lixm.core.model.XMLModel> iterator()
          
 boolean remove(java.lang.Object o)
          サポートしません。
 boolean removeAll(java.util.Collection<?> c)
          サポートしません。
 boolean retainAll(java.util.Collection<?> c)
          指定されたコレクションに格納されている要素だけを保持します 。
 void set(org.lixm.core.model.XMLModel model, int index)
          リスト内の指定された位置にある要素を、指定された要素に置き換えます。
 void setSeal(boolean seal)
          
 int size()
          
 java.lang.Object[] toArray()
          メソッドは、配列ベースの API とコレクションベースの API の間の橋渡し役として機能します。
<T> T[]
toArray(T[] a)
          メソッドは、配列ベースの API とコレクションベースの API の間の橋渡し役として機能します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース java.util.Collection から継承されたメソッド
equals, hashCode
 

コンストラクタの詳細

SimpleDocumentList

public SimpleDocumentList(org.lixm.core.model.XMLModel[] models)

ソースモデル配列を元に新たなリストを作成します。

パラメータ:
models - ソース配列

SimpleDocumentList

public SimpleDocumentList(int length)

リストの長さを指定して新たなリストを作成します。

パラメータ:
length - リストの長さ
メソッドの詳細

add

public boolean add(org.lixm.core.model.XMLModel model)
            throws java.lang.NullPointerException,
                   java.lang.IllegalStateException
リストにモデルを追加します。

定義:
インタフェース java.util.Collection<org.lixm.core.model.XMLModel> 内の add
定義:
インタフェース org.lixm.core.list.XMLModelList<org.lixm.core.model.XMLModel> 内の add
例外:
java.lang.NullPointerException - 引数にnullが渡されたとき
java.lang.IllegalStateException - リストがシールされている場合

addAll

public boolean addAll(java.util.Collection<? extends org.lixm.core.model.XMLModel> c)
               throws java.lang.NullPointerException,
                      java.lang.IllegalStateException,
                      java.lang.ClassCastException

コレクション内の全ての要素をリストに追加します。
コレクションの要素は全てモデルでなければならず、 コレクションまたはモデルがnullの場合はNullPointerException が投げられます。

さらに、一度この操作が成功した場合にはリストがシールされた状態になり、 リストに対するモデルの追加操作が不可能になります。このときモデルを追加しようとすると IllegalStateExceptionが投げられます。

この実装ではリストへのモデルの追加が失敗した場合常に何らかの例外が投げられ、 そうでない場合は常に戻り値としてtrueが返ります。

定義:
インタフェース java.util.Collection<org.lixm.core.model.XMLModel> 内の addAll
戻り値:
この操作が成功した場合、常にtrue
例外:
java.lang.NullPointerException - コレクションまたは、モデルがnullの場合
java.lang.IllegalStateException - リストがシールされている場合
java.lang.ClassCastException - モデルのスーパークラスがAbstractModelではない場合

clear

public void clear()
           throws java.lang.IllegalStateException

リストをクリアします。

定義:
インタフェース java.util.Collection<org.lixm.core.model.XMLModel> 内の clear
例外:
java.lang.IllegalStateException - リストがシールされている時

contains

public boolean contains(java.lang.Object o)
                 throws java.lang.ClassCastException,
                        java.lang.NullPointerException

リストに指定されたモデルが含まれているかどうか調べます。

引数oAbstractModelにキャストできない場合は ClassCastExceptionが投げられます。

また、nullの場合は NullPointerExceptionが投げられます。

定義:
インタフェース java.util.Collection<org.lixm.core.model.XMLModel> 内の contains
戻り値:
リストにモデルが含まれている場合true
例外:
java.lang.ClassCastException - 引数がAbstractModelにキャストできない場合
java.lang.NullPointerException - 引数がnullの場合

containsAll

public boolean containsAll(java.util.Collection<?> c)
                    throws java.lang.ClassCastException,
                           java.lang.NullPointerException

リストに指定されたコレクションの全てが含まれているかどうか調べます。

引数cの持つ要素がAbstractModelにキャストできない場合は ClassCastExceptionが投げられます。

また、引数c自体がnullの場合は NullPointerExceptionが投げられます。

定義:
インタフェース java.util.Collection<org.lixm.core.model.XMLModel> 内の containsAll
戻り値:
リストにコレクションの全てがが含まれている場合true
例外:
java.lang.ClassCastException
java.lang.NullPointerException

get

public org.lixm.core.model.XMLModel get(int index)
リストの指定した位置のモデルを取得

定義:
インタフェース org.lixm.core.list.XMLModelList<org.lixm.core.model.XMLModel> 内の get
パラメータ:
index - 取得するモデルのリスト内での絶対位置
戻り値:
AbstractModel型のモデル

getCursor

public org.lixm.core.list.XMLCursor getCursor()

定義:
インタフェース org.lixm.core.list.XMLDocumentList<org.lixm.core.model.XMLModel> 内の getCursor

getRootEndTag

public org.lixm.core.model.XMLModel getRootEndTag()

定義:
インタフェース org.lixm.core.list.XMLDocumentList<org.lixm.core.model.XMLModel> 内の getRootEndTag

getRootStartTag

public org.lixm.core.model.XMLModel getRootStartTag()

定義:
インタフェース org.lixm.core.list.XMLDocumentList<org.lixm.core.model.XMLModel> 内の getRootStartTag

isEmpty

public boolean isEmpty()

定義:
インタフェース java.util.Collection<org.lixm.core.model.XMLModel> 内の isEmpty
定義:
インタフェース org.lixm.core.list.XMLModelList<org.lixm.core.model.XMLModel> 内の isEmpty

iterator

public java.util.Iterator<org.lixm.core.model.XMLModel> iterator()

定義:
インタフェース java.lang.Iterable<org.lixm.core.model.XMLModel> 内の iterator
定義:
インタフェース java.util.Collection<org.lixm.core.model.XMLModel> 内の iterator
定義:
インタフェース org.lixm.core.list.XMLModelList<org.lixm.core.model.XMLModel> 内の iterator

remove

public boolean remove(java.lang.Object o)
               throws java.lang.UnsupportedOperationException

サポートしません。常にUnsupportedOperationExceptionが投げられます。

定義:
インタフェース java.util.Collection<org.lixm.core.model.XMLModel> 内の remove
例外:
java.lang.UnsupportedOperationException - このオペレーションを実行した場合、常に投げられます

removeAll

public boolean removeAll(java.util.Collection<?> c)
                  throws java.lang.UnsupportedOperationException

サポートしません。常にUnsupportedOperationExceptionが投げられます。

clear()を利用してください。

定義:
インタフェース java.util.Collection<org.lixm.core.model.XMLModel> 内の removeAll
例外:
java.lang.UnsupportedOperationException - このオペレーションを実行した場合、常に投げられます

retainAll

public boolean retainAll(java.util.Collection<?> c)
                  throws java.lang.IllegalStateException

指定されたコレクションに格納されている要素だけを保持します 。

つまり、指定されたコレクションに格納されていないすべての要素をこのコレクションから削除します。

定義:
インタフェース java.util.Collection<org.lixm.core.model.XMLModel> 内の retainAll
例外:
java.lang.IllegalStateException - リストがシールされている時

size

public int size()

定義:
インタフェース java.util.Collection<org.lixm.core.model.XMLModel> 内の size
定義:
インタフェース org.lixm.core.list.XMLModelList<org.lixm.core.model.XMLModel> 内の size

toArray

public java.lang.Object[] toArray()

メソッドは、配列ベースの API とコレクションベースの API の間の橋渡し役として機能します。

定義:
インタフェース java.util.Collection<org.lixm.core.model.XMLModel> 内の toArray

toArray

public <T> T[] toArray(T[] a)

メソッドは、配列ベースの API とコレクションベースの API の間の橋渡し役として機能します。

定義:
インタフェース java.util.Collection<org.lixm.core.model.XMLModel> 内の toArray

isSealed

public boolean isSealed()

定義:
インタフェース org.lixm.optional.v15.model.dynamic.DynamicModel 内の isSealed

set

public void set(org.lixm.core.model.XMLModel model,
                int index)
         throws java.lang.IllegalArgumentException,
                java.lang.ArrayIndexOutOfBoundsException,
                java.lang.NullPointerException,
                java.lang.IllegalStateException

リスト内の指定された位置にある要素を、指定された要素に置き換えます。

定義:
インタフェース org.lixm.core.list.XMLModelList<org.lixm.core.model.XMLModel> 内の set
例外:
java.lang.IllegalArgumentException - 指定された要素のあるプロパティーが原因で、このリストにその要素を追加できない場合。
java.lang.ArrayIndexOutOfBoundsException - インデックスが範囲外の場合 (index < 0 || index > size())
java.lang.NullPointerException - モデルリストはnullを許容しません。
java.lang.IllegalStateException - リストがシールされている時

setSeal

public void setSeal(boolean seal)
             throws java.lang.IllegalStateException

定義:
インタフェース org.lixm.optional.v15.model.dynamic.DynamicModel 内の setSeal
例外:
java.lang.IllegalStateException