クラス 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()
方法の概要
すべてのメソッド インスタンスメソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 voidaddDataModelListener(DataModelListener listener)このDataModelからの通知に関心のあるセットに新しいDataModelListenerを追加します。DataModelListener[]getDataModelListeners()このDataModelからの通知に関心のあるDataModelListenerのセットを返します。abstract intgetRowCount()このDataModelで表されるデータオブジェクトの行数を返します。abstract EgetRowData()現在選択されている行インデックスのデータを表すオブジェクトを返します。abstract intgetRowIndex()現在選択されている行のゼロ相対インデックスを返します。abstract ObjectSEgetWrappedData()このDataModelによってラップされたデータを表すオブジェクトがあれば、それを返します。abstract booleanisRowAvailable()現在のrowIndexで使用可能なrowDataがあるかどうかを示すフラグを返します。IteratorSE<E>iterator()このモデルの行データに対して読み取り専用のIteratorを返します。voidremoveDataModelListener(DataModelListener listener)このDataModelからの通知に関心のあるセットから既存のDataModelListenerを削除します。abstract voidsetRowIndex(int rowIndex)現在選択されている行のゼロ相対インデックスを設定するか、行に配置されていないことを示すには -1 を設定します。abstract voidsetWrappedData(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