Unofficial
"CLDC 1.0
+ MIDP 1.0"
API Reference.
(日本語版)

javax.microedition.rms
インタフェース RecordEnumeration


public interface RecordEnumeration

レコード・ストアの中のレコードを双方向に移動可能な RecordEnumeration を定義するインタフェースです。 RecordEnumeration は、理論上レコード・ストア内のレコードのレコード ID の順序を維持します。 この RecordEnumeration は、レコードの全て(あるいは、もしもオプションの RecordFilter が指定されている場合はそれに含まれるレコード)を、オプションの RecordComparator によって決定された順序に従って列挙します。

オプションの RecordFilter を使用することにより、レコード全体から設定したフィルタの条件に適合するレコードのみを列挙することができます。 これは条件によるサーチ機能を提供するために使用することができます。

オプションの RecordComparator を使用することにより、コンパレータによって決定された順序にレコードを通してアクセスすることができます。 これはソート機能を提供するために使用することができます。

RecordEnumeration にレコードが列挙された後に、レコードが RecordStore から削除された場合、レコード ID は有効なレコードを示さない可能性があります。 この問題を回避するために、RecordEnumeration はオプションで RecordStore のリスナーとなり、レコードの追加と削除に対応して、内部のインデックスを再構築することができます。 しかし、このオプションを使用すると、全てのレコードの追加、変更および削除時にインデックスの再構築を行うため、実行時のパフォーマンスに対して重大な影響を与えることがあるため、特に注意が必要です。

最初の nextRecord() の呼び出しは、シーケンスの最初のレコードからレコードデータを返します。 次の nextRecord() の呼び出しは、次の連続するレコードのデータを返します。 列挙されたレコードの現在のポイントから1つ前のレコードデータを取得する場合には previousRecord() を呼び出します。 最初の呼び出しが previousRecord() の場合、列挙の最後の要素がレコードデータとして返されます。 個々の previousRecord() の呼び出しはシーケンスを通して前へ(後方から先頭へ向かって)進みます。

レコード・ストアを検索するためには、希望のサーチ条件を持つ RecordFilter を備え、RecordComparator を持たない RecordEnumeration を作成します。


メソッドの概要
 void destroy()
          この RecordEnumeration によって使用している内部リソースを解放します。
 boolean hasNextElement()
          さらに次のの要素が存在するか否かを判定します。
 boolean hasPreviousElement()
          さらに前のの要素が存在するか否かを判定します。
 boolean isKeptUpdated()
          この RecordEnumeration がレコード・ストアの現在の内容を変更に合わせて反映するか否かを返します。
 void keepUpdated(boolean keepUpdated)
          この RecordEnumeration を構成するための内部インデックスをレコード・ストアに対して追加/削除/変更時に常に最新に保つか否かを設定します。
 byte[] nextRecord()
          この RecordEnumeration の生成時に設定されたフィルタおよびコンパレータにより定義された、次のレコードのコピーを返します。
 int nextRecordId()
          この RecordEnumeration の生成時に設定されたフィルタおよびコンパレータにより定義された、次のレコードのレコード ID を返します。
 int numRecords()
          この RecordEnumeration が保持している利用可能なレコード数を返します。
 byte[] previousRecord()
          この RecordEnumeration の生成時に設定されたフィルタおよびコンパレータにより定義された、前のレコードのコピーを返します。
 int previousRecordId()
          この RecordEnumeration の生成時に設定されたフィルタおよびコンパレータにより定義された、前のレコードのレコード ID を返します。
 void rebuild()
          カレントのレコードセットの内容をこの RecordEnumeration に反映するようにリクエストします。
 void reset()
          この RecordEnumeration の位置を開始位置へ戻します。
 

メソッドの詳細

numRecords

int numRecords()

この RecordEnumeration が保持している利用可能なレコード数を返します。 すなわち、保持しているレコード数はフィルタ基準と一致します。 このメソッドの呼び出しが、全てのレコード(レコード・ストアに多くのレコードがある場合、無視できない処理時間がかかるかもしれない)にフィルタを適用することにより、完全な列挙を構築することを RecordEnumeration に要求することに注意が必要です。

戻り値:
RecordEnumeration が保持している利用可能なレコード数を返します。

nextRecord

byte[] nextRecord()
                  throws InvalidRecordIDException,
                         RecordStoreNotOpenException,
                         RecordStoreException

この RecordEnumeration の生成時に設定されたフィルタおよびコンパレータにより定義された、次のレコードのコピーを返します。 返す byte 配列はレコードのコピーです。 この配列の内容を変更しても、レコード・ストアには反映しません。 このメソッドの呼び出し後の RecordEnumeration は使用可能な次のレコードを指します。

戻り値:
この RecordEnumeration 内の次のレコードデータを返します。
例外:
InvalidRecordIDException - これ以上、使用可能なレコードがない場合に throw します。
RecordStoreNotOpenException - レコード・ストアがオープンされていない場合に throw します。
RecordStoreException - 一般的なレコード・ストアに関する例外が発生した場合に throw します。

nextRecordId

int nextRecordId()
                 throws InvalidRecordIDException

この RecordEnumeration の生成時に設定されたフィルタおよびコンパレータにより定義された、次のレコードのレコード ID を返します。 このメソッドの呼び出し後の RecordEnumeration は使用可能な次のレコードを指します。

戻り値:
この RecordEnumeration の次のレコード ID を返します。
例外:
InvalidRecordIDException - これ以上、使用可能なレコードがない場合に throw します。

previousRecord

byte[] previousRecord()
                      throws InvalidRecordIDException,
                             RecordStoreNotOpenException,
                             RecordStoreException

この RecordEnumeration の生成時に設定されたフィルタおよびコンパレータにより定義された、前のレコードのコピーを返します。 返された byte 配列はレコードのコピーです。 この配列の内容を変更しても、レコード・ストアには反映しません。 このメソッドの呼び出し後の RecordEnumeration は使用可能な前のレコードを指します。

戻り値:
この RecordEnumeration 内の前のレコードデータを返します。
例外:
InvalidRecordIDException - これ以上、使用可能なレコードがない場合に throw します。
RecordStoreNotOpenException - レコード・ストアがオープンされていない場合に throw します。
RecordStoreException - 一般的なレコード・ストアに関する例外が発生した場合に throw します。

previousRecordId

int previousRecordId()
                     throws InvalidRecordIDException

この RecordEnumeration の生成時に設定されたフィルタおよびコンパレータにより定義された、前のレコードのレコード ID を返します。 このメソッドの呼び出し後の RecordEnumeration は使用可能な前のレコードを指します。

戻り値:
この RecordEnumeration の前のレコード ID を返します。
例外:
InvalidRecordIDException - これ以上、使用可能なレコードがない場合に throw します。

hasNextElement

boolean hasNextElement()

さらに次のの要素が存在するか否かを判定します。

戻り値:
存在する場合は true を、存在しない場合は false を返します。

hasPreviousElement

boolean hasPreviousElement()

さらに前のの要素が存在するか否かを判定します。

戻り値:
存在する場合は true を、存在しない場合は false を返します。

reset

void reset()

この RecordEnumeration の位置を開始位置へ戻します。


rebuild

void rebuild()

カレントのレコードセットの内容をこの RecordEnumeration に反映するようにリクエストします。 MIDlet アプリケーションがレコードに多くの変更を行い、その新しい内容を RecordEnumeration へ反映する場合に有効なメソッドです。

関連項目:
keepUpdated(boolean)

keepUpdated

void keepUpdated(boolean keepUpdated)

この RecordEnumeration を構成するための内部インデックスをレコード・ストアに対して追加/削除/変更時に常に最新に保つか否かを設定します。

keepUpdatedtrue を指定すると常に最新の状態を維持します。 全ての変更において RecordEnumeration を維持することにより、性能的な問題が発生する可能性があります。 このため、この設定は慎重に行わなければなりません。

false を指定した場合、RecordEnumeration は直ちに現状を反映せず、削除されたレコードあるいは後で追加されたレコードを対象としないレコード ID を返すことが許されます。 また、RecordEnumeration 構築後に修正された結果、フィルタの対象外となるレコードも返します。

パラメータ:
keepUpdated - レコード・ストアの変更と RecordEnumeration による内容を一致させる場合は true を、そうでなければ false を渡します。
関連項目:
rebuild()

isKeptUpdated

boolean isKeptUpdated()

この RecordEnumeration がレコード・ストアの現在の内容を変更に合わせて反映するか否かを返します。

戻り値:
レコード・ストアの現在の内容を変更に合わせて反映する場合は true を、そうでなければ false を返します。

destroy

void destroy()

この RecordEnumeration によって使用している内部リソースを解放します。 RecordEnumeration を使用して、その使用を終了する際、MIDlet アプリケーションはこのメソッドを呼ぶべきです。 このメソッドが呼ばれた後の RecordEnumeration を MIDlet アプリケーションが使用しようとする場合、IllegalStateException を throw します。

例外:
IllegalStateException - 既にこのメソッドを呼び出した RecordEnumeration に対してこのメソッドを呼び出すと throw します。

Unofficial
"CLDC 1.0
+ MIDP 1.0"
API Reference.
(日本語版)

このAPIリファレンスに記載されている内容は"さかきけい"が Sun Microsystems, Inc や Java Community Process が公開している各種公式資料を元に、独自に調査・編集したものであり、Sun Microsystems, Inc や Java Community Process 等とは一切関係ありません。したがってこのAPIリファレンスに関する問い合わせを関係各社等に対して行うことを固く禁じます。
また、記載された内容には既知か否かに関らず誤りが含まれる可能性があり、一切保証はありません。本APIリファレンスを使用した結果、不利益が生じたとしても"さかきけい"は一切の責任を負いません。
許可無く公開/非公開および Internet/Intranet/LAN を問わず他サイトに転載すること、複写および複製すること、ローカルファイル等に保存することを禁じます。


Copyright© 2001-2002,2005-2009 by KEI SAKAKI.
ALL RIGHTS RESERVED.
無断転載を禁じます。

Unofficial "CLDC 1.1 + MIDP 2.0" API Reference はこちらです。