public final class CopyTargetEdit extends TextEdit
MalformedTreeException
when executing the edit tree.
Copy target edits can't be used as a parent for other edits.
Trying to add an edit to a copy target edit results in a
MalformedTreeException
as well.
CopySourceEdit
CREATE_UNDO, NONE, UPDATE_REGIONS
Constructor and Description |
---|
CopyTargetEdit(int offset)
Constructs a new copy target edit
|
CopyTargetEdit(int offset,
CopySourceEdit source)
Constructs an new copy target 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.
|
CopySourceEdit |
getSourceEdit()
Returns the associated source edit or
null
if no source 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 |
setSourceEdit(CopySourceEdit edit)
Sets the source 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 CopyTargetEdit(int offset)
offset
- the edit's offsetpublic CopyTargetEdit(int offset, CopySourceEdit source)
offset
- the edit's offsetsource
- the corresponding source editpublic CopySourceEdit getSourceEdit()
null
if no source edit is associated yet.null
public void setSourceEdit(CopySourceEdit edit) throws MalformedTreeException
edit
- the source editMalformedTreeException
- is thrown if the target edit
is a direct or indirect child of the source editprotected 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 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
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)
.
Copyright (c) 2000, 2014 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.