(クラス)
public abstract shared RecordSet
{inherits
EventTarget}
共通のスキーマを共有するすべてのデータ タプルつまり Record のコレクション。
説明
アクセサ public abstract RecordSet.batch-events?:
bool セッター public abstract RecordSet.batch-events?:
bool
アクセサ public abstract RecordSet.modifiable?:
bool
アクセサ public abstract RecordSet.pending-update?:
bool
フィールド protected RecordSet.registered-views:{
Set-of {WeakPointer-to RecordView}} ={{Set-of {WeakPointer-to RecordView}}}
アクセサ public abstract RecordSet.size:
int
append: | RecordSet に新規レコードを追加します。 |
public abstract | {RecordSet.append new-record:any}:void |
public abstract | {RecordSet.commit}:void |
public abstract | {RecordSet.delete-all}:void |
protected | {RecordSet.ensure-attached rec:Record}:void |
protected | {RecordSet.ensure-modifiable}:void |
public | {RecordSet.handle-event event:Event}:void |
load: | この RecordSet をロードまたは再ロードします。 |
public abstract | {RecordSet.load}:void |
member?: | record がこの RecordSet に含まれているかどうか示します。 |
public abstract | {RecordSet.new-record}:Record |
public abstract | {RecordSet.revert}:void |
public abstract | {RecordSet.to-Iterator}:{Iterator-of Record} |
(コンストラクタ)
(ファクトリ)
このクラスのインスタンスを作成します。
説明
fields:
Record 内に現れるデータ アイテムを定義するフィールド記述子。
(アクセサ)
アクセサ public abstract RecordSet.batch-events?:
bool セッター public abstract RecordSet.batch-events?:
bool このオブジェクトで発生する RecordSetEvent を抑制するよう要求するにはこのフラグを true に設定します。これらのイベントはフラグを false に戻したときにバッチ単位で送られます。
説明
アプリケーションでアクションを生成するイベントが比較的多数実行されることになっていて、それらによる操作中の「イベント ストーム」を回避するには、これが役に立ちます。
このフラグが
true の間は、
RecordSet 自体で
RecordSetEvent を発生できなくなります。このフラグが
false に戻されると、この期間にレコードセットの状態に起こった変化を表す 1 つの
RecordsChanged が発生します。これは通常 (常時ではありません)、
RecordsBulkChanges です。
実装では、このフラグが false の状態でもバルク イベントを任意に生成できることに注意してください。
プログラミング注意事項
このフラグの変更が適切に設定され、最終的に false に必ず戻るように、{with} マクロを使ってこのフラグを true に設定することを強くお勧めします。
通常アプリケーションではこのフラグを直接 false に設定しません。
(アクセサ)
(アクセサ)
(アクセサ)
アクセサ public abstract RecordSet.modifiable?:
bool
(アクセサ)
アクセサ public abstract RecordSet.pending-update?:
bool この RecordSet でペンディング中の更新があるかどうか調べます。
説明
(フィールド)
protected RecordSet.registered-views:{
Set-of {WeakPointer-to RecordView}} ={{Set-of {WeakPointer-to RecordView}}}
(アクセサ)
アクセサ public abstract RecordSet.size:
int
(メソッド)
public abstract | {RecordSet.append new-record:any}:void |
RecordSet に新規レコードを追加します。
説明
RecordData が入力値の場合、このオブジェクトは最初に
RecordSet.new-record を使って新規レコードを作成してから、そのデータを新規レコードに適用します。
追加に失敗した場合、例外がスローされレコードセットはそのまま変更されません。
(メソッド)
public abstract | {RecordSet.commit}:void |
変更されたすべての Record をコミットします。
説明
この操作はすべてのレコードに対してアトミックであると考えてください。この操作が任意の 1 レコードで失敗した場合、レコードセットの状態はそのまま変更されません。
(メソッド)
public abstract | {RecordSet.delete-all}:void |
すべての Record を削除します。
説明
オーバーライド
(メソッド)
protected | {RecordSet.ensure-attached rec:Record}:void |
record がこの RecordSet にアタッチされていない場合は DataException をスローします。
説明
この Record の変更を行うコード ブロックの前に内部で呼び出されるメソッド。
アタッチされている (attached)レコードがすべて
RecordSet のメンバというわけではありません。特に、
new-record メソッドで作成された新規レコードは、
append メソッドが呼び出されるまでレコードセットのメンバではありませんが
アタッチされているとみなされます。
(メソッド)
protected | {RecordSet.ensure-modifiable}:void |
この RecordSet が変更不可能な場合は DataNotModifiable 例外をスローします。
説明
この RecordSet の変更を行うコード ブロックの前に内部で呼び出されるメソッド。
(メソッド)
public | {RecordSet.handle-event event:Event}:void |
適切な EventHandlers を呼び出してイベントを処理します。
event: 処理する Event。
(メソッド)
public abstract | {RecordSet.load}:void |
この RecordSet をロードまたは再ロードします。
(メソッド)
record がこの RecordSet に含まれているかどうか示します。
(メソッド)
public abstract | {RecordSet.new-record}:Record |
新しい Record を作成します。
説明
レコードは
RecordState.new 状態で返されます。
append が呼び出されるまで、実際にレコードセットのメンバにはなりません。
(メソッド)
すべての RecordSetEvent のスタティック イベント ハンドラ。
ev: 処理する RecordSetEvent。
説明
このハンドラは、ev ですべてのダイナミック ハンドラが呼び出された後で呼び出されます。
オーバーライド
RecordSetEvent に応答するにはこのメソッドをオーバーライドします。実装では必ずスーパー実装を呼び出してください。
(メソッド)
この RecordSet の RecordView を登録します。
プログラミング注意事項
説明
view の登録は weak な関連付けであり、view またはこのオブジェクトがガーベッジ コレクトされるのを防ぐものではないことに注意してください。
オーバーライド
このメソッドの実装では、必ずスーパー実装を呼び出してください。
(メソッド)
public abstract | {RecordSet.revert}:void |
(メソッド)
指定 RecordFilter を通過したレコードの配列を返します。
説明
このメソッドは元のレコードのクローン コレクションを返します。したがって、これを繰り返し処理することによりメンバ レコードを安全に操作することができます。詳細は
to-Iterator を参照してください。
(メソッド)
指定された RecordFilter をパスする 1 レコードを返します。
filter: RecordFilter または null。null が RecordSet に 1 つ含まれいてる場合は、1 レコードが返されます。
説明
複数のレコードが filter をパスする場合、1 レコードだけが返されます。
(メソッド)
public abstract | {RecordSet.to-Iterator}:{Iterator-of Record} |
すべてのアクティブな Record の Iterator-of を返します。
説明
このメソッドで関連レコードのスナップショットが必ず得られるわけではありません。したがって、この反復子にアクセスしている間に RecordSet の構成メンバが変更されるとエラーが発生する場合があります。この変更には、レコードの永久削除、新規フィルタまたはソートの適用、あるいはソートやフィルタの結果も変化するようなデータの変更が含まれます。
このメソッドは
RecordSet を繰り返し処理するには最もメモリ効率のよい方法です。ただし、このメソッドを安全に使用できるかどうか不明の場合は、代わりに
select メソッドを
null フィルタを指定して使用してください。
select は関連レコードのクローン配列を作成します。
(メソッド)
この RecordSet の RecordView を登録解除します。
プログラミング注意事項
説明