パッケージ jakarta.faces.model

クラス ResultSetDataModel

  • 実装されたすべてのインターフェース:
    IterableSE<MapSE<StringSE,​ObjectSE>>

    public class ResultSetDataModel
    extends DataModel<MapSE<StringSE,​ObjectSE>>

    ResultSetDataModel は、Java オブジェクトの ResultSet をラップする DataModel の便利な実装です。指定された ResultSet  はスクロール可能でなければならないことに注意してください。さらに、入力コンポーネント(モデル値を更新する)が値バインディング式でこのオブジェクトを参照する場合、指定された ResultSet  は更新可能でなければなりません。

    • コンストラクターの詳細

      • 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 実装に適した型でない場合