クラス ResultSetDataModel
- java.lang.ObjectSE
-
- jakarta.faces.model.DataModel<MapSE<StringSE,ObjectSE>>
-
- jakarta.faces.model.ResultSetDataModel
- 実装されたすべてのインターフェース:
IterableSE<MapSE<StringSE,ObjectSE>>
public class ResultSetDataModel extends DataModel<MapSE<StringSE,ObjectSE>>
ResultSetDataModel は、Java オブジェクトの
ResultSet
をラップするDataModel
の便利な実装です。指定されたResultSet
はスクロール可能でなければならないことに注意してください。さらに、入力コンポーネント(モデル値を更新する)が値バインディング式でこのオブジェクトを参照する場合、指定されたResultSet
は更新可能でなければなりません。
コンストラクターのサマリー
コンストラクター コンストラクター 説明 ResultSetDataModel()
ラップされたデータを指定せずに新しいResultSetDataModel
を構築します。ResultSetDataModel(ResultSetSE resultSet)
指定されたResultSet
をラップする新しいResultSetDataModel
を作成します。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 int
getRowCount()
ResultSet
は、ResultSet
全体をスクロールせずに使用可能な行数を決定する標準的な方法を提供しないため、-1 を返します。行数が多い場合、これは非常にコストがかかる可能性があります。MapSE<StringSE,ObjectSE>
getRowData()
行データが使用可能な場合は、対応する列名でキー設定された、rowIndex
で指定された行の列の値を表すMap
を返します。int
getRowIndex()
現在選択されている行のゼロ相対インデックスを返します。ObjectSE
getWrappedData()
このDataModel
によってラップされたデータを表すオブジェクトがあれば、それを返します。boolean
isRowAvailable()
使用可能なwrappedData
がある場合はtrue
を返し、基になるResultSet
でabsolute()
を呼び出し、rowIndex
の現在の値に 1 を加えた結果(ResultSet
が 1 相対インデックスを使用するという事実を説明するため)を返すと、true
が返されます。void
setRowIndex(int rowIndex)
現在選択されている行のゼロ相対インデックスを設定するか、行に配置されていないことを示すには -1 を設定します。void
setWrappedData(ObjectSE data)
このDataModel
によってラップされたデータコレクションを表すオブジェクトを設定します。クラス jakarta.faces.model.DataModel から継承されたメソッド
addDataModelListener, getDataModelListeners, iterator, removeDataModelListener
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース java.lang.IterableSE から継承されたメソッド
forEachSE, spliterator
コンストラクターの詳細
ResultSetDataModel
public ResultSetDataModel()
ラップされたデータを指定せずに新しい
ResultSetDataModel
を構築します。
ResultSetDataModel
public ResultSetDataModel(ResultSetSE resultSet)
指定された
ResultSet
をラップする新しいResultSetDataModel
を作成します。- パラメーター:
resultSet
- ラップするResultSet
(もしあれば)
メソッドの詳細
isRowAvailable
public boolean isRowAvailable()
使用可能な
wrappedData
がある場合はtrue
を返し、基になるResultSet
でabsolute()
を呼び出し、rowIndex
の現在の値に 1 を加えた結果(ResultSet
が 1 相対インデックスを使用するという事実を説明するため)を返すと、true
が返されます。それ以外の場合は、false
を返します。- 次で指定:
- クラス
DataModel<MapSE<StringSE,ObjectSE>>
のisRowAvailable
- 戻り値:
- 現在のインデックスで利用可能なデータがある場合にのみ true、それ以外の場合は false。
- 例外:
FacesException
- 行の可用性を取得するときにエラーが発生した場合
getRowCount
public int getRowCount()
ResultSet
は、ResultSet
全体をスクロールせずに使用可能な行数を決定する標準的な方法を提供しないため、-1 を返します。行数が多い場合、これは非常にコストがかかる可能性があります。- 次で指定:
- クラス
DataModel<MapSE<StringSE,ObjectSE>>
のgetRowCount
- 戻り値:
- この
DataModel
によって表されるデータの行数 - 例外:
FacesException
- 行数の取得中にエラーが発生した場合
getRowData
public MapSE<StringSE,ObjectSE> getRowData()
行データが使用可能な場合は、対応する列名でキー設定された、
rowIndex
で指定された行の列の値を表すMap
を返します。ラップされたデータが利用できない場合は、null
を返します。非 null
Map
が返される場合、その動作は、次の例外と特殊な動作を除いて、AbstractMap
の JavaDocs で説明されている可変Map
の契約に対応している必要があります。Map
とそれが返すサポートオブジェクトは、大文字と小文字を区別しない方法ですべての列名の比較を実行する必要があります。この大文字と小文字を区別しないのは、String.CASE_INSENSITIVE_ORDER
などの大文字と小文字を区別しないComparator
を使用して実装する必要があります。- 次のメソッドは
UnsupportedOperationException
をスローする必要があります:clear()
、remove()
。 entrySet()
メソッドは、次の動作をするSet
を返す必要があります。Set
によって返されるIterator
を介して直接的または間接的に、Set
からエントリを追加または削除しようとする場合は、UnsupportedOperationException
をスローします。- この
set
のエントリのvalue
への更新は、基礎となるResultSet
の対応する列値に書き込む必要があります。
keySet()
メソッドは、直接またはSet
によって返されるIterator
を介して、キーを追加または削除しようとするとUnsupportedOperationException
をスローするSet
を返す必要があります。containsKey()
がfalse
を返すキー値が指定されている場合、put()
メソッドはIllegalArgumentException
をスローする必要があります。ただし、Map
にすでに存在するキーが指定されている場合、指定された値は、基になるResultSet
の対応する列値に書き込む必要があります。values()
メソッドは、直接またはCollection
によって返されるIterator
を介して、値を追加または削除しようとするとUnsupportedOperationException
をスローするCollection
を返す必要があります。
- 次で指定:
- クラス
DataModel<MapSE<StringSE,ObjectSE>>
のgetRowData
- 戻り値:
- 現在選択されている行インデックスのデータを表すオブジェクト
- 例外:
FacesException
- 行データの取得中にエラーが発生した場合IllegalArgumentExceptionSE
- 現在指定されている行インデックスで行データが利用できる場合
getRowIndex
public int getRowIndex()
クラスからコピーされた説明:DataModel
現在選択されている行のゼロ相対インデックスを返します。現在行に配置されていない場合、または使用可能な
wrappedData
がない場合は、-1 を返します。- 次で指定:
- クラス
DataModel<MapSE<StringSE,ObjectSE>>
のgetRowIndex
- 戻り値:
- 現在選択されている行のインデックス
- 例外:
FacesException
- 行インデックスの取得中にエラーが発生した場合
setRowIndex
public void setRowIndex(int rowIndex)
クラスからコピーされた説明:DataModel
現在選択されている行のゼロ相対インデックスを設定するか、行に配置されていないことを示すには -1 を設定します。基になるデータコレクションに行データが含まれていない値に行インデックスを設定することができます。呼び出し元は
isRowAvailable()
メソッドを使用して、行データがgetRowData()
メソッドで使用できるかどうかを検出できます。このメソッドが呼び出されたときに使用可能な
wrappedData
がない場合、指定されたrowIndex
が格納されます(その後のgetRowData()
の呼び出しで取得できます)が、イベントは送信されません。それ以外の場合、現在選択されている行インデックスがこの呼び出しによって変更されると、DataModelEvent
がすべての登録済みDataModelListener
のrowSelected()
メソッドに送信されます。- 次で指定:
- クラス
DataModel<MapSE<StringSE,ObjectSE>>
のsetRowIndex
- パラメーター:
rowIndex
- 新しいゼロ相対インデックス (負でない必要があります)- 例外:
FacesException
- 行インデックスの設定中にエラーが発生した場合IllegalArgumentExceptionSE
-rowIndex
が -1 より小さい場合
getWrappedData
public ObjectSE getWrappedData()
クラスからコピーされた説明:DataModel
この
DataModel
によってラップされたデータを表すオブジェクトがあれば、それを返します。- 次で指定:
- クラス
DataModel<MapSE<StringSE,ObjectSE>>
のgetWrappedData
- 戻り値:
- このモデルがラップする
Object
setWrappedData
public void setWrappedData(ObjectSE data)
クラスからコピーされた説明:DataModel
この
DataModel
によってラップされたデータコレクションを表すオブジェクトを設定します。指定されたdata
がnull
である場合、代わりに以前にラップされたデータコレクションからこのDataModel
をデタッチします。data
がnull
以外の場合、現在選択されている行インデックスをゼロに設定し、DataModelEvent
をすべての登録済みDataModelListener
のrowSelected()
メソッドに送信して、この行が現在選択されていることを示す必要があります。- 次で指定:
- クラス
DataModel<MapSE<StringSE,ObjectSE>>
のsetWrappedData
- パラメーター:
data
- ラップするデータコレクション、またはnull
で以前のデータコレクションから切り離す- 例外:
ClassCastExceptionSE
-data
がこのDataModel
実装に適した型でない場合