Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 


Eclipse Platform
Release 3.5

org.eclipse.core.databinding.observable.set
Class ComputedSet

java.lang.Object
  extended by 

org.eclipse.core.databinding.observable.AbstractObservable
      extended by 

org.eclipse.core.databinding.observable.set.AbstractObservableSet
          extended by 
org.eclipse.core.databinding.observable.set.ComputedSet
All Implemented Interfaces:
Iterable, Collection, Set, IObservable, IObservableCollection, IObservableSet

public abstract class ComputedSet
extends AbstractObservableSet

A lazily calculated set that automatically computes and registers listeners on its dependencies as long as all of its dependencies are IObservable objects. Any change to one of the observable dependencies causes the set to be recomputed.

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.

Example: compute the set of all primes greater than 1 and less than the value of an IObservableValue < Integer >.

 final IObservableValue max = WritableValue.withValueType(Integer.TYPE);
 max.setValue(new Integer(0));
 IObservableSet primes = new ComputedSet() {
        protected Set calculate() {
                int maxVal = ((Integer) max.getValue()).intValue();
 
                Set result = new HashSet();
                outer: for (int i = 2; i < maxVal; i++) {
                        for (Iterator it = result.iterator(); it.hasNext();) {
                                Integer knownPrime = (Integer) it.next();
                                if (i % knownPrime.intValue() == 0)
                                        continue outer;
                        }
                        result.add(new Integer(i));
                }
                return result;
        }
 };
 
 System.out.println(primes); // => "[]"
 
 max.setValue(new Integer(20));
 System.out.println(primes); // => "[2, 3, 5, 7, 11, 13, 17, 19]"
 

Since:
1.2

Constructor Summary
ComputedSet ()
          Creates a computed set in the default realm and with an unknown (null) element type.
ComputedSet ( Object elementType)
          Creates a computed set in the default realm and with the given element type.
ComputedSet ( Realm realm)
          Creates a computed set in given realm and with an unknown (null) element type.
ComputedSet ( Realm realm, Object elementType)
          Creates a computed set 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.
protected  void addListener ( Object listenerType, IObservablesListener listener)
           
 void addSetChangeListener ( ISetChangeListener listener)
           
protected abstract   Set calculate ()
          Subclasses must override this method to calculate the set contents.
protected   Object clone ()
           
 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 ()
           
protected  void fireEvent ( ObservableEvent event)
           
  Object getElementType ()
          Returns the element type of this observable collection, or null if this observable collection is untyped.
  Realm getRealm ()
           
protected   Set getWrappedSet ()
           
protected  boolean hasListeners ()
           
 boolean isStale ()
          Returns whether the state of this observable is stale and is expected to change soon.
protected  void removeListener ( Object listenerType, IObservablesListener listener)
           
 
Methods inherited from class org.eclipse.core.databinding.observable.set. AbstractObservableSet
add, addAll, clear, contains, containsAll, equals, fireChange, fireSetChange, firstListenerAdded, getterCalled, hashCode, isEmpty, iterator, lastListenerRemoved, remove, removeAll, removeSetChangeListener, retainAll, setStale, size, toArray, toArray, toString
 
Methods inherited from class org.eclipse.core.databinding.observable. AbstractObservable
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
addDisposeListener, addStaleListener, getRealm, isDisposed, removeChangeListener, removeDisposeListener, removeStaleListener
 

Constructor Detail

ComputedSet

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


ComputedSet

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

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

ComputedSet

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

Parameters:
realm - the realm

ComputedSet

public ComputedSet(
Realm realm,
                   
Object elementType)
Creates a computed set 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()

getWrappedSet

protected 
Set getWrappedSet()
Specified by:
getWrappedSet in class AbstractObservableSet

calculate

protected abstract 
Set calculate()
Subclasses must override this method to calculate the set contents. Any dependencies used to calculate the set must be IObservable, and implementers must use one of the interface methods tagged TrackedGetter for ComputedSet to recognize it as a dependency.

Returns:
the object's set.

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 AbstractObservableSet
Returns:
Returns the stale state.

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.

Returns:
the element type 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 AbstractObservable

addSetChangeListener

public void addSetChangeListener(
ISetChangeListener listener)
Specified by:
addSetChangeListener in interface IObservableSet
Overrides:
addSetChangeListener in class AbstractObservableSet

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

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)

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

Guidelines for using Eclipse APIs.

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


 
 
  Published under the terms of the Eclipse Public License Version 1.0 ("EPL") Design by Interspire