KoolbaseConflict class

A queued offline write the server would not apply, because the record changed between the change being made and the queue reaching it.

Not an error to dismiss and not a write to retry: retrying cannot help, and discarding it would lose a change the user believes is saved. It waits, and keeps waiting across restarts, until the application decides.

Only the application can decide. Whether a later edit should win depends on what the data means, and a platform that chooses for everyone is wrong for someone.

Constructors

KoolbaseConflict({required String id, required String collection, required String recordId, required ConflictOperation operation, required Map<String, dynamic>? baseline, required Map<String, dynamic>? local, required Map<String, dynamic>? server, required ConflictReason reason, required String? message, required int? baseRevision, required int? serverRevision, required DateTime createdAt, required ConflictResolver resolver})

Properties

age → Duration
How long this has been waiting.
no setter
baseline → Map<String, dynamic>?
The record as it was when the change was composed.
final
baseRevision → int?
final
collection → String
final
createdAt → DateTime
final
divergentFields → List<String>
Fields where the user's change and the server's version disagree.
no setter
hashCode → int
The hash code for this object.
no setterinherited
id → String
final
local → Map<String, dynamic>?
The change the user made, still unapplied.
final
message → String?
What the server said, when it refused for a terminal reason.
final
operation → ConflictOperation
final
reason → ConflictReason
Why this is waiting.
final
recordId → String
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
server → Map<String, dynamic>?
The record as the server held it when the write was refused. Captured with the refusal, so showing both versions costs no fetch and cannot race one.
final
serverRevision → int?
final

Methods

abandon() → Future<void>
Drops the change without claiming either version won.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
resolveWithLocal() → Future<void>
Reapplies the user's change to the record as it stands now.
resolveWithMerge(Map<String, dynamic> data) → Future<void>
Applies a merged result the application composed from both versions.
resolveWithServer() → Future<void>
Keeps the server's version and discards the user's change.
toString() → String
A string representation of this object.
override

Operators

operator ==(Object other) → bool
The equality operator.
inherited