|
|
|
|
org.eclipse.text.edits
Class MultiTextEdit
java.lang.Object
org.eclipse.text.edits.TextEdit
org.eclipse.text.edits.MultiTextEdit
-
Direct Known Subclasses:
-
MultiTextEditWithProgress
-
public class MultiTextEdit
- extends
TextEdit
A multi-text edit can be used to aggregate several edits into
one edit. The edit itself doesn't modify a document.
Clients are allowed to implement subclasses of a multi-text
edit.Subclasses must implement doCopy() to ensure
the a copy of the right type is created. Not implementing
doCopy() in subclasses will result in an assertion
failure during copying.
-
Since:
- 3.0
Method Summary
|
protected void
|
accept0
(
TextEditVisitor visitor)
Accepts the given visitor on a type-specific visit of the current edit. |
protected boolean
|
canZeroLengthCover
()
Returns true if an edit with length zero can cover
another edit. |
protected void
|
checkIntegrity
()
Checks the edit's integrity. |
boolean
|
covers
(
TextEdit other)
Returns true if the edit covers the given edit
other . |
protected
TextEdit
|
doCopy
()
Creates and returns a copy of this edit. |
int
|
getLength
()
Returns the length of the edit. |
int
|
getOffset
()
Returns the offset of the edit. |
Methods inherited from class org.eclipse.text.edits.
TextEdit
|
accept,
acceptChildren,
addChild,
addChildren,
apply,
apply,
childDocumentUpdated,
childRegionUpdated,
copy,
equals,
getChildren,
getChildrenSize,
getCoverage,
getExclusiveEnd,
getInclusiveEnd,
getParent,
getRegion,
getRoot,
hasChildren,
hashCode,
isDeleted,
moveTree,
postProcessCopy,
removeChild,
removeChild,
removeChildren,
toString
|
MultiTextEdit
public MultiTextEdit()
- Creates a new
MultiTextEdit . The range
of the edit is determined by the range of its children.
Adding this edit to a parent edit sets its range to the
range covered by its children. If the edit doesn't have
any children its offset is set to the parent's offset
and its length is set to 0.
MultiTextEdit
public MultiTextEdit(int offset,
int length)
- Creates a new MultiTextEdit for the given
range. Adding a child to this edit which isn't covered
by the given range will result in an exception.
-
Parameters:
-
offset - the edit's offset -
length - the edit's length. -
See Also:
-
TextEdit.addChild(TextEdit) ,
TextEdit.addChildren(TextEdit[])
MultiTextEdit
protected MultiTextEdit(
MultiTextEdit other)
checkIntegrity
protected void checkIntegrity()
throws
MalformedTreeException
- Checks the edit's integrity.
Note that this method should only be called by the edit
framework and not by normal clients.
This default implementation does nothing. Subclasses may override
if needed.
-
-
Throws:
-
MalformedTreeException
- if the edit isn't in a valid state
and can therefore not be executed
getOffset
public final int getOffset()
- Returns the offset of the edit. An offset is a 0-based
character index. Returns
-1 if the edit
is marked as deleted.
-
-
Overrides:
-
getOffset
in class
TextEdit
-
-
Returns:
- the offset of the edit
getLength
public final int getLength()
- Returns the length of the edit. Returns
-1
if the edit is marked as deleted.
-
-
Overrides:
-
getLength
in class
TextEdit
-
-
Returns:
- the length of the edit
covers
public final boolean covers(
TextEdit other)
- Returns
true if the edit covers the given edit
other . It is up to the concrete text edit to
decide if a edit of length zero can cover another edit.
-
-
Overrides:
-
covers
in class
TextEdit
-
-
Parameters:
-
other - the other edit
-
Returns:
-
true if the edit covers the other edit;
otherwise false is returned.
canZeroLengthCover
protected boolean canZeroLengthCover()
-
Description copied from class:
TextEdit
- Returns
true if an edit with length zero can cover
another edit. Returns false otherwise.
-
-
Overrides:
-
canZeroLengthCover
in class
TextEdit
-
-
Returns:
- whether an edit of length zero can cover another edit
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
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.
This method should not be called from outside the framework.
Please use copy to create a copy of a edit tree.
-
Specified by:
-
doCopy
in class
TextEdit
-
-
Returns:
- a copy of this edit.
-
See Also:
-
TextEdit.copy() ,
TextEdit.postProcessCopy(TextEditCopier) ,
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);
}
Note that the caller (accept ) takes care of invoking
visitor.preVisit(this) and visitor.postVisit(this) .
-
-
Specified by:
-
accept0
in class
TextEdit
-
-
Parameters:
-
visitor - the visitor object
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.
|
|
|