Eclipse Platform
Release 3.6

org.eclipse.core.databinding.observable.list
Class ListDiff

java.lang.Object
  extended by org.eclipse.core.databinding.observable.list.ListDiff
All Implemented Interfaces:
IDiff

public abstract class ListDiff
extends Object
implements IDiff

Object describing a diff between two lists.

Since:
1.0

Constructor Summary
ListDiff()
           
 
Method Summary
 void accept(ListDiffVisitor visitor)
          Traverses the getDifferences() array, calling the appropriate method in visitor for each difference.
 void applyTo(List list)
          Applies the changes in this diff to the given list
abstract  ListDiffEntry[] 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 simulateOn(List list)
          Returns a list showing what list would look like if this diff were applied to it.
 String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ListDiff

public ListDiff()
Method Detail

getDifferences

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

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

accept

public void accept(ListDiffVisitor 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:
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 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 simulateOn(List 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:
applyTo(List)

toString

public String toString()
Overrides:
toString in class Object
See Also:
Object.toString()

Eclipse Platform
Release 3.6

Guidelines for using Eclipse APIs.

Copyright (c) Eclipse contributors and others 2000, 2010. All rights reserved.