Package org.eclipse.text.edits
Class CopySourceEdit
java.lang.Object
org.eclipse.text.edits.TextEdit
org.eclipse.text.edits.CopySourceEdit
A copy source edit denotes the source of a copy operation. Copy
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 a
MalformedTreeException when executing the edit tree.
A copy 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:
-
Field Summary
Fields inherited from class org.eclipse.text.edits.TextEdit
CREATE_UNDO, NONE, UPDATE_REGIONS -
Constructor Summary
ConstructorsConstructorDescriptionCopySourceEdit(int offset, int length) Constructs a new copy source edit.CopySourceEdit(int offset, int length, CopyTargetEdit target) Constructs a new copy source edit. -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaccept0(TextEditVisitor visitor) Accepts the given visitor on a type-specific visit of the current edit.protected TextEditdoCopy()Creates and returns a copy of this edit.Returns the current source modifier ornullif no source modifier is set.Returns the associated target edit ornullif no target edit is associated yet.protected voidpostProcessCopy(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.voidsetSourceModifier(ISourceModifier modifier) Sets the optional source modifier.voidsetTargetEdit(CopyTargetEdit 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 Details
-
CopySourceEdit
public CopySourceEdit(int offset, int length) Constructs a new copy source edit.- Parameters:
offset- the edit's offsetlength- the edit's length
-
CopySourceEdit
Constructs a new copy source edit.- Parameters:
offset- the edit's offsetlength- the edit's lengthtarget- the edit's target
-
-
Method Details
-
getTargetEdit
Returns the associated target edit ornullif no target edit is associated yet.- Returns:
- the target edit or
null
-
setTargetEdit
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
Returns the current source modifier ornullif no source modifier is set.- Returns:
- the source modifier
-
setSourceModifier
Sets the optional source modifier.- Parameters:
modifier- the source modifier ornullif no source modification is need.
-
doCopy
Description copied from class:TextEditCreates 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.copyto create a copy of a edit tree. -
accept0
Description copied from class:TextEditAccepts 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:
Note that the caller (boolean visitChildren= visitor.visit(this); if (visitChildren) { acceptChildren(visitor); }accept) takes care of invokingvisitor.preVisit(this)andvisitor.postVisit(this). -
postProcessCopy
Description copied from class:TextEditThis 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:
postProcessCopyin classTextEdit- Parameters:
copier- the copier that manages a map between original and copied edit.- See Also:
-