Eclipse Platform
Release 3.4

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

java.lang.Object
  extended byjava.util.AbstractCollection
      extended byjava.util.AbstractList
          extended byorg.eclipse.core.databinding.observable.list.AbstractObservableList
              extended byorg.eclipse.core.databinding.observable.list.ComputedList
All Implemented Interfaces:
Collection, IObservable, IObservableCollection, IObservableList, List

public abstract class ComputedList
extends AbstractObservableList

A Lazily calculated list that automatically computes and registers listeners on its dependencies as long as all of its dependencies are IObservable objects

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.1

Field Summary
 
Fields inherited from class java.util.AbstractList
modCount
 
Constructor Summary
ComputedList()
          Creates a computed list in the default realm and with an unknown (null) element type.
ComputedList(Object elementType)
          Creates a computed list in the default realm and with the given element type.
ComputedList(Realm realm)
          Creates a computed list in given realm and with an unknown (null) element type.
ComputedList(Realm realm, Object elementType)
          Creates a computed list in the given realm and with the given element type.
 
Method Summary
 void addChangeListener(IChangeListener listener)
          Adds the given change listener to the list of change listeners.
 void addListChangeListener(IListChangeListener listener)
          Adds the given list change listener to the list of list change listeners.
protected abstract  List calculate()
          Subclasses must override this method to calculate the list contents.
 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.
protected  int doGetSize()
           
 Object get(int index)
           
 Object getElementType()
           
 boolean isStale()
          Returns whether the state of this observable is stale and is expected to change soon.
 
Methods inherited from class org.eclipse.core.databinding.observable.list.AbstractObservableList
add, addAll, addAll, addStaleListener, checkRealm, contains, containsAll, equals, fireChange, fireListChange, fireStale, firstListenerAdded, getRealm, hashCode, indexOf, isEmpty, iterator, lastIndexOf, lastListenerRemoved, move, remove, removeAll, removeChangeListener, removeListChangeListener, removeStaleListener, retainAll, size, toArray, toArray
 
Methods inherited from class java.util.AbstractList
add, clear, listIterator, listIterator, remove, removeRange, set, subList
 
Methods inherited from class java.util.AbstractCollection
toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.eclipse.core.databinding.observable.list.IObservableList
listIterator, listIterator, remove, set, subList
 
Methods inherited from interface java.util.List
add, clear
 

Constructor Detail

ComputedList

public ComputedList()
Creates a computed list in the default realm and with an unknown (null) element type.


ComputedList

public ComputedList(Object elementType)
Creates a computed list in the default realm and with the given element type.

Parameters:
elementType - the element type, may be null to indicate unknown element type

ComputedList

public ComputedList(Realm realm)
Creates a computed list in given realm and with an unknown (null) element type.

Parameters:
realm - the realm

ComputedList

public ComputedList(Realm realm,
                    Object elementType)
Creates a computed list in the given realm and with the given element type.

Parameters:
realm - the realm
elementType - the element type, may be null to indicate unknown element type
Method Detail

doGetSize

protected int doGetSize()
Specified by:
doGetSize in class AbstractObservableList
Returns:
the size

get

public Object get(int index)

calculate

protected abstract List calculate()
Subclasses must override this method to calculate the list contents.

Returns:
the object's list.

isStale

public boolean isStale()
Description copied from interface: IObservable
Returns whether the state of this observable is stale and is expected to change soon. A non-stale observable that becomes stale will notify its stale listeners. A stale object that becomes non-stale does so by changing its state and notifying its change listeners, it does not notify its stale listeners about becoming non-stale. Clients that do not expect asynchronous changes may ignore staleness of observable objects.

Specified by:
isStale in interface IObservable
Overrides:
isStale in class AbstractObservableList

getElementType

public Object getElementType()
Returns:
the type of the elements or null if untyped

addChangeListener

public void addChangeListener(IChangeListener listener)
Description copied from interface: IObservable
Adds the given change listener to the list of change listeners. Change listeners are notified about changes of the state of this observable in a generic way, without specifying the change that happened. To get the changed state, a change listener needs to query for the current state of this observable.

Specified by:
addChangeListener in interface IObservable
Overrides:
addChangeListener in class AbstractObservableList

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
Overrides:
addListChangeListener in class AbstractObservableList

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 AbstractObservableList

Eclipse Platform
Release 3.4

Guidelines for using Eclipse APIs.

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