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

元のデータを含む BasicRecord セットを格納する、大部分の RecordSet インターフェイスの基本実装。

オーバーライド

BasicRecordSetBasicRecord 型のレコードを返し、このクラスとの特別な通信インターフェイスを備えています。使用する BasicRecord の性質またはサブタイプを変更するには、BasicRecordSet.allocate-record をオーバーライドします。

コンストラクタ
default:BasicRecordSet を作成します。
コンストラクタ public {BasicRecordSet.default
fields:RecordFields,
modifiable?:bool = true,
...:EventHandler
}

プロパティ
fields:Record に現れるデータ アイテムの特徴を定義するフィールド記述子 (RecordFields)。
アクセサ public BasicRecordSet.fields:RecordFields
modifiable?:内容の変更が許可されているかどうかを示します。
アクセサ public BasicRecordSet.modifiable?:bool
セッター protected BasicRecordSet.modifiable?:bool
pending-update?:この RecordSet でペンディング中の更新があるかどうか調べます。
アクセサ public BasicRecordSet.pending-update?:bool
size:この RecordSet 内の Record 数。
アクセサ public BasicRecordSet.size:int
プロパティ 継承 EventManagingRecordSet: batch-events?, suppress-events?
プロパティ 継承 RecordSet: load-state, registered-views
プロパティ 継承 EventTarget: event-handlers

メソッド
allocate-record:この BasicRecordSet での使用に適した BasicRecord オブジェクトを作成します。
protected {BasicRecordSet.allocate-record}:BasicRecord
append:RecordSet に新規レコードを追加します。
public {BasicRecordSet.append val:any}:void
append-row-data:以前に有効となったデータ行を追加します。
public {BasicRecordSet.append-row-data
data:{FastArray-of FastArray},
clear?:bool = false
}:void
commit:変更されたすべての Record をコミットします。
public {BasicRecordSet.commit}:void
commit-record:record のコミットに関連して、検証、データ更新、イベント発生を実行します。
protected {BasicRecordSet.commit-record record:BasicRecord}:void
deindex-record:このレコードを関連するすべてのインデックスから削除します。
protected {BasicRecordSet.deindex-record record:BasicRecord}:void
deindex-record-field:このレコードを特定フィールドに関連付けられたインデックスから削除します。
protected {BasicRecordSet.deindex-record-field
record:BasicRecord,
field-index:int
}:void
delete-all:すべての Record を削除します。
public {BasicRecordSet.delete-all}:void
delete-record:record の削除に関連して、検証、データ更新、イベント発生を実行します。
protected {BasicRecordSet.delete-record record:BasicRecord}:void
index-record:このレコードを関連インデックスに追加します。
protected {BasicRecordSet.index-record record:BasicRecord}:void
index-record-field:このレコードを指定フィールドに関連付けられたインデックスに追加します。
protected {BasicRecordSet.index-record-field
record:BasicRecord,
field-index:int
}:void
init:recordset を初期化します。
protected {BasicRecordSet.init fields:#RecordFields = null}:void
internal-store-record:この BasicRecordSet が保持するレコードのコレクションにレコードを格納します。
protected {BasicRecordSet.internal-store-record
record:BasicRecord,
state:RecordState
}:void
member?:record がこの RecordSet に含まれているかどうか示します。
public {BasicRecordSet.member? record:Record}:bool
new-record:新しい Record を作成します。
public {BasicRecordSet.new-record}:BasicRecord
revert:変更されたすべての Record を復帰させます。
public {BasicRecordSet.revert}:void
revert-record:record の復帰に関連して、検証、データ更新、イベント発生を実行します。
protected {BasicRecordSet.revert-record record:BasicRecord}:void
set-value:recordfield-name のデータ変更に関連して、検証、データ更新、イベント発生を実行します。
protected {BasicRecordSet.set-value
record:BasicRecord,
field-index:int,
val:any
}:void
to-Iterator:すべてのアクティブな RecordIterator-of を返します。
public {BasicRecordSet.to-Iterator}:{Iterator-of Record}
validate-record:メンバまたはメンバ候補のレコードを検証します。
protected {BasicRecordSet.validate-record
record:BasicRecord,
pending?:bool = true,
check-index-constraints?:bool = true,
throw-exception?:bool = false
}:#ValidationException
validate-value:指定レコードの指定フィールドに配置できるかデータ値かどうか調べます。
protected {BasicRecordSet.validate-value
record:BasicRecord,
field-index:int,
val:any,
check-index-constraints?:bool = true
}:#ValidationException
メソッド 継承 EventManagingRecordSet: trigger-record-set-event
メソッド 継承 RecordSet: ensure-attached, ensure-modifiable, handle-event, load, 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



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

BasicRecordSet を作成します。

fields: Record に現れるデータ アイテムの性質を定義する RecordFields
modifiable?: RecordSet.modifiable? を参照してください。
...: このオブジェクトに追加する EventHandler



プロパティ詳細
fields (アクセサ)
アクセサ public BasicRecordSet.fields:RecordFields

Record に現れるデータ アイテムの特徴を定義するフィールド記述子 (RecordFields)。



modifiable? (アクセサ)
アクセサ public BasicRecordSet.modifiable?:bool
セッター protected BasicRecordSet.modifiable?:bool

内容の変更が許可されているかどうかを示します。



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

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

説明

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


size (アクセサ)
アクセサ public BasicRecordSet.size:int

この RecordSet 内の Record 数。






メソッド詳細
allocate-record (メソッド)
protected {BasicRecordSet.allocate-record}:BasicRecord

この BasicRecordSet での使用に適した BasicRecord オブジェクトを作成します。

説明

アプリケーションでは使用しません。 アプリケーションでは代わりに RecordSet.new-record を使用します。

戻り値

新規の BasicRecord

オーバーライド

サブクラスで使うすべての Records のインスタンスを決定するには、このクラスをオーバーライドします。BasicRecord のカスタム サブクラスを直接割り当てることができます。別の手段としては、スーパー実装を使ってレコードを割り当て、これを返す前にカスタマイズされた方法で初期化することができます。
BasicRecord のサブクラスを返すサブクラスでは、RecordSet.new-record だけでなく、このメソッドの戻り型も変更して特定のレコード型を提示することができる点に注意してください。


append (メソッド)
public {BasicRecordSet.append val:any}:void

RecordSet に新規レコードを追加します。

new-record: anynew-record の呼び出しにより生成された Record か、新規レコードのデータを含む RecordData

説明

RecordData が入力値の場合、このオブジェクトは最初に RecordSet.new-record を使って新規レコードを作成してから、そのデータを新規レコードに適用します。
追加に失敗した場合、例外がスローされレコードセットはそのまま変更されません。

例外のスロー



append-row-data (メソッド)
public {BasicRecordSet.append-row-data
data:{FastArray-of FastArray},
clear?:bool = false
}:void

以前に有効となったデータ行を追加します。

説明

clear? パラメータが true の場合、全レコードをクリアします。その後、data の各要素のデータは、この BasicRecordSet に追加される新しいレコードを初期化するのに使用されます。
data: 一行の有効なデータを保持する配列を格納している配列です。
clear?: true の場合、この RecordSet はデータを追加する前にクリアされます。
導入: バージョン 6.0


commit (メソッド)
public {BasicRecordSet.commit}:void

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

説明

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


commit-record (メソッド)
protected {BasicRecordSet.commit-record record:BasicRecord}:void

record のコミットに関連して、検証、データ更新、イベント発生を実行します。

説明

このメソッドは BasicRecord.commit で呼び出され、コミットに関連する多量の作業を実行します。通常はアプリケーションから直接呼び出しません。
このメソッドの機能は BasicRecordSet.set-value に似ています (詳細を確認してください)。

オーバーライド

実装においては、要求される複雑な処理を実行するためにスーパー実装を呼び出すことを強くお勧めします。


deindex-record (メソッド)
protected {BasicRecordSet.deindex-record record:BasicRecord}:void

このレコードを関連するすべてのインデックスから削除します。

record: インデックスを削除する BasicRecord

説明

record のインデックスがまだ作成されていない場合はエラーをスローします。

オーバーライド

通常はオーバーライドしません。 代わりに BasicRecordSet.deindex-record-field をオーバーライドします。


deindex-record-field (メソッド)
protected {BasicRecordSet.deindex-record-field
record:BasicRecord,
field-index:int
}:void

このレコードを特定フィールドに関連付けられたインデックスから削除します。

record: インデックスを削除する BasicRecord
field-index: int。 インデックスを削除する record フィールドのインデックス。

説明

指定フィールドに関連付けられたインデックスが存在しない場合、何も行われません。
インデックスが存在する場合、そこに record がまだ含まれていなければこのメソッドはエラーをスローします。


delete-all (メソッド)
public {BasicRecordSet.delete-all}:void

すべての Record を削除します。

説明

個々のメンバ レコードで Record.delete を呼び出す代わりに、このメソッドで効率的に処理できます。

オーバーライド

このメソッドの実装では、一連の RecordsChanged イベントよりも単一の RecordsBulkChanges イベントをトリガするようにしてください。


delete-record (メソッド)
protected {BasicRecordSet.delete-record record:BasicRecord}:void

record の削除に関連して、検証、データ更新、イベント発生を実行します。

説明

このメソッドは BasicRecord.delete で呼び出され、削除に関連する大半の作業を実行します。 通常はアプリケーションから直接呼び出しません。
詳細は BasicRecordSet.set-value を参照してください。

オーバーライド

実装においては、要求される複雑な処理を実行するためにスーパー実装を呼び出すことを強くお勧めします。


index-record (メソッド)
protected {BasicRecordSet.index-record record:BasicRecord}:void

このレコードを関連インデックスに追加します。

record: インデックスを作成する BasicRecord

説明

現在の値でこのレコードのインデックスを作成するとインデックス制約を破ることになる場合、例外がスローされます。このメソッドを呼び出す前に、check-index-constraints?=true に設定して BasicRecordSet.validate-record を呼び出すことをお勧めします。

オーバーライド

通常はオーバーライドしません。 代わりに BasicRecordSet.index-record-field をオーバーライドします。


index-record-field (メソッド)
protected {BasicRecordSet.index-record-field
record:BasicRecord,
field-index:int
}:void

このレコードを指定フィールドに関連付けられたインデックスに追加します。

record: インデックスを作成する BasicRecord
field-index: int。 インデックスを作成する record フィールドのインデックス。

説明

指定フィールドに関連付けられたインデックスが存在しない場合、何も行われません。


init (メソッド)
protected {BasicRecordSet.init fields:#RecordFields = null}:void

recordset を初期化します。

fields: 新しく設ける RecordFields か、null (既存のフィールドをそのまま使用する場合)。

説明

既存のデータとインデックスはすべて破棄されます。


internal-store-record (メソッド)
protected {BasicRecordSet.internal-store-record
record:BasicRecord,
state:RecordState
}:void

この BasicRecordSet が保持するレコードのコレクションにレコードを格納します。

record: 格納される BasicRecord。このレコードはレコードセットに関連付けられて (つまり BasicRecordSet.allocate-record で作成されて) いますが、まだコレクションのアクティブなメンバではありなせん (RecordSet.member? は false を返します)。
state: record の状態を示す RecordState。次のいずれかを指定します。

説明

このメソッドは record を検証してインデックスを作成しますが、イベントはトリガしません。


member? (メソッド)
public {BasicRecordSet.member? record:Record}:bool

record がこの RecordSet に含まれているかどうか示します。



new-record (メソッド)
public {BasicRecordSet.new-record}:BasicRecord

新しい Record を作成します。

説明

レコードは RecordState.new 状態で返されます。append が呼び出されるまで、実際にレコードセットのメンバにはなりません。
modifiable? が false の場合、DataNotModifiable 例外をスローします。


revert (メソッド)
public {BasicRecordSet.revert}:void

変更されたすべての Record を復帰させます。

説明

Record.revert を参照してください。


revert-record (メソッド)
protected {BasicRecordSet.revert-record record:BasicRecord}:void

record の復帰に関連して、検証、データ更新、イベント発生を実行します。

説明

このメソッドは BasicRecord.revert で呼び出され、復帰に関連する大半の作業を実行します。 通常はアプリケーションから直接呼び出しません。
このメソッドの機能は BasicRecordSet.set-value に似ています (詳細を確認してください)。

オーバーライド

実装においては、要求される複雑な処理を実行するためにスーパー実装を呼び出すことを強くお勧めします。


set-value (メソッド)
protected {BasicRecordSet.set-value
record:BasicRecord,
field-index:int,
val:any
}:void

recordfield-name のデータ変更に関連して、検証、データ更新、イベント発生を実行します。

record: 変更する BasicRecord
field-index: 変更するフィールドのインデックス。
val: 新規データ。

プログラミング注意事項

このメソッドは BasicRecord.set で呼び出され、データの変更に関連する大半の作業を実行します。通常はアプリケーションから直接呼び出さず、レコードで標準メソッドを呼び出します。

説明

このメソッドの目的は Record.set で説明されているレコード状態の変化の仕組みを実装することにあり、データを実際に変更するために BasicRecord.internal-set-stateBasicRecord.internal-set-value を呼び出します。
さらにこのメソッドはレコードの新しい状態を反映させるために、BasicRecordSet.validate-recordBasicRecordSet.index-record および BasicRecordSet.deindex-record も呼び出します。
最後に、この変更に関連するすべての RecordSetEvent をトリガします。

オーバーライド

このメソッドの実装においては、要求される複雑な処理を実行するためにスーパー実装を呼び出すことを強くお勧めします。

例外のスロー



to-Iterator (メソッド)
public {BasicRecordSet.to-Iterator}:{Iterator-of Record}

すべてのアクティブな RecordIterator-of を返します。

説明

このメソッドで関連レコードのスナップショットが必ず得られるわけではありません。したがって、この反復子にアクセスしている間に RecordSet の構成メンバが変更されるとエラーが発生する場合があります。この変更には、レコードの永久削除、新規フィルタまたはソートの適用、あるいはソートやフィルタの結果も変化するようなデータの変更が含まれます。
このメソッドは RecordSet を繰り返し処理するには最もメモリ効率のよい方法です。ただし、このメソッドを安全に使用できるかどうか不明の場合は、代わりに select メソッドを null フィルタを指定して使用してください。select は関連レコードのクローン配列を作成します。


validate-record (メソッド)
protected {BasicRecordSet.validate-record
record:BasicRecord,
pending?:bool = true,
check-index-constraints?:bool = true,
throw-exception?:bool = false
}:#ValidationException

メンバまたはメンバ候補のレコードを検証します。

record: 検証する BasicRecord
pending?: bool。 ペンディング中のデータを検証するかどうかを指定します。false の場合、元のデータが検証されます。
check-index-constraints?: boolfalse の場合、一意性のインデックス制約が破られても無視されます。
throw-exception?: booltrue の場合、生成された検証例外はすべて直接スローされます。その他の場合、これらは返されます。

説明

このメソッドの既定の実装では、レコードの各フィールドを該当する Domain に対して検証するだけでなく、指定された場合はそのフィールドに固有のインデックス制約も検証します。

戻り値

ValidationException または null


validate-value (メソッド)
protected {BasicRecordSet.validate-value
record:BasicRecord,
field-index:int,
val:any,
check-index-constraints?:bool = true
}:#ValidationException

指定レコードの指定フィールドに配置できるかデータ値かどうか調べます。

説明

指定されたフィールド位置にこのデータが既にある場合とない場合がある点に注意してください。
record: 検証する BasicRecord
field-index: 検証するフィールドのインデックス。
val: 検証する新規データ。
check-index-constraints?: boolfalse の場合、一意性のインデックス制約が破られても無視されます。

戻り値

ValidationException または null