Eclipse Platform
Release 3.6

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

java.lang.Object
  extended by org.eclipse.core.databinding.observable.AbstractObservable
      extended by org.eclipse.core.databinding.observable.list.ObservableList
All Implemented Interfaces:
Iterable, Collection, List, IObservable, IObservableCollection, IObservableList
Direct Known Subclasses:
WritableList

public abstract class ObservableList
extends AbstractObservable
implements IObservableList

Abstract implementation of IObservableList, based on an underlying regular list.

This class is thread safe. All state accessing methods must be invoked from the current realm. Methods for adding and removing listeners may be invoked from any thread.

Since:
1.0

Field Summary
protected  List wrappedList
           
 
Constructor Summary
protected ObservableList(List wrappedList, Object elementType)
           
protected ObservableList(Realm realm, List wrappedList, Object elementType)
           
 
Method Summary
 void add(int index, Object element)
           
 boolean add(Object o)
           
 boolean addAll(Collection c)
           
 boolean addAll(int index, Collection c)
           
 void addListChangeListener(IListChangeListener listener)
          Adds the given list change listener to the list of list change listeners.
protected  void addListener(Object listenerType, IObservablesListener listener)
           
 void clear()
           
protected  Object clone()
           
 boolean contains(Object o)
           
 boolean containsAll(Collection c)
           
 void dispose()
          Disposes of this observable object, removing all listeners registered with this object, and all listeners this object might have registered on other objects.
 boolean equals(Object o)
           
protected  void fireChange()
           
protected  void fireEvent(ObservableEvent event)
           
protected  void fireListChange(ListDiff diff)
           
protected  void firstListenerAdded()
           
 Object get(int index)
           
 Object getElementType()
          Returns the element type of this observable collection, or null if this observable collection is untyped.
 Realm getRealm()
           
protected  void getterCalled()
           
 int hashCode()
           
protected  boolean hasListeners()
           
 int indexOf(Object o)
           
 boolean isEmpty()
           
 boolean isStale()
          Returns the stale state.
 Iterator iterator()
           
 int lastIndexOf(Object o)
           
protected  void lastListenerRemoved()
           
 ListIterator listIterator()
           
 ListIterator listIterator(int index)
           
 Object move(int oldIndex, int newIndex)
          Moves the element located at oldIndex to newIndex.
 Object remove(int index)
           
 boolean remove(Object o)
           
 boolean removeAll(Collection c)
           
 void removeListChangeListener(IListChangeListener listener)
          Removes the given list change listener from the list of list change listeners.
protected  void removeListener(Object listenerType, IObservablesListener listener)
           
 boolean retainAll(Collection c)
           
 Object set(int index, Object element)
           
 void setStale(boolean stale)
          Sets the stale state.
 int size()
           
 List subList(int fromIndex, int toIndex)
           
 Object[] toArray()
           
 Object[] toArray(Object[] a)
           
 String toString()
           
protected  void updateWrappedList(List newList)
           
 
Methods inherited from class org.eclipse.core.databinding.observable.AbstractObservable
addChangeListener, addDisposeListener, addStaleListener, checkRealm, fireStale, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListener
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.eclipse.core.databinding.observable.IObservable
addChangeListener, addDisposeListener, addStaleListener, getRealm, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListener
 

Field Detail

wrappedList

protected List wrappedList
Constructor Detail

ObservableList

protected ObservableList(List wrappedList,
                         Object elementType)

ObservableList

protected ObservableList(Realm realm,
                         List wrappedList,
                         Object elementType)
Method Detail

addListChangeListener

public void addListChangeListener(IListChangeListener listener)
Description copied from interface: IObservableList
Adds the given list change listener to the list of list change listeners.

Specified by:
addListChangeListener in interface IObservableList

removeListChangeListener

public void removeListChangeListener(IListChangeListener listener)
Description copied from interface: IObservableList
Removes the given list change listener from the list of list change listeners. Has no effect if the given listener is not registered as a list change listener.

Specified by:
removeListChangeListener in interface IObservableList

fireListChange

protected void fireListChange(ListDiff diff)

contains

public boolean contains(Object o)
Specified by:
contains in interface Collection
Specified by:
contains in interface List
Specified by:
contains in interface IObservableList

containsAll

public boolean containsAll(Collection c)
Specified by:
containsAll in interface Collection
Specified by:
containsAll in interface List
Specified by:
containsAll in interface IObservableList

equals

public boolean equals(Object o)
Specified by:
equals in interface Collection
Specified by:
equals in interface List
Specified by:
equals in interface IObservableList
Overrides:
equals in class Object

hashCode

public int hashCode()
Specified by:
hashCode in interface Collection
Specified by:
hashCode in interface List
Specified by:
hashCode in interface IObservableList
Overrides:
hashCode in class Object

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Collection
Specified by:
isEmpty in interface List
Specified by:
isEmpty in interface IObservableList

iterator

public Iterator iterator()
Specified by:
iterator in interface Iterable
Specified by:
iterator in interface Collection
Specified by:
iterator in interface List
Specified by:
iterator in interface IObservableList

size

public int size()
Specified by:
size in interface Collection
Specified by:
size in interface List
Specified by:
size in interface IObservableList

toArray

public Object[] toArray()
Specified by:
toArray in interface Collection
Specified by:
toArray in interface List
Specified by:
toArray in interface IObservableList

toArray

public Object[] toArray(Object[] a)
Specified by:
toArray in interface Collection
Specified by:
toArray in interface List
Specified by:
toArray in interface IObservableList

toString

public String toString()
Overrides:
toString in class Object

get

public Object get(int index)
Specified by:
get in interface List
Specified by:
get in interface IObservableList
"TrackedGetter"

indexOf

public int indexOf(Object o)
Specified by:
indexOf in interface List
Specified by:
indexOf in interface IObservableList
"TrackedGetter"

lastIndexOf

public int lastIndexOf(Object o)
Specified by:
lastIndexOf in interface List
Specified by:
lastIndexOf in interface IObservableList
"TrackedGetter"

listIterator

public ListIterator listIterator()
Specified by:
listIterator in interface List
Specified by:
listIterator in interface IObservableList
"TrackedGetter"

listIterator

public ListIterator listIterator(int index)
Specified by:
listIterator in interface List
Specified by:
listIterator in interface IObservableList
"TrackedGetter"

subList

public List subList(int fromIndex,
                    int toIndex)
Specified by:
subList in interface List
Specified by:
subList in interface IObservableList

getterCalled

protected void getterCalled()

set

public Object set(int index,
                  Object element)
Specified by:
set in interface List
Specified by:
set in interface IObservableList

move

public Object move(int oldIndex,
                   int newIndex)
Moves the element located at oldIndex to newIndex. This method is equivalent to calling add(newIndex, remove(oldIndex)).

Subclasses should override this method to deliver list change notification for the remove and add operations in the same ListChangeEvent, as this allows ListDiff.accept(ListDiffVisitor) to recognize the operation as a move.

Specified by:
move in interface IObservableList
Parameters:
oldIndex - the element's position before the move. Must be within the range 0 <= oldIndex < size().
newIndex - the element's position after the move. Must be within the range 0 <= newIndex < size().
Returns:
the element that was moved.
Throws:
IndexOutOfBoundsException - if either argument is out of range ( 0 <= index < size()).
Since:
1.1
See Also:
ListDiffVisitor.handleMove(int, int, Object), ListDiff.accept(ListDiffVisitor)

remove

public Object remove(int index)
Specified by:
remove in interface List
Specified by:
remove in interface IObservableList

add

public boolean add(Object o)
Specified by:
add in interface Collection
Specified by:
add in interface List
Specified by:
add in interface IObservableList

add

public void add(int index,
                Object element)
Specified by:
add in interface List

addAll

public boolean addAll(Collection c)
Specified by:
addAll in interface Collection
Specified by:
addAll in interface List
Specified by:
addAll in interface IObservableList

addAll

public boolean addAll(int index,
                      Collection c)
Specified by:
addAll in interface List
Specified by:
addAll in interface IObservableList

remove

public boolean remove(Object o)
Specified by:
remove in interface Collection
Specified by:
remove in interface List
Specified by:
remove in interface IObservableList

removeAll

public boolean removeAll(Collection c)
Specified by:
removeAll in interface Collection
Specified by:
removeAll in interface List
Specified by:
removeAll in interface IObservableList

retainAll

public boolean retainAll(Collection c)
Specified by:
retainAll in interface Collection
Specified by:
retainAll in interface List
Specified by:
retainAll in interface IObservableList

clear

public void clear()
Specified by:
clear in interface Collection
Specified by:
clear in interface List

isStale

public boolean isStale()
Returns the stale state. Must be invoked from the current realm.

Specified by:
isStale in interface IObservable
Returns:
stale state

setStale

public void setStale(boolean stale)
Sets the stale state. Must be invoked from the current realm.

Parameters:
stale - The stale state to list. This will fire a stale event if the given boolean is true and this observable list was not already stale.

fireChange

protected void fireChange()
Overrides:
fireChange in class AbstractObservable

dispose

public void dispose()
Description copied from interface: IObservable
Disposes of this observable object, removing all listeners registered with this object, and all listeners this object might have registered on other objects.

Specified by:
dispose in interface IObservable
Overrides:
dispose in class AbstractObservable

getElementType

public Object getElementType()
Description copied from interface: IObservableCollection
Returns the element type of this observable collection, or null if this observable collection is untyped.

Specified by:
getElementType in interface IObservableCollection
Specified by:
getElementType in interface IObservableList
Returns:
the element type of this observable collection, or null if this observable collection is untyped.

updateWrappedList

protected void updateWrappedList(List newList)

addListener

protected void addListener(Object listenerType,
                           IObservablesListener listener)
Parameters:
listenerType -
listener -

removeListener

protected void removeListener(Object listenerType,
                              IObservablesListener listener)
Parameters:
listenerType -
listener -

hasListeners

protected boolean hasListeners()

fireEvent

protected void fireEvent(ObservableEvent event)

firstListenerAdded

protected void firstListenerAdded()

lastListenerRemoved

protected void lastListenerRemoved()

getRealm

public Realm getRealm()
Returns:
Returns the realm.

clone

protected Object clone()
                throws CloneNotSupportedException
Overrides:
clone in class Object
Throws:
CloneNotSupportedException

Eclipse Platform
Release 3.6

Guidelines for using Eclipse APIs.

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