StoredRecordSet (クラス)
public abstract StoredRecordSet {inherits BasicRecordSet}
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.DATA-ACCESS.BASE.
直接継承しているサブクラス: CsvRecordSet

パーシスタント ストレージで読み書きされるレコードセットの基本クラスです。


コンストラクタ
create:新しい StoredRecordSet を作成して初期化し、既存のファイルが存在すれば上書きします。
コンストラクタ public {StoredRecordSet.create
fields:RecordFields,
modifiable?:bool = true,
...:Object
}
default:新しい StoredRecordSet を初期化して返します。
コンストラクタ public {StoredRecordSet.default
fields:RecordFields,
modifiable?:bool = true,
...:EventHandler
}

プロパティ
change-count:StoredRecordSet の作成以後の変更の数です。
フィールド protected StoredRecordSet.change-count:int
change-count-at-commit:この StoredRecordSet が最後にコミットされたときの self.change-count の値です。
フィールド protected StoredRecordSet.change-count-at-commit:int
load-state:現在のロード状態。この値が変わると、RecordSetLoadStateChanged イベントが発生します。
アクセサ public StoredRecordSet.load-state:RecordSetLoadState
セッター public StoredRecordSet.load-state:RecordSetLoadState
pending-update?:この RecordSet でペンディング中の更新があるかどうか調べます。
アクセサ public StoredRecordSet.pending-update?:bool
プロパティ 継承 BasicRecordSet: fields, modifiable?, size
プロパティ 継承 EventManagingRecordSet: batch-events?, suppress-events?
プロパティ 継承 RecordSet: registered-views
プロパティ 継承 EventTarget: event-handlers

メソッド
commit:変更されたすべての Record をコミットします。
public {StoredRecordSet.commit}:void
init-record-data:コンストラクタに与えられたデータで StoredRecordSet を初期化します。
protected {StoredRecordSet.init-record-data
data:{Array-of RecordData}
}:void
load:すべてのレコードを格納場所のファイルからロードします。
public {StoredRecordSet.load}:void
load-record:このレコードセットに新しいデータ行を 1 つ挿入します。
protected {StoredRecordSet.load-record
row:StringArray,
converters:#RecordData = null,
state:RecordState = RecordState.original,
ignore-bad-values?:bool = false
}:void
load-records:すべてのレコードを格納場所のファイルからロードします。
protected abstract {StoredRecordSet.load-records}:void
process-arguments:コンストラクタ引数をイベント ハンドラと RecordData に分けます。
protected {StoredRecordSet.process-arguments
...:Object
}:(handlers:Arguments, data:{Array-of RecordData})
rebuild:このレコードセットのインデックスを再構築して、すべてのレコードを RecordState.original 状態に戻します。
public {StoredRecordSet.rebuild}:void
trigger-record-set-event:実装で RecordSetEvent をトリガするのにこれを呼び出します。
protected {StoredRecordSet.trigger-record-set-event}:void
write-record:1 つのレコードをストレージに書き込みます。
protected abstract {StoredRecordSet.write-record r:Record}:void
write-records:レコードをストレージに書き込みます。
protected {StoredRecordSet.write-records}:void
メソッド 継承 BasicRecordSet: allocate-record, append, append-row-data, commit-record, deindex-record, deindex-record-field, delete-all, delete-record, index-record, index-record-field, init, internal-store-record, member?, new-record, revert, revert-record, set-value, to-Iterator, validate-record, validate-value
メソッド 継承 RecordSet: ensure-attached, ensure-modifiable, handle-event, on-record-set-event, register-view, select, select-one, unregister-view
メソッド 継承 EventTarget: accepts-event-class?, add-event-handler, event-handler-present?, remove-event-handler, verify-event
メソッド 継承 BasicEventTarget: enqueue-event
メソッド 継承 Object: object-describe, object-describe-for-debugging, object-serialize



コンストラクタ詳細
create (コンストラクタ)
public {StoredRecordSet.create
fields:RecordFields,
modifiable?:bool = true,
...:Object
}

新しい StoredRecordSet を作成して初期化し、既存のファイルが存在すれば上書きします。

fields: StoredRecordSet 内のフィールドです。
...: EventHandler または RecordData インスタンスが含まれる場合があります。このレコード セットにイベント ハンドラがアタッチされます。RecordData オブジェクトが渡されると、レコードが作成され、指定のデータを保持するためにアタッチされます。


default (コンストラクタ)
public {StoredRecordSet.default
fields:RecordFields,
modifiable?:bool = true,
...:EventHandler
}

新しい StoredRecordSet を初期化して返します。

説明

パラメータが基本クラス コンストラクタに渡され、StoredRecordSet.load メソッドが呼び出されて、ストレージのレコードセットの内容が初期化されます。
fields: StoredRecordSet 内のフィールドです。
modifiable?: CsvRecordSet のデータが変更されるのは、modifiable? が true の場合だけです。
...: EventHandler の詳細については、「EventManagingRecordSet」を参照してください。



プロパティ詳細
change-count (フィールド)
protected StoredRecordSet.change-count:int

StoredRecordSet の作成以後の変更の数です。

説明

このフィールドを使用すると、レコードセットが最後にサンプリングされた後で変更が行われたかどうかを判断できます。たとえば、このクラスは、保存されていない変更があるかどうかの判断にこれを使用します。


change-count-at-commit (フィールド)
protected StoredRecordSet.change-count-at-commit:int

この StoredRecordSet が最後にコミットされたときの self.change-count の値です。



load-state (アクセサ)
アクセサ public StoredRecordSet.load-state:RecordSetLoadState
セッター public StoredRecordSet.load-state:RecordSetLoadState

現在のロード状態。この値が変わると、RecordSetLoadStateChanged イベントが発生します。



pending-update? (アクセサ)
アクセサ public StoredRecordSet.pending-update?:bool

この RecordSet でペンディング中の更新があるかどうか調べます。

説明

Record.pending-update? を参照してください。





メソッド詳細
commit (メソッド)
public {StoredRecordSet.commit}:void

変更されたすべての Record をコミットします。

説明

Record.commit を参照してください。
この操作はすべてのレコードに対してアトミックであると考えてください。この操作が任意の 1 レコードで失敗した場合、レコードセットの状態はそのまま変更されません。


init-record-data (メソッド)
protected {StoredRecordSet.init-record-data
data:{Array-of RecordData}
}:void

コンストラクタに与えられたデータで StoredRecordSet を初期化します。

説明

データが空の場合、このメソッドは何も行いません。空でない場合は、既存のデータがクリアされ、配列の値で置き換えられます。


load (メソッド)
public {StoredRecordSet.load}:void

すべてのレコードを格納場所のファイルからロードします。

説明

この StoredRecordSet はクリアされ、ストレージから再ロードされます。変更を RecordSet.load-state に通知するためのイベントが発生し、操作が完了すると、RecordsBulkChanges イベントが発生します。


load-record (メソッド)
protected {StoredRecordSet.load-record
row:StringArray,
converters:#RecordData = null,
state:RecordState = RecordState.original,
ignore-bad-values?:bool = false
}:void

このレコードセットに新しいデータ行を 1 つ挿入します。

row: 正しい型に変換されて、レコードに格納される文字列の配列です。
converters: フィールド名を CsvImportDataConverter にバインドする RecordData です。バインドが検出されると、コンバータにより row 配列内の文字列が列の値に変換されます。(例については、「CsvRecordSet.import」を参照してください。)
state: レコードに割り当てられる状態です。
ignore-bad-values?: false (既定値) の場合、文字列から値への変換でエラーが発生すると、例外がスローされます。true の場合、変換が失敗すると、列の既定値がレコードに格納され、例外はスローされません。

説明

このメソッドは、StoredRecordSet.load-records または CsvRecordSet.import から呼び出されます。これには、フィールド値に変換され、self に追加された新しいレコードに格納される文字列の配列が渡されます。


load-records (メソッド)
protected abstract {StoredRecordSet.load-records}:void

すべてのレコードを格納場所のファイルからロードします。

説明

このメソッドは通常、既存のレコードがクリアされた後で、RecordSet.batch-events? = true となっている StoredRecordSet.load メソッドから呼び出されます。RecordState.original 状態の新しいレコードの StoredRecordSet を再度取り込みます。イベントは呼び出し元が扱うため、イベントを発生させる必要はありません。


process-arguments (メソッド)
protected {StoredRecordSet.process-arguments
...:Object
}:(handlers:Arguments, data:{Array-of RecordData})

コンストラクタ引数をイベント ハンドラと RecordData に分けます。

...: RecordData または EventHandler オブジェクトを含む引数のリストです。

説明

このヘルパーは、後続の処理用に引数を 2 つのリストに分割するために、StoredRecordSet のコンストラクタおよびサブクラスによって使用されます。引数リストで他のデータ型が見つかると、エラーがスローされます。


rebuild (メソッド)
public {StoredRecordSet.rebuild}:void

このレコードセットのインデックスを再構築して、すべてのレコードを RecordState.original 状態に戻します。

説明

これは通常、アプリケーション コードから呼び出されませんが、BasicConnection サブクラスなど、ファイルまたはデータベースからレコード データをロードするクラスによって使用できるよう提供されています。このメソッドは、インデックスを再構築して、すべてのレコードを RecordState.original 状態に戻します。


trigger-record-set-event (メソッド)
protected {StoredRecordSet.trigger-record-set-event}:void

実装で RecordSetEvent をトリガするのにこれを呼び出します。

プログラミング注意事項

EventManagingRecordSet の実装でこの実装を呼び出して、それ自体でイベントを発生させる必要があります。

説明

サブクラスでは EventTarget.handle-event を呼び出す代わりにこのメソッドを使用してください。これにより、EventManagingRecordSet はイベントを実際にバッチ処理したり、抑制することができます。


write-record (メソッド)
protected abstract {StoredRecordSet.write-record r:Record}:void

1 つのレコードをストレージに書き込みます。

オーバーライド

このメソッドは、レコードがストレージに書き込まれるたびに、1 回 StoredRecordSet.write-records によって呼び出されます。


write-records (メソッド)
protected {StoredRecordSet.write-records}:void

レコードをストレージに書き込みます。

説明

このメソッドはレコードをループし、レコードの状態が RecordState.deleted または RecordState.detached でない場合に self.write-record を呼び出します。

オーバーライド

サブクラスが StoredRecordSet.write-record をオーバーライドしてファイルに書き込んだり、このメソッドをオーバーライドしてファイルを開いたり、このスーパークラス メソッドを呼び出してレコードを書き込んでからファイルを閉じたりする場合があります。