## visad
Class CellImpl

    java.lang.Object
      visad.ActionImpl
          visad.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