表データプロバイダの実装は、JavaBeans オブジェクトの配列へのアクセスをラップします。配列内のクラスが、単純な Java Object であるか JavaBeans オブジェクトであるかによって、データプロバイダのフィールドキーは、JavaBeans オブジェクトのプロパティー、またはリスト内の Java Object クラスの public メンバーフィールドに対応します。リスト内のクラスが JavaBeans オブジェクトでない場合は、「 includeFields 」プロパティーを設定して、クラスの public インスタンス変数をフィールドとしてアクセスできるようにする必要があります。
このデータプロバイダの一般的な用途は、配列をラップし、データベース表の場合と同様に、それに表コンポーネントをバインドすることです。
このデータプロバイダは、配列を構成するコンポーネントのデータ型を調べることで、使用可能なフィールドを判別します。次に示すような初期化コードで Object[] 型の配列を渡した場合、実際のオブジェクト型のフィールドは使用できなくなります。
Map map = ...;
return new ObjectArrayDataProvider(map.values().toArray());
すべてのデータが Foo 型であるとわかっている場合は、次のようなコードを使用します。
Map map = ...;
return new ObjectArrayDataProvider
((Foo[]) map.values().toArray(new Foo[0]));
このデータプロバイダは、データ内の特定の行に配置できるカーソルという概念を採用した TableDataProvider 実装の 1 つです。 TableDataProvider では、ランダムアクセスとカーソルベースのアクセスが可能です。前者の場合、FieldKey と RowKey の両方を指定します。後者の場合、FieldKey を指定しますが、RowKey はカーソルの現在の設定によって決まります。