パッケージ jakarta.faces.model

クラス DataModel<E>

  • 実装されたすべてのインターフェース:
    IterableSE<E>
    既知の直属サブクラス
    ArrayDataModelCollectionDataModelIterableDataModelListDataModelResultSetDataModelScalarDataModel

    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

        public DataModel()
    • メソッドの詳細

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

        public DataModelListener[] getDataModelListeners()

        この DataModel からの通知に関心のある DataModelListener のセットを返します。そのようなリスナーがない場合は、空の配列が返されます。

        戻り値:
        このインスタンスのリスナー、または空の配列
      • iterator

        public IteratorSE<E> iterator()

        このモデルの行データに対して読み取り専用の Iterator を返します。

        次で指定:
        インターフェース IterableSE<E>iterator 
        導入:
        2.0