IVersioned class abstract

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

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
version String
The object's version.
getter/setter pair

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toString() String
A string representation of this object.
inherited

Operators

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