Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.text.edits
Class MultiTextEdit

    java.lang.Object
      org.eclipse.text.edits.TextEdit
          org.eclipse.text.edits.MultiTextEdit

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

Field Summary

Fields inherited from class org.eclipse.text.edits.TextEdit
`CREATE_UNDO, NONE, UPDATE_REGIONS`

Constructor Summary
`` | `MultiTextEdit()` Creates a new `MultiTextEdit`.
`` | `MultiTextEdit(int offset, int length)` Creates a new MultiTextEdit for the given range.
`protected` | `MultiTextEdit(MultiTextEdit other)`

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.
`protected TextEdit` | `doCopy()` Creates and returns a copy of this edit.

Methods inherited from class org.eclipse.text.edits.TextEdit
`accept, acceptChildren, addChild, addChildren, apply, apply, copy, covers, equals, getChildren, getChildrenSize, getCoverage, getExclusiveEnd, getInclusiveEnd, getLength, getOffset, getParent, getRegion, hasChildren, hashCode, isDeleted, postProcessCopy, removeChild, removeChild, removeChildren, toString`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### 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)

Method Detail

### 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

### 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 fullfil 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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Eclipse Platform Release 3.0
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp. and others 2000, 2004. All rights reserved.