public abstract class DataModel<E> extends ObjectSE implements IterableSE<E>
DataModel は、子コンポーネント(UIData
など)の行ごとの処理をサポートする Jakarta Server Faces コンポーネントが使用するさまざまなデータソースを適応させるために使用できる任意のデータバインディングテクノロジーに関する抽象化です。
DataModel
インスタンスの基になるデータコレクションは、ゼロ相対カーソル(行インデックス)でアクセスできる行オブジェクトのコレクションとしてモデル化されます。API は、指定されたゼロ相対行インデックスに配置し、現在の行インデックスに対応するデータを表すオブジェクトを取得するメカニズムを提供します。
具体的な DataModel
インスタンスは、setWrappedData()
メソッドを呼び出すことによって、基礎となるデータの特定のコレクションにアタッチされます。このメソッドに null
パラメーターを渡すことで、基礎となるデータコレクションから切り離すことができます。
具体的な DataModel
実装は、setWrappedData(null)
を呼び出す引数なしの public コンストラクターを提供する必要があります。適切な型のラップされたオブジェクトを受け取る(そして setWrappedData()
への呼び出しを介してそれを渡す)便利なコンストラクターも提供する必要があります。
イベントリスナーを登録して、新しい行インデックスが選択されたときに通知を受け取ることができます。
コンストラクターと説明 |
---|
DataModel() |
修飾子と型 | メソッドと説明 |
---|---|
void | addDataModelListener(DataModelListener listener) この DataModel からの通知に関心のあるセットに新しい DataModelListener を追加します。 |
DataModelListener[] | getDataModelListeners() この DataModel からの通知に関心のある DataModelListener のセットを返します。 |
abstract int | getRowCount() この DataModel で表されるデータオブジェクトの行数を返します。 |
abstract E | getRowData() 現在選択されている行インデックスのデータを表すオブジェクトを返します。 |
abstract int | getRowIndex() 現在選択されている行のゼロ相対インデックスを返します。 |
abstract ObjectSE | getWrappedData() この DataModel によってラップされたデータを表すオブジェクトがあれば、それを返します。 |
abstract boolean | isRowAvailable() 現在の rowIndex で使用可能な rowData があるかどうかを示すフラグを返します。 |
IteratorSE<E> | iterator() このモデルの行データに対して読み取り専用の |
void | removeDataModelListener(DataModelListener listener) この DataModel からの通知に関心のあるセットから既存の DataModelListener を削除します。 |
abstract void | setRowIndex(int rowIndex) 現在選択されている行のゼロ相対インデックスを設定するか、行に配置されていないことを示すには -1 を設定します。 |
abstract void | setWrappedData(ObjectSE data) この DataModel によってラップされたデータコレクションを表すオブジェクトを設定します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
forEachSE, spliteratorSE
public abstract boolean isRowAvailable()
現在の rowIndex
で使用可能な rowData
があるかどうかを示すフラグを返します。wrappedData
が利用できない場合は、false
を返します。
FacesException
- 行の可用性を取得するときにエラーが発生した場合 public abstract int getRowCount()
この DataModel
で表されるデータオブジェクトの行数を返します。行数が不明な場合、または使用可能な wrappedData
がない場合は、-1 を返します。
DataModel
によって表されるデータの行数 FacesException
- 行数の取得中にエラーが発生した場合 public abstract E getRowData()
現在選択されている行インデックスのデータを表すオブジェクトを返します。wrappedData
が利用できない場合は、null
を返します。
FacesException
- 行データの取得中にエラーが発生した場合 IllegalArgumentExceptionSE
- 現在指定されている行インデックスで行データが利用できる場合 public abstract int getRowIndex()
現在選択されている行のゼロ相対インデックスを返します。現在行に配置されていない場合、または使用可能な wrappedData
がない場合は、-1 を返します。
FacesException
- 行インデックスの取得中にエラーが発生した場合 public abstract void setRowIndex(int rowIndex)
現在選択されている行のゼロ相対インデックスを設定するか、行に配置されていないことを示すには -1 を設定します。基になるデータコレクションに行データが含まれていない値に行インデックスを設定することができます。呼び出し元は isRowAvailable()
メソッドを使用して、行データが getRowData()
メソッドで使用できるかどうかを検出できます。
このメソッドが呼び出されたときに使用可能な wrappedData
がない場合、指定された rowIndex
が格納されます(その後の getRowData()
の呼び出しで取得できます)が、イベントは送信されません。それ以外の場合、現在選択されている行インデックスがこの呼び出しによって変更されると、DataModelEvent
がすべての登録済み DataModelListener
の rowSelected()
メソッドに送信されます。
rowIndex
- 新しいゼロ相対インデックス (負でない必要があります)FacesException
- 行インデックスの設定中にエラーが発生した場合 IllegalArgumentExceptionSE
- rowIndex
が -1 より小さい場合 public abstract ObjectSE getWrappedData()
この DataModel
によってラップされたデータを表すオブジェクトがあれば、それを返します。
Object
public abstract void setWrappedData(ObjectSE data)
この DataModel
によってラップされたデータコレクションを表すオブジェクトを設定します。指定された data
が null
である場合、代わりに以前にラップされたデータコレクションからこの DataModel
をデタッチします。
data
が null
以外の場合、現在選択されている行インデックスをゼロに設定し、DataModelEvent
をすべての登録済み DataModelListener
の rowSelected()
メソッドに送信して、この行が現在選択されていることを示す必要があります。
data
- ラップするデータコレクション、または null
で以前のデータコレクションから切り離す ClassCastExceptionSE
- data
がこの DataModel
実装に適した型でない場合 public void addDataModelListener(DataModelListener listener)
この DataModel
からの通知に関心のあるセットに新しい DataModelListener
を追加します。
listener
- 登録する新しい DataModelListener
NullPointerExceptionSE
- listener
が null
の場合 public DataModelListener[] getDataModelListeners()
この DataModel
からの通知に関心のある DataModelListener
のセットを返します。そのようなリスナーがない場合は、空の配列が返されます。
public void removeDataModelListener(DataModelListener listener)
この DataModel
からの通知に関心のあるセットから既存の DataModelListener
を削除します。
listener
- 登録解除される古い DataModelListener
NullPointerExceptionSE
- listener
が null
の場合 public IteratorSE<E> iterator()
このモデルの行データに対して読み取り専用の Iterator
を返します。
IterableSE<E>
の iteratorSE
Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.