IVersioned class

Interface for data objects that can be versioned.

Versioning is often used as optimistic concurrency mechanism.

The version doesn't have to be a number, but it is recommended to use sequential values to determine if one object has newer or older version than another one.

It is a common pattern to use the time of change as the object version.

Example

class MyData implements IStringIdentifiable, IVersioned {
     String id;
    String  field1;
    int field2;
    String version;
    ...
}

 void updateData(String correlationId, MyData item ) {
    ...
    if (item.version < oldItem.version) {
        throw  ConcurrencyException(null, 'VERSION_CONFLICT', 'The change has older version stored value');
    }
    ...
}

Constructors

IVersioned()

Properties

version ↔ String
The object's version.
read / write
hashCode → int
The hash code for this object. [...]
read-only, inherited
runtimeType → Type
A representation of the runtime type of the object.
read-only, inherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
toString() → String
Returns a string representation of this object.
inherited

Operators

operator ==(dynamic other) → bool
The equality operator. [...]
inherited