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
Constructor
Description
`TextEditVisitor()`

## Method Summary

Modifier and Type
Method
Description
`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 Details

### TextEditVisitor

public TextEditVisitor()

## Method Details

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