ptolemy.actor.lib.logic
Class LogicFunction
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
- All Implemented Interfaces:
- java.io.Serializable, java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable
- Direct Known Subclasses:
- NonStrictLogicFunction
public class LogicFunction
- extends Transformer
Produce an output token on each firing with a value that is
equal to the specified logic operator of the input(s).
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 does not require that each input
channel have a token upon firing. As long as one channel contains a
token, output will be produced. If no input tokens are available at
all, then no output is produced. At most one token is consumed
on each input channel.
- Since:
- Ptolemy II 1.0
- Version:
- $Id: LogicFunction.java 57040 2010-01-27 20:52:32Z cxh $
- Author:
- Paul Whitaker
- See Also:
- Serialized Form
- Accepted Rating:
- Proposed Rating:
Field Summary |
protected static int |
_AND
Perform a logical AND. |
protected int |
_function
An indicator for the function to compute. |
protected boolean |
_negate
True if the intermediate results should be negated. |
protected static int |
_OR
Perform a logical OR. |
protected static int |
_XOR
Perform a logical XOR. |
StringAttribute |
function
The function to compute. |
Fields inherited from class ptolemy.kernel.util.NamedObj |
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Methods inherited from class ptolemy.actor.AtomicActor |
_actorFiring, _actorFiring, addActorFiringListener, addInitializable, clone, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, initialize, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, postfire, prefire, preinitialize, 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 |
function
public StringAttribute function
- The function to compute. This is a string-valued attribute
that defaults to "and".
_function
protected int _function
- An indicator for the function to compute.
Valid values are
_AND
, _OR
, and _XOR
.
_negate
protected boolean _negate
- True if the intermediate results should be negated.
_AND
protected static final int _AND
- Perform a logical AND.
- See Also:
- Constant Field Values
_OR
protected static final int _OR
- Perform a logical OR.
- See Also:
- Constant Field Values
_XOR
protected static final int _XOR
- Perform a logical XOR.
- See Also:
- Constant Field Values
LogicFunction
public LogicFunction(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.
attributeChanged
public void attributeChanged(Attribute attribute)
throws IllegalActionException
- Override the base class to determine which function is being
specified. Read the value of the function attribute and set
the cached value appropriately.
- Overrides:
attributeChanged
in class NamedObj
- Parameters:
attribute
- The attribute that changed.
- Throws:
IllegalActionException
- If the function is not recognized.
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 there is no
input on any channel, then produce no output.
- Specified by:
fire
in interface Executable
- Overrides:
fire
in class AtomicActor
- Throws:
IllegalActionException
- If there is no director.
_updateFunction
protected BooleanToken _updateFunction(BooleanToken in,
BooleanToken old)
throws IllegalActionException
- Calculate the function on the given arguments.
- Parameters:
in
- The new input value. Should never be null.old
- The old result value, or null if there is none.
- Returns:
- The result of applying the function.
- Throws:
IllegalActionException
- If thrown by BooleanToken operations.