Package org.eclipse.text.edits
Class MoveSourceEdit
- java.lang.Object
-
- org.eclipse.text.edits.TextEdit
-
- org.eclipse.text.edits.MoveSourceEdit
-
public final class MoveSourceEdit extends TextEdit
A move source edit denotes the source of a move operation. Move source edits are only valid inside an edit tree if they have a corresponding target edit. Furthermore the corresponding target edit can't be a direct or indirect child of the source edit. Violating one of two requirements will result in aMalformedTreeException
when executing the edit tree.A move source edit can manage an optional source modifier. A source modifier can provide a set of replace edits which will to applied to the source before it gets inserted at the target position.
- Since:
- 3.0
- See Also:
MoveTargetEdit
,CopySourceEdit
-
-
Field Summary
-
Fields inherited from class org.eclipse.text.edits.TextEdit
CREATE_UNDO, NONE, UPDATE_REGIONS
-
-
Constructor Summary
Constructors Constructor Description MoveSourceEdit(int offset, int length)
Constructs a new move source edit.MoveSourceEdit(int offset, int length, MoveTargetEdit target)
Constructs a new copy source edit.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
accept0(TextEditVisitor visitor)
Accepts the given visitor on a type-specific visit of the current edit.protected TextEdit
doCopy()
Creates and returns a copy of this edit.ISourceModifier
getSourceModifier()
Returns the current source modifier ornull
if no source modifier is set.MoveTargetEdit
getTargetEdit()
Returns the associated target edit ornull
if no target edit is associated yet.static IRegion
intersect(TextEdit op1, TextEdit op2)
protected void
postProcessCopy(TextEditCopier copier)
This method is called on every edit of the copied tree to do some post-processing like connected an edit to a different edit in the tree.void
setSourceModifier(ISourceModifier modifier)
Sets the optional source modifier.void
setTargetEdit(MoveTargetEdit edit)
Sets the target edit.-
Methods inherited from class org.eclipse.text.edits.TextEdit
accept, acceptChildren, addChild, addChildren, apply, apply, canZeroLengthCover, childDocumentUpdated, childRegionUpdated, copy, covers, equals, getChildren, getChildrenSize, getCoverage, getExclusiveEnd, getInclusiveEnd, getLength, getOffset, getParent, getRegion, getRoot, hasChildren, hashCode, isDeleted, moveTree, removeChild, removeChild, removeChildren, toString
-
-
-
-
Constructor Detail
-
MoveSourceEdit
public MoveSourceEdit(int offset, int length)
Constructs a new move source edit.- Parameters:
offset
- the edit's offsetlength
- the edit's length
-
MoveSourceEdit
public MoveSourceEdit(int offset, int length, MoveTargetEdit target)
Constructs a new copy source edit.- Parameters:
offset
- the edit's offsetlength
- the edit's lengthtarget
- the edit's target
-
-
Method Detail
-
getTargetEdit
public MoveTargetEdit getTargetEdit()
Returns the associated target edit ornull
if no target edit is associated yet.- Returns:
- the target edit or
null
-
setTargetEdit
public void setTargetEdit(MoveTargetEdit edit)
Sets the target edit.- Parameters:
edit
- the new target edit.- Throws:
MalformedTreeException
- is thrown if the target edit is a direct or indirect child of the source edit
-
getSourceModifier
public ISourceModifier getSourceModifier()
Returns the current source modifier ornull
if no source modifier is set.- Returns:
- the source modifier
-
setSourceModifier
public void setSourceModifier(ISourceModifier modifier)
Sets the optional source modifier.- Parameters:
modifier
- the source modifier ornull
if no source modification is need.
-
doCopy
protected TextEdit doCopy()
Description copied from class:TextEdit
Creates and returns a copy of this edit. The copy method should be implemented in a way so that the copy can executed without causing any harm to the original edit. Implementors of this method are responsible for creating deep or shallow copies of referenced object to fulfill this requirement.Implementers of this method should use the copy constructor
This method should not be called from outside the framework. Please useEdit#Edit
(Edit source) to initialize the edit part of the copy. Implementors aren't responsible to actually copy the children or to set the right parent.copy
to create a copy of a edit tree.- Specified by:
doCopy
in classTextEdit
- Returns:
- a copy of this edit.
- See Also:
TextEdit.copy()
,TextEdit.postProcessCopy(TextEditCopier)
,TextEditCopier
-
postProcessCopy
protected void postProcessCopy(TextEditCopier copier)
Description copied from class:TextEdit
This method is called on every edit of the copied tree to do some post-processing like connected an edit to a different edit in the tree.This default implementation does nothing
- Overrides:
postProcessCopy
in classTextEdit
- Parameters:
copier
- the copier that manages a map between original and copied edit.- See Also:
TextEditCopier
-
accept0
protected void accept0(TextEditVisitor visitor)
Description copied from class:TextEdit
Accepts the given visitor on a type-specific visit of the current edit. This method must be implemented in all concrete text edits.General template for implementation on each concrete TextEdit class:
boolean visitChildren= visitor.visit(this); if (visitChildren) { acceptChildren(visitor); }
accept
) takes care of invokingvisitor.preVisit(this)
andvisitor.postVisit(this)
.
-
-