public final class CopySourceEdit extends TextEdit
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.
CopyTargetEdit
CREATE_UNDO, NONE, UPDATE_REGIONS
Constructor and Description |
---|
CopySourceEdit(int offset,
int length)
Constructs a new copy source edit.
|
CopySourceEdit(int offset,
int length,
CopyTargetEdit target)
Constructs a new copy source edit.
|
Modifier and Type | Method and 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 or
null
if no source modifier is set. |
CopyTargetEdit |
getTargetEdit()
Returns the associated target edit or
null
if no target edit is associated yet. |
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(CopyTargetEdit edit)
Sets the target edit.
|
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
public CopySourceEdit(int offset, int length)
offset
- the edit's offsetlength
- the edit's lengthpublic CopySourceEdit(int offset, int length, CopyTargetEdit target)
offset
- the edit's offsetlength
- the edit's lengthtarget
- the edit's targetpublic CopyTargetEdit getTargetEdit()
null
if no target edit is associated yet.null
public void setTargetEdit(CopyTargetEdit edit) throws MalformedTreeException
edit
- the new target edit.MalformedTreeException
- is thrown if the target edit
is a direct or indirect child of the source editpublic ISourceModifier getSourceModifier()
null
if no source modifier is set.public void setSourceModifier(ISourceModifier modifier)
modifier
- the source modifier or null
if no source modification is need.protected TextEdit doCopy()
TextEdit
Implementers of this method should use the copy constructor
This method should not be called from outside the framework.
Please use
Edit#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.
doCopy
in class TextEdit
TextEdit.copy()
,
TextEdit.postProcessCopy(TextEditCopier)
,
TextEditCopier
protected void accept0(TextEditVisitor visitor)
TextEdit
General template for implementation on each concrete TextEdit class:
boolean visitChildren= visitor.visit(this);
if (visitChildren) {
acceptChildren(visitor);
}
Note that the caller (accept
) takes care of invoking
visitor.preVisit(this)
and visitor.postVisit(this)
.
protected void postProcessCopy(TextEditCopier copier)
TextEdit
This default implementation does nothing
postProcessCopy
in class TextEdit
copier
- the copier that manages a map between original and
copied edit.TextEditCopier
Copyright (c) 2000, 2014 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.