java.lang.Object
org.eclipse.core.databinding.observable.list.ListDiff<E>
Type Parameters:
E - the type of the elements in this diff
All Implemented Interfaces:
IDiff

public abstract class ListDiff<E> extends Object implements IDiff
Object describing a diff between two lists.
Since:
1.0
  • Constructor Details

    • ListDiff

      public ListDiff()
  • Method Details

    • getDifferences

      public abstract ListDiffEntry<E>[] getDifferences()
      Returns a ListDiffEntry array representing the differences in the list, in the order they are to be processed.

      This method returns identical results to getDifferencesAsList except that the results are returned as a array and so the ListDiffEntry objects are not properly typed. This form is here for compatibility. Use getDifferencesAsList to get typed results.

      Returns:
      a ListDiffEntry array representing the differences in the list, in the order they are to be processed.
    • accept

      public void accept(ListDiffVisitor<? super E> visitor)
      Traverses the getDifferences() array, calling the appropriate method in visitor for each difference.
      1. ListDiffVisitor.handleReplace(int, Object, Object) is called whenever an add entry is adjacent to a remove entry, and both entries operate on the same location in the list.
      2. ListDiffVisitor.handleMove(int, int, Object) is called whenever an add entry is adjacent to a remove entry, and both entries have equivalent elements.
      3. ListDiffVisitor.handleRemove(int, Object) is called whenever a remove entry does not match conditions 1 or 2.
      4. ListDiffVisitor.handleAdd(int, Object) is called whenever an add entry does not match conditions in 1 or 2.
      Parameters:
      visitor - the visitor to receive callbacks.
      Since:
      1.1
      See Also:
    • isEmpty

      public boolean isEmpty()
      Returns true if the diff contains no added, removed, moved or replaced elements.
      Returns:
      true if the diff contains no added, removed, moved or replaced elements.
      Since:
      1.2
    • applyTo

      public void applyTo(List<? super E> list)
      Applies the changes in this diff to the given list
      Parameters:
      list - the list to which the diff will be applied
      Since:
      1.2
    • simulateOn

      public List<E> simulateOn(List<E> list)
      Returns a list showing what list would look like if this diff were applied to it.

      Note: the returned list is only valid until structural changes are made to the passed-in list.

      Parameters:
      list - the list over which the diff will be simulated
      Returns:
      an unmodifiable list showing what list would look like if it were passed to the applyTo(List) method.
      Since:
      1.3
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Object