LayerInterface <P>
Implemented by
Index
Properties
attachments
Provides access to the layer attachments API (LayerAttachmentsApi) Use methods on it to get, add, update and delete attachments for this layer.
readonlychangeCount
Number of objects in layer not marked with state Unchanged.
readonlyconflictCount
Number of objects with conflicts in the layer. A conflict occurs if there is a mismatch between the local and the remote representation of the layer. Conflicts can only occur when saveAndMerge or loadAndMerge is called.
readonlyconflicts
Conflicts in the layer. A conflict occurs if there is a mismatch between the local and the remote representation of a object in the layer. Conflicts can only occur when saveAndMerge or loadAndMerge is called.
readonlydefinition
The layer definition.
readonlyid
Id of the layer
readonlyisLoaded
true
if a layer exists and if saveAndMerge or loadAndMerge
has been called successfully at least once.
readonlyname
Get the name of the layer. Returns undefined if no layer has been loaded.
readonlyobjects
Get the objects currently in the layer
readonlypermission
Permissions user has on layer.
readonlyversion
Get the version of the currently loaded layer. [-1] if no layer has yet been loaded.
Methods
add
Add an object. If object already exists it will not be added. That is if an item where MergableObject.id already exists.
Parameters
o: P
Object to add
Returns boolean
true
if object was added, otherwisefalse
.
clear
Clear the layer.
Returns void
delete
Deletes a object
Parameters
p: string | P
Returns boolean
true
if object was deleted. Otherwisefalse
get
Get a specific object in the layer. Both the local and the remote representation of the object is returned
Parameters
id: string
id of the object to get. Returns undefined if no such object exists.
Returns undefined | MergableObjectWithState<P>
loadAndMerge
Loads all existing (remote) objects from the backend and attempts to merge them into objects. This may result in conflicts between the local and the remote objects. A typical example is if the same object has been modified locally but also remotely (in the backend.)
Returns Promise<number | LayerFailure>
saveAndMerge
Saves all objects in objects and retrieves any added, modified layer objects made in backend (Remote) at the same time. An attempt is then made to merge the object from the backend (Remote) into the local (browser) objects.
Parameters
optionaloverwriteLatestVersion: boolean
If
true
then latest version is overwritten (if save was successful).
Returns Promise<number | LayerFailure>
Number of conflicts. If > 0 then the operation was not successful. The conflicts must be resolved before a new attempt is made. If a LayerFailure is returned then it signifies that some unexpected error occured. Inspect the contents to determine the cause.
update
Updates an object that already exists.
Parameters
id: string
Id of object to update
updateAction: (existingItem: P) => void
function called with MergableObject instance of specified id. Caller should make any required modfifications to the object in this function.
Returns boolean
true
if object did exist, otherwisefalse
.
A layer can contain any type of object data structure. When objects are added, deleted or modified events on the corresponding objects are raised. Since layer objects are divided into local and remote objects. Remote objects are those that are retrieved from the backend.