クラス DataModel<E>
- java.lang.ObjectSE
-
- jakarta.faces.model.DataModel<E>
- 実装されたすべてのインターフェース:
IterableSE<E>
- 既知の直属サブクラス
ArrayDataModel
、CollectionDataModel
、IterableDataModel
、ListDataModel
、ResultSetDataModel
、ScalarDataModel
public abstract class DataModel<E> extends ObjectSE implements IterableSE<E>
DataModel は、子コンポーネント(
UIData
など)の行ごとの処理をサポートする Jakarta 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()
このモデルの行データに対して読み取り専用のIterator
を返します。void
removeDataModelListener(DataModelListener listener)
このDataModel
からの通知に関心のあるセットから既存のDataModelListener
を削除します。abstract void
setRowIndex(int rowIndex)
現在選択されている行のゼロ相対インデックスを設定するか、行に配置されていないことを示すには -1 を設定します。abstract void
setWrappedData(ObjectSE data)
このDataModel
によってラップされたデータコレクションを表すオブジェクトを設定します。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース java.lang.IterableSE から継承されたメソッド
forEachSE, spliterator
メソッドの詳細
isRowAvailable
public abstract boolean isRowAvailable()
現在の
rowIndex
で使用可能なrowData
があるかどうかを示すフラグを返します。wrappedData
が利用できない場合は、false
を返します。- 戻り値:
- 現在のインデックスで利用可能なデータがある場合にのみ true、それ以外の場合は false。
- 例外:
FacesException
- 行の可用性を取得するときにエラーが発生した場合
getRowCount
public abstract int getRowCount()
この
DataModel
で表されるデータオブジェクトの行数を返します。行数が不明な場合、または使用可能なwrappedData
がない場合は、-1 を返します。- 戻り値:
- この
DataModel
によって表されるデータの行数 - 例外:
FacesException
- 行数の取得中にエラーが発生した場合
getRowData
public abstract E getRowData()
現在選択されている行インデックスのデータを表すオブジェクトを返します。
wrappedData
が利用できない場合は、null
を返します。- 戻り値:
- 現在選択されている行インデックスのデータを表すオブジェクト
- 例外:
FacesException
- 行データの取得中にエラーが発生した場合IllegalArgumentExceptionSE
- 現在指定されている行インデックスで行データが利用できる場合
getRowIndex
public abstract int getRowIndex()
現在選択されている行のゼロ相対インデックスを返します。現在行に配置されていない場合、または使用可能な
wrappedData
がない場合は、-1 を返します。- 戻り値:
- 現在選択されている行のインデックス
- 例外:
FacesException
- 行インデックスの取得中にエラーが発生した場合
setRowIndex
public abstract void setRowIndex(int rowIndex)
現在選択されている行のゼロ相対インデックスを設定するか、行に配置されていないことを示すには -1 を設定します。基になるデータコレクションに行データが含まれていない値に行インデックスを設定することができます。呼び出し元は
isRowAvailable()
メソッドを使用して、行データがgetRowData()
メソッドで使用できるかどうかを検出できます。このメソッドが呼び出されたときに使用可能な
wrappedData
がない場合、指定されたrowIndex
が格納されます(その後のgetRowData()
の呼び出しで取得できます)が、イベントは送信されません。それ以外の場合、現在選択されている行インデックスがこの呼び出しによって変更されると、DataModelEvent
がすべての登録済みDataModelListener
のrowSelected()
メソッドに送信されます。- パラメーター:
rowIndex
- 新しいゼロ相対インデックス (負でない必要があります)- 例外:
FacesException
- 行インデックスの設定中にエラーが発生した場合IllegalArgumentExceptionSE
-rowIndex
が -1 より小さい場合
getWrappedData
public abstract ObjectSE getWrappedData()
この
DataModel
によってラップされたデータを表すオブジェクトがあれば、それを返します。- 戻り値:
- このモデルがラップする
Object
setWrappedData
public abstract void setWrappedData(ObjectSE data)
この
DataModel
によってラップされたデータコレクションを表すオブジェクトを設定します。指定されたdata
がnull
である場合、代わりに以前にラップされたデータコレクションからこのDataModel
をデタッチします。data
がnull
以外の場合、現在選択されている行インデックスをゼロに設定し、DataModelEvent
をすべての登録済みDataModelListener
のrowSelected()
メソッドに送信して、この行が現在選択されていることを示す必要があります。- パラメーター:
data
- ラップするデータコレクション、またはnull
で以前のデータコレクションから切り離す- 例外:
ClassCastExceptionSE
-data
がこのDataModel
実装に適した型でない場合
addDataModelListener
public void addDataModelListener(DataModelListener listener)
この
DataModel
からの通知に関心のあるセットに新しいDataModelListener
を追加します。- パラメーター:
listener
- 登録する新しいDataModelListener
- 例外:
NullPointerExceptionSE
-listener
がnull
の場合
getDataModelListeners
public DataModelListener[] getDataModelListeners()
この
DataModel
からの通知に関心のあるDataModelListener
のセットを返します。そのようなリスナーがない場合は、空の配列が返されます。- 戻り値:
- このインスタンスのリスナー、または空の配列
removeDataModelListener
public void removeDataModelListener(DataModelListener listener)
この
DataModel
からの通知に関心のあるセットから既存のDataModelListener
を削除します。- パラメーター:
listener
- 登録解除される古いDataModelListener
- 例外:
NullPointerExceptionSE
-listener
がnull
の場合
iterator
public IteratorSE<E> iterator()
このモデルの行データに対して読み取り専用の
Iterator
を返します。- 次で指定:
- インターフェース
IterableSE<E>
のiterator
- 導入:
- 2.0