Package org.eclipse.text.edits

## Class CopyingRangeMarker

- java.lang.Object
- - org.eclipse.text.edits.TextEdit
  - - org.eclipse.text.edits.CopyingRangeMarker

    public final class CopyingRangeMarker
    extends TextEdit

A `CopyingRangeMarker` can be used to track positions when executing text edits. Additionally a copying range marker stores a local copy of the text it captures when it gets executed.

Since:
  3.0

### Field Summary

### Fields inherited from class org.eclipse.text.edits.TextEdit

`CREATE_UNDO, NONE, UPDATE_REGIONS`

### Constructor Summary

Constructors
`CopyingRangeMarker​(int offset, int length)` Creates a new `CopyRangeMarker` for the given offset and length.

### Method Summary

All Methods Instance Methods Concrete Methods
`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.

### 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, postProcessCopy, removeChild, removeChild, removeChildren, toString`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### CopyingRangeMarker

    public CopyingRangeMarker​(int offset,
                              int length)

Creates a new `CopyRangeMarker` for the given offset and length.

Parameters:
  `offset` - the marker's offset
  `length` - the marker's length

### Method Detail

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