Package org.eclipse.text.edits

## Class TextEditVisitor

- java.lang.Object
- - org.eclipse.text.edits.TextEditVisitor

    public class TextEditVisitor
    extends Object

A visitor for text edits.

For each different concrete text edit type T there is a method:

- `public boolean visit(T node)` - Visits the given edit to perform some arbitrary operation. If `true` is returned, the given edit's child edits will be visited next; however, if `false` is returned, the given edit's child edits will not be visited. The default implementation provided by this class calls a generic method `visitNode(TextEdit node)`. Subclasses may reimplement these method as needed.

In addition, there are methods for visiting text edits in the abstract, regardless of node type:

- `public void preVisit(TextEdit edit)` - Visits the given edit to perform some arbitrary operation. This method is invoked prior to the appropriate type-specific `visit` method. The default implementation of this method does nothing. Subclasses may reimplement this method as needed.
- `public void postVisit(TextEdit edit)` - Visits the given edit to perform some arbitrary operation. This method is invoked after the appropriate type-specific `endVisit` method. The default implementation of this method does nothing. Subclasses may reimplement this method as needed.

For edits with children, the child nodes are visited in increasing order.

Since:
  3.0
See Also:
  `TextEdit.accept(TextEditVisitor)`

### Constructor Summary

Constructors
`TextEditVisitor()`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `postVisit​(TextEdit edit)` Visits the given text edit following the type-specific visit (after `endVisit`).
`void` `preVisit​(TextEdit edit)` Visits the given text edit prior to the type-specific visit.
`boolean` `visit​(CopyingRangeMarker edit)` Visits a `CopyingRangeMarker` instance.
`boolean` `visit​(CopySourceEdit edit)` Visits a `CopySourceEdit` instance.
`boolean` `visit​(CopyTargetEdit edit)` Visits a `CopyTargetEdit` instance.
`boolean` `visit​(DeleteEdit edit)` Visits a `DeleteEdit` instance.
`boolean` `visit​(InsertEdit edit)` Visits a `InsertEdit` instance.
`boolean` `visit​(MoveSourceEdit edit)` Visits a `MoveSourceEdit` instance.
`boolean` `visit​(MoveTargetEdit edit)` Visits a `MoveTargetEdit` instance.
`boolean` `visit​(MultiTextEdit edit)` Visits a `MultiTextEdit` instance.
`boolean` `visit​(RangeMarker edit)` Visits a `RangeMarker` instance.
`boolean` `visit​(ReplaceEdit edit)` Visits a `ReplaceEdit` instance.
`boolean` `visit​(UndoEdit edit)` Visits a `UndoEdit` instance.
`boolean` `visitNode​(TextEdit edit)` Visits the given text edit.

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

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### TextEditVisitor

    public TextEditVisitor()

### Method Detail

#### preVisit

    public void preVisit​(TextEdit edit)

Visits the given text edit prior to the type-specific visit. (before `visit`).

The default implementation does nothing. Subclasses may reimplement.

Parameters:
  `edit` - the node to visit

#### postVisit

    public void postVisit​(TextEdit edit)

Visits the given text edit following the type-specific visit (after `endVisit`).

The default implementation does nothing. Subclasses may reimplement.

Parameters:
  `edit` - the node to visit

#### visitNode

    public boolean visitNode​(TextEdit edit)

Visits the given text edit. This method is called by default from type-specific visits. It is not called by an edit's accept method. The default implementation returns `true`.

Parameters:
  `edit` - the node to visit
Returns:
  If `true` is returned, the given node's child nodes will be visited next; however, if `false` is returned, the given node's child nodes will not be visited.

#### visit

    public boolean visit​(CopySourceEdit edit)

Visits a `CopySourceEdit` instance.

Parameters:
  `edit` - the node to visit
Returns:
  If `true` is returned, the given node's child nodes will be visited next; however, if `false` is returned, the given node's child nodes will not be visited.

#### visit

    public boolean visit​(CopyTargetEdit edit)

Visits a `CopyTargetEdit` instance.

Parameters:
  `edit` - the node to visit
Returns:
  If `true` is returned, the given node's child nodes will be visited next; however, if `false` is returned, the given node's child nodes will not be visited.

#### visit

    public boolean visit​(MoveSourceEdit edit)

Visits a `MoveSourceEdit` instance.

Parameters:
  `edit` - the node to visit
Returns:
  If `true` is returned, the given node's child nodes will be visited next; however, if `false` is returned, the given node's child nodes will not be visited.

#### visit

    public boolean visit​(MoveTargetEdit edit)

Visits a `MoveTargetEdit` instance.

Parameters:
  `edit` - the node to visit
Returns:
  If `true` is returned, the given node's child nodes will be visited next; however, if `false` is returned, the given node's child nodes will not be visited.

#### visit

    public boolean visit​(RangeMarker edit)

Visits a `RangeMarker` instance.

Parameters:
  `edit` - the node to visit
Returns:
  If `true` is returned, the given node's child nodes will be visited next; however, if `false` is returned, the given node's child nodes will not be visited.

#### visit

    public boolean visit​(CopyingRangeMarker edit)

Visits a `CopyingRangeMarker` instance.

Parameters:
  `edit` - the node to visit
Returns:
  If `true` is returned, the given node's child nodes will be visited next; however, if `false` is returned, the given node's child nodes will not be visited.

#### visit

    public boolean visit​(DeleteEdit edit)

Visits a `DeleteEdit` instance.

Parameters:
  `edit` - the node to visit
Returns:
  If `true` is returned, the given node's child nodes will be visited next; however, if `false` is returned, the given node's child nodes will not be visited.

#### visit

    public boolean visit​(InsertEdit edit)

Visits a `InsertEdit` instance.

Parameters:
  `edit` - the node to visit
Returns:
  If `true` is returned, the given node's child nodes will be visited next; however, if `false` is returned, the given node's child nodes will not be visited.

#### visit

    public boolean visit​(ReplaceEdit edit)

Visits a `ReplaceEdit` instance.

Parameters:
  `edit` - the node to visit
Returns:
  If `true` is returned, the given node's child nodes will be visited next; however, if `false` is returned, the given node's child nodes will not be visited.

#### visit

    public boolean visit​(UndoEdit edit)

Visits a `UndoEdit` instance.

Parameters:
  `edit` - the node to visit
Returns:
  If `true` is returned, the given node's child nodes will be visited next; however, if `false` is returned, the given node's child nodes will not be visited.

#### visit

    public boolean visit​(MultiTextEdit edit)

Visits a `MultiTextEdit` instance.

Parameters:
  `edit` - the node to visit
Returns:
  If `true` is returned, the given node's child nodes will be visited next; however, if `false` is returned, the given node's child nodes will not be visited.