# Class ListDiffVisitor<E>

java.lang.Object
org.eclipse.core.databinding.observable.list.ListDiffVisitor<E>

Type Parameters:
  `E` - the type of the elements in the list

public abstract class ListDiffVisitor<E> extends Object
A visitor for processing differences in a ListDiff.

Since:
  1.1
See Also:
  - `ListDiff.accept(ListDiffVisitor)`

## Constructor Summary

Constructors
Constructor
Description
`ListDiffVisitor()`

## Method Summary

Modifier and Type
Method
Description
`abstract void`
`handleAdd(int index, E element)`
Notifies the visitor that `element` was added to the list at position `index`.
`void`
`handleMove(int oldIndex, int newIndex, E element)`
Notifies the visitor that `element` was moved in the list from position `oldIndex` to position `newIndex`.
`abstract void`
`handleRemove(int index, E element)`
Notifies the visitor that `element` was removed from the list at position `index`.
`void`
`handleReplace(int index, E oldElement, E newElement)`
Notifies the visitor that `oldElement`, located at position `index` in the list, was replaced by `newElement`.

### Methods inherited from class Object

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

## Constructor Details

### ListDiffVisitor

public ListDiffVisitor()

## Method Details

### handleAdd

public abstract void handleAdd(int index, E element)
Notifies the visitor that `element` was added to the list at position `index`.

Parameters:
  `index` - the index where the element was added
  `element` - the element that was added

### handleRemove

public abstract void handleRemove(int index, E element)
Notifies the visitor that `element` was removed from the list at position `index`.

Parameters:
  `index` - the index where the element was removed
  `element` - the element that was removed

### handleMove

public void handleMove(int oldIndex, int newIndex, E element)
Notifies the visitor that `element` was moved in the list from position `oldIndex` to position `newIndex`.

The default implementation of this method calls `handleRemove(int, Object)` with the old position, then `handleAdd(int, Object)` with the new position. Clients which are interested in recognizing "moves" in a list (i.e. calls to `IObservableList.move(int, int)`) should override this method.

Parameters:
  `oldIndex` - the index that the element was moved from.
  `newIndex` - the index that the element was moved to.
  `element` - the element that was moved
See Also:
  - `IObservableList.move(int, int)`

### handleReplace

public void handleReplace(int index, E oldElement, E newElement)
Notifies the visitor that `oldElement`, located at position `index` in the list, was replaced by `newElement`.

The default implementation of this method calls `handleRemove(int, Object)` with the old element, then `handleAdd(int, Object)` with the new element. Clients which are interested in recognizing "replaces" in a list (i.e. calls to `List.set(int, Object)`) should override this method.

Parameters:
  `index` - the index where the element was replaced.
  `oldElement` - the element being replaced.
  `newElement` - the element that replaced oldElement.
See Also:
  - `List.set(int, Object)`