public class PublisherNonStrictTest extends Publisher
This actor combines the Publisher
actor
and the NonStrictTest
actor. Thus, it has quite
a bit of duplicated code from the NonStrictTest actor.
Note that in the superclass (Publisher), the input is a multiport,
whereas in this class it is a regular non-multiport. To use a multiport
input, use PublisherTest
Entity.ContainedObjectsIterator
Modifier and Type | Field and Description |
---|---|
protected boolean |
_firedOnce
Set to true if fire() is called once.
|
protected boolean |
_initialized
Set to true when initialized() is called.
|
protected int |
_iteration
Count of iterations.
|
protected int |
_numberOfInputTokensSeen
Number of input tokens seen by this actor in the fire method.
|
protected double |
_tolerance
A double that is read from the tolerance parameter
specifying how close the input has to be to the value
given by correctValues.
|
protected java.util.List |
_trainingTokens
List to store tokens for training mode.
|
Parameter |
correctValues
A matrix specifying what the input should be.
|
Parameter |
tolerance
A double specifying how close the input has to be to the value
given by correctValues.
|
SharedParameter |
trainingMode
If true, then do not check inputs, but rather collect them into
the correctValues array.
|
channel, global, input, output, propagateNameChanges
_typesValid
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _deferChangeRequests, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS
COMPLETED, NOT_READY, STOP_ITERATING
Constructor and Description |
---|
PublisherNonStrictTest(CompositeEntity container,
java.lang.String name)
Construct a publisher with the specified container and name.
|
Modifier and Type | Method and Description |
---|---|
void |
attributeChanged(Attribute attribute)
If the attribute is the channel, increment the workspace version
to force cached receiver lists to be updated, and invalidate
the schedule and resolved types of the director, if there is one.
|
void |
fire()
Read at most one input token from each
input channel and send it to the subscribers,
if any.
|
void |
initialize()
Override the base class to set the iteration counter to zero.
|
boolean |
postfire()
Read one token from each input channel and compare against
the value specified in correctValues.
|
void |
preinitialize()
Override the base class to ensure that links to subscribers
have been updated.
|
void |
wrapup()
If trainingMode is true, then take the collected
training tokens and store them as an array in correctValues.
|
clone, subscribers
_containedTypeConstraints, _customTypeConstraints, _defaultTypeConstraints, _fireAt, _fireAt, attributeTypeChanged, clone, isBackwardTypeInferenceEnabled, newPort, typeConstraintList, typeConstraints
_actorFiring, _actorFiring, _declareDelayDependency, addActorFiringListener, addInitializable, connectionsChanged, createReceivers, declareDelayDependency, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, isFireFunctional, isStrict, iterate, newReceiver, outputPortList, prefire, pruneDependencies, recordFiring, removeActorFiringListener, removeDependency, removeInitializable, setContainer, stop, stopFire, terminate
_adjustDeferrals, _checkContainer, _getContainedObject, _propagateExistence, getContainer, instantiate, isAtomic, isOpaque, moveDown, moveToFirst, moveToIndex, moveToLast, moveUp, propagateExistence, setName
_addPort, _description, _exportMoMLContents, _removePort, _validateSettables, connectedPortList, connectedPorts, containedObjectsIterator, getAttribute, getPort, getPorts, linkedRelationList, linkedRelations, portList, removeAllPorts, setClassDefinition, uniqueName
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition
_addAttribute, _adjustOverride, _attachText, _cloneFixAttributeFields, _containedDecorators, _copyChangeRequestList, _debug, _debug, _debug, _debug, _debug, _executeChangeRequests, _getIndentPrefix, _isMoMLSuppressed, _markContentsDerived, _notifyHierarchyListenersAfterChange, _notifyHierarchyListenersBeforeChange, _propagateValue, _removeAttribute, _splitName, _stripNumericSuffix, addChangeListener, addDebugListener, addHierarchyListener, attributeDeleted, attributeList, attributeList, decorators, 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, notifyOfNameChange, propagateValue, propagateValues, removeAttribute, removeChangeListener, removeDebugListener, removeHierarchyListener, requestChange, setClassName, setDeferringChangeRequests, setDerivedLevel, setDisplayName, setModelErrorHandler, setPersistent, setSource, sortContainedObjects, toplevel, toString, validateSettables, workspace
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList
isFireFunctional, isStrict, iterate, prefire, stop, stopFire, terminate
addInitializable, removeInitializable
description, getContainer, getDisplayName, getFullName, getName, getName, setName
getDerivedLevel, getDerivedList, propagateValue
public Parameter correctValues
public Parameter tolerance
public SharedParameter trainingMode
protected boolean _firedOnce
protected boolean _initialized
protected int _iteration
protected int _numberOfInputTokensSeen
protected double _tolerance
protected java.util.List _trainingTokens
public PublisherNonStrictTest(CompositeEntity container, java.lang.String name) throws IllegalActionException, NameDuplicationException
container
- The container actor.name
- The name of the actor.IllegalActionException
- If the actor is not of an acceptable
class for the container.NameDuplicationException
- If the name coincides with
an actor already in the container.public void attributeChanged(Attribute attribute) throws IllegalActionException
attributeChanged
in class NamedObj
attribute
- The attribute that changed.IllegalActionException
- If the change is not acceptable
to this container.public void fire() throws IllegalActionException
fire
in interface Executable
fire
in class Publisher
IllegalActionException
- If there is no director.public void initialize() throws IllegalActionException
initialize
in interface Initializable
initialize
in class AtomicActor<TypedIOPort>
IllegalActionException
- If the base class throws it or
if we are running under the test suite and the trainingMode
parameter is set to true.MessageHandler.isNonInteractive()
public void preinitialize() throws IllegalActionException
preinitialize
in interface Initializable
preinitialize
in class Publisher
IllegalActionException
- If there is already a publisher
publishing on the same channel.public boolean postfire() throws IllegalActionException
postfire
in interface Executable
postfire
in class AtomicActor<TypedIOPort>
IllegalActionException
- If an input does not match
the required value or if the width of the input is not 1.public void wrapup() throws IllegalActionException
wrapup
in interface Initializable
wrapup
in class AtomicActor<TypedIOPort>
IllegalActionException
- If initialized() was called
and fire() was not called or if the number of inputs tokens seen
is not greater than or equal to the number of elements in the
correctValues array.