Class ListDiff<E>
- java.lang.Object
-
- org.eclipse.core.databinding.observable.list.ListDiff<E>
-
-
Constructor Summary
Constructors Constructor Description ListDiff()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
accept(ListDiffVisitor<? super E> visitor)
Traverses thegetDifferences()
array, calling the appropriate method invisitor
for each difference.void
applyTo(List<? super E> list)
Applies the changes in this diff to the given listabstract ListDiffEntry<E>[]
getDifferences()
Returns a ListDiffEntry array representing the differences in the list, in the order they are to be processed.boolean
isEmpty()
Returns true if the diff contains no added, removed, moved or replaced elements.List<E>
simulateOn(List<E> list)
Returns a list showing whatlist
would look like if this diff were applied to it.String
toString()
-
-
-
Method Detail
-
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. UsegetDifferencesAsList
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 thegetDifferences()
array, calling the appropriate method invisitor
for each difference.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.ListDiffVisitor.handleMove(int, int, Object)
is called whenever an add entry is adjacent to a remove entry, and both entries have equivalent elements.ListDiffVisitor.handleRemove(int, Object)
is called whenever a remove entry does not match conditions 1 or 2.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:
ListDiffVisitor
-
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 whatlist
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 theapplyTo(List)
method. - Since:
- 1.3
- See Also:
applyTo(List)
-
-