Package org.eclipse.core.databinding.observable.list

## 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
`ListDiffVisitor()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`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 java.lang.Object

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

### Constructor Detail

#### ListDiffVisitor

    public ListDiffVisitor()

### Method Detail

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