visad
Class CellImpl

java.lang.Object
  extended byvisad.ActionImpl
      extended byvisad.CellImpl
All Implemented Interfaces:
Action, Cell, EventListener, Runnable, ThingChangedListener
Direct Known Subclasses:
CollectiveBarbManipulation.BarbMonitor, CollectiveBarbManipulation.BarbMonitor2, CollectiveBarbManipulation.Releaser, CollectiveBarbManipulation.Stepper, CollectiveBarbManipulation.WindMonitor, FlexibleTrackManipulation.DataMonitor, FlexibleTrackManipulation.TrackMonitor, FrontDrawer.ReleaseCell, FrontDrawer.ZoomCell, Galaxy.ContourCell, GoesCollaboration.diff_colCell, GoesCollaboration.real_tbcCell, GoesCollaboration.wfna_oldCell, GoesCollaboration.wfnaCell, GoesCollaboration.wfnbCell, PickCell, ShallowFluid.initializeCell, ShallowFluid.shalstepCell, SSCellImpl, SwellGetterJ3D, TrackManipulation.TrackGetter, Vis5DForm.ContourCell, WindGetterJ2D, WindGetterJ3D

public abstract class CellImpl
extends ActionImpl
implements Cell

CellImpl is the abstract superclass for computations. It has a set of input DataReferences and an output DataReference, which updates whenever an input changes. Cell is runnable.

CellImpl is not Serializable and should not be copied between JVMs.


Field Summary
(package private)  DataReference[] otherReferences
          references to Data use in computation, other than those in ReferenceActionLink-s
 
Constructor Summary
CellImpl()
          construct a CellImpl with null name
CellImpl(String name)
          construct a CellImpl
 
Method Summary
(package private)  void adaptedSetOtherReference(int index, RemoteDataReference ref)
          called by RemoteCellImpl.setOtherReference() set a non-triggering link to a RemoteDataReference; this is used to give the Cell access to Data without triggering the Cell's doAction whenever the Data changes; these 'other' DataReferences are identified by their integer index
abstract  void doAction()
          subclasses of CellImpl implement doAction to execute triggered computation
 DataReference getOtherReference(int index)
           
 void setOtherReference(int index, DataReference ref)
          set a non-triggering link to a DataReference; this is used to give the Cell access to Data without triggering the Cell's doAction whenever the Data changes; these 'other' DataReferences are identified by their integer index
 
Methods inherited from class visad.ActionImpl
adaptedAddReference, adaptedRemoveReference, addLink, addReference, checkTicks, disableAction, enableAction, findLink, findReference, getCurrentActionThread, getLinkId, getLinks, getName, handleRunDisconnectException, notifyAction, removeAllReferences, removeLinks, removeReference, run, setEnabled, setName, setThreadPoolMaximum, stop, stopThreadPool, thingChanged, waitForTasks
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface visad.Action
addReference, getName, removeAllReferences, removeReference
 
Methods inherited from interface visad.ThingChangedListener
thingChanged
 

Field Detail

otherReferences

DataReference[] otherReferences
references to Data use in computation, other than those in ReferenceActionLink-s

Constructor Detail

CellImpl

public CellImpl()
construct a CellImpl with null name


CellImpl

public CellImpl(String name)
construct a CellImpl

Parameters:
name - - String useful for debugging
Method Detail

doAction

public abstract void doAction()
                       throws VisADException,
                              RemoteException
subclasses of CellImpl implement doAction to execute triggered computation

Specified by:
doAction in class ActionImpl
Throws:
VisADException - - a VisAD error occurred
RemoteException - - an RMI error occurred

setOtherReference

public void setOtherReference(int index,
                              DataReference ref)
                       throws VisADException,
                              RemoteException
set a non-triggering link to a DataReference; this is used to give the Cell access to Data without triggering the Cell's doAction whenever the Data changes; these 'other' DataReferences are identified by their integer index

Specified by:
setOtherReference in interface Cell
Parameters:
index - - identifier of DataReference
ref - - DataReference to be linked
Throws:
VisADException - - a VisAD error occurred
RemoteException - - an RMI error occurred

adaptedSetOtherReference

void adaptedSetOtherReference(int index,
                              RemoteDataReference ref)
called by RemoteCellImpl.setOtherReference() set a non-triggering link to a RemoteDataReference; this is used to give the Cell access to Data without triggering the Cell's doAction whenever the Data changes; these 'other' DataReferences are identified by their integer index

Parameters:
index - - identifier of DataReference
ref - - DataReference to be linked
Throws:
VisADException - - a VisAD error occurred
RemoteException - - an RMI error occurred

getOtherReference

public DataReference getOtherReference(int index)
                                throws VisADException,
                                       RemoteException
Specified by:
getOtherReference in interface Cell
Parameters:
index - - identifier of DataReference to return
Returns:
the non-triggering link to a DataReference identified by index
Throws:
VisADException - - a VisAD error occurred
RemoteException - - an RMI error occurred