# Enumeration MergableObjectState

Describes the states a mergable object may have. A mergable object is an object that has a local and a remote representation. Changes made to the local object shall be synchronized to the remote object and vice versa. In same cases conflicts may arise because changes have been made to both the local and the remote representation of the object.

##### Index

### Enumeration Members

Added
Deleted
Modified
Unchanged

## Enumeration Members

### Added

Added: 1

Object has been added to MergableSet via MergableSet.add but has not yet been saved (in which case it shall become MergableObjectState.Unchanged). It is not possible to transition directly to MergableObjectState.Modified from this state as there is (probably) not yet a remote counterpart. In the unlikely case there is a remote counterpart we will have to deal with a conflict. Somebody has added the exact same object remotely

### Deleted

Deleted: 4

Object is marked for deletion. If the object has no remote counterpart it is removed immediately. Otherwise it will be removed on next save. (at which point its remote counterpart will disappear).

### Modified

Modified: 2

Local object has been modified. Only possible if the local object has had or have a remote counterpart. A object can only get this state if MergableSet.update is called and the object previously existed in MergableSet. Do note that if a object is updated because its remote counterpart has changed then the object will retain its MergableObjectState.Unchanged state.

### Unchanged

Unchanged: 0

Object is not modified. Only possible if the object has had or have a remote counterpart.