ptolemy.domains.sr.lib
Class NonStrictLogicFunction
java.lang.Object
ptolemy.kernel.util.NamedObj
ptolemy.kernel.InstantiableNamedObj
ptolemy.kernel.Entity
ptolemy.kernel.ComponentEntity
ptolemy.actor.AtomicActor
ptolemy.actor.TypedAtomicActor
ptolemy.actor.lib.Transformer
ptolemy.actor.lib.logic.LogicFunction
ptolemy.domains.sr.lib.NonStrictLogicFunction
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
public class NonStrictLogicFunction
- extends LogicFunction
A nonstrict actor that performs a specified logic operation on the input.
On each firing, produce an output token with a value that is
equal to the specified logic operator of the input(s) if that output
can be determined.
The functions are:
- and: The logical and operator.
This is the default function for this actor.
- or: The logical or operator.
- xor: The logical xor operator.
- nand: The logical nand operator.
Equivalent to the negation of and.
- nor: The logical nor operator.
Equivalent to the negation of or.
- xnor: The logical xnor operator.
Equivalent to the negation of xor.
NOTE: All operators have
a single input port, which is a multiport, and a single output port, which
is not a multiport. All ports have type boolean.
This actor is nonstrict. That is, it does not require that each input
channel have a token upon firing. If the output can be determined from the
known inputs, the output will be produced. If the output can not be
determined in the given firing, no output will be produced. If all of the
inputs are known and absent, the output will be made known and absent.
At most one token is consumed on each input channel.
- Since:
- Ptolemy II 2.0
- Version:
- $Id: NonStrictLogicFunction.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Paul Whitaker
- See Also:
- Serialized Form
- Accepted Rating:
- Proposed Rating:
Fields inherited from class ptolemy.kernel.util.NamedObj |
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Method Summary |
private BooleanToken |
_nullifyIncompleteResults(BooleanToken inValue)
Nullify results that cannot be asserted due to unknown inputs. |
void |
fire()
Consume at most one input token from each input channel,
and produce a token on the output port if it can be determined. |
boolean |
isStrict()
Return false. |
void |
preinitialize()
Override the base class to declare that the output
does not depend on the input in a firing. |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, clone, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, initialize, inputPortList, isFireFunctional, iterate, newReceiver, outputPortList, postfire, prefire, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate, wrapup |
Methods inherited from class ptolemy.kernel.ComponentEntity |
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName |
Methods inherited from class ptolemy.kernel.Entity |
_description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName |
Methods inherited from class ptolemy.kernel.util.NamedObj |
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _debug, _debug, _debug, _debug, _debug, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _propagateValue, _recordDecoratedAttributes, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, attributeList, attributeList, deepContains, depthInHierarchy, description, description, event, executeChangeRequests, exportMoML, exportMoML, exportMoML, exportMoML, exportMoMLPlain, getAttribute, getAttributes, getChangeListeners, getClassName, getDecoratorAttribute, getDecoratorAttributes, getDerivedLevel, getDerivedList, getDisplayName, getFullName, getModelErrorHandler, getName, getName, getSource, handleModelError, isDeferringChangeRequests, isOverridden, isPersistent, lazyContainedObjectsIterator, message, propagateValue, propagateValues, removeChangeListener, removeDebugListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace |
Methods inherited from class java.lang.Object |
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
NonStrictLogicFunction
public NonStrictLogicFunction(CompositeEntity container,
java.lang.String name)
throws NameDuplicationException,
IllegalActionException
- Construct an actor with the given container and name. Set the
logic function to the default ("and"). Set the types of the ports
to boolean.
- Parameters:
container
- The container.name
- The name of this actor.
- Throws:
IllegalActionException
- If the actor cannot be contained
by the proposed container.
NameDuplicationException
- If the container already has an
actor with this name.
fire
public void fire()
throws IllegalActionException
- Consume at most one input token from each input channel,
and produce a token on the output port if it can be determined.
If there is no input on any channel, then produce no output.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class LogicFunction
- Throws:
IllegalActionException
- If there is no director.
isStrict
public boolean isStrict()
- Return false. This actor can produce some output event the input
receiver has status unknown.
- Specified by:
isStrict
in interface Executable
- Overrides:
isStrict
in class AtomicActor
- Returns:
- False.
preinitialize
public void preinitialize()
throws IllegalActionException
- Override the base class to declare that the output
does not depend on the input in a firing.
- Specified by:
preinitialize
in interface Initializable
- Overrides:
preinitialize
in class AtomicActor
- Throws:
IllegalActionException
- If the superclass throws it.
_nullifyIncompleteResults
private BooleanToken _nullifyIncompleteResults(BooleanToken inValue)
throws IllegalActionException
- Nullify results that cannot be asserted due to unknown inputs.
- Throws:
IllegalActionException