MergeOperation
Operation to merge two elements.
The merged element is the parent of sourcePosition
and it is merged into the parent of
targetPosition
. All nodes from the merged element are moved to targetPosition
.
The merged element is moved to the graveyard at graveyardPosition
.
Properties
-
affectedSelectable : ModelSelectable
readonlymodule:engine/model/operation/mergeoperation~MergeOperation#affectedSelectable
A selectable that will be affected by the operation after it is executed.
The exact returned parameter differs between operation types.
-
baseVersion : null | number
inheritedmodule:engine/model/operation/mergeoperation~MergeOperation#baseVersion
version
on which operation can be applied. If you try to apply operation with different base version than the document version the model-document-applyOperation-wrong-version error is thrown. -
module:engine/model/operation/mergeoperation~MergeOperation#batch
Batch to which the operation is added or
null
if the operation is not added to any batch yet.Note, that a non-document operation has this property always set to
null
, and is never added to any batch. -
deletionPosition : ModelPosition
readonlymodule:engine/model/operation/mergeoperation~MergeOperation#deletionPosition
Position before the merged element (which will be deleted).
-
module:engine/model/operation/mergeoperation~MergeOperation#graveyardPosition
Position in graveyard to which the merged element will be moved.
-
howMany : number
module:engine/model/operation/mergeoperation~MergeOperation#howMany
Summary offset size of nodes which will be moved from the merged element to the new parent.
-
isDocumentOperation : boolean
readonlyinheritedmodule:engine/model/operation/mergeoperation~MergeOperation#isDocumentOperation
Defines whether operation is executed on attached or detached items.
-
movedRange : ModelRange
readonlymodule:engine/model/operation/mergeoperation~MergeOperation#movedRange
Artificial range that contains all the nodes from the merged element that will be moved to
sourcePosition
. The range starts atsourcePosition
and ends in the same parent, atPOSITIVE_INFINITY
offset. -
module:engine/model/operation/mergeoperation~MergeOperation#sourcePosition
Position inside the merged element. All nodes from that element after that position will be moved to
targetPosition
. -
module:engine/model/operation/mergeoperation~MergeOperation#targetPosition
Position which the nodes from the merged elements will be moved to.
-
type : 'merge'
readonlymodule:engine/model/operation/mergeoperation~MergeOperation#type
Operation type.
Static properties
-
className : string
readonlystaticmodule:engine/model/operation/mergeoperation~MergeOperation.className
Name of the operation class used for serialization.
Methods
-
constructor( sourcePosition, howMany, targetPosition, graveyardPosition, baseVersion )
module:engine/model/operation/mergeoperation~MergeOperation#constructor
Creates a merge operation.
Parameters
sourcePosition : ModelPosition
Position inside the merged element. All nodes from that element after that position will be moved to
targetPosition
.howMany : number
Summary offset size of nodes which will be moved from the merged element to the new parent.
targetPosition : ModelPosition
Position which the nodes from the merged elements will be moved to.
graveyardPosition : ModelPosition
Position in graveyard to which the merged element will be moved.
baseVersion : null | number
Document
version
on which operation can be applied ornull
if the operation operates on detached (non-document) tree.
-
clone() → MergeOperation
module:engine/model/operation/mergeoperation~MergeOperation#clone
Creates and returns an operation that has the same parameters as this operation.
Returns
-
getReversed() → Operation
module:engine/model/operation/mergeoperation~MergeOperation#getReversed
-
toJSON() → unknown
module:engine/model/operation/mergeoperation~MergeOperation#toJSON
Custom toJSON method to solve child-parent circular dependencies.
Returns
unknown
Clone of this object with the operation property replaced with string.
-
_execute() → void
internalmodule:engine/model/operation/mergeoperation~MergeOperation#_execute
Executes the operation - modifications described by the operation properties will be applied to the model tree.
Returns
void
-
_validate() → void
internalmodule:engine/model/operation/mergeoperation~MergeOperation#_validate
Checks whether the operation's parameters are correct and the operation can be correctly executed. Throws an error if operation is not valid.
Returns
void
Static methods
-
fromJSON( json, document ) → MergeOperation
staticmodule:engine/model/operation/mergeoperation~MergeOperation.fromJSON
Creates
MergeOperation
object from deserialized object, i.e. from parsed JSON string.Parameters
json : any
Deserialized JSON object.
document : ModelDocument
Document on which this operation will be applied.
Returns