|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
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.hoc.ApplyFilterOverArray
public class ApplyFilterOverArray
This is an atomic actor that filters an array received at its inputArray input port via applying a model specified by a file or URL. The specified model is evaluated on each input array element and should return a boolean value, and the output is an array that only contains elements satisfying the specified model (the evaluated result is true). An element of the array received at inputArray is provided to the model by setting its inputArrayElement parameter (which it must have defined). The result of executing the model is obtained by reading its evaluatedValue parameter (which it must have defined).
Instead of outputing all the satisfied elements in the input array, the parameter maxOutputLength can be used to specify how many elements this actor should only output. If the specified length is larger than the number of satisfied elements, it will ignore the specified length and only output all the satisfied elements.
FIXME: what should be the correct behavior if there are not enough elements to output?
FIXME: make a convention, say when the maxOutputLength is -1, for output all the satisfied elements? FIXME: should add a ModelToken and an input port for receiving the filter model. Create a composite actor for providing a ModelToken from its inside model.
ModelReference
,
Serialized Form
Red (ellen_zh) |
Yellow (ellen_zh) |
Nested Class Summary |
---|
Nested classes/interfaces inherited from class ptolemy.kernel.Entity |
---|
Entity.ContainedObjectsIterator |
Field Summary | |
---|---|
private Manager |
_manager
The manager currently managing execution. |
protected NamedObj |
_model
The model. |
private int |
_outputLength
the output array length if there are enough elements satisfying the filter model. |
private java.lang.Throwable |
_throwable
|
TypedIOPort |
inputArray
The input port for an input array. |
Parameter |
maxOutputLength
The max amount of elements in the output array. |
FileParameter |
modelFileOrURL
The file name or URL of the filter model. |
TypedIOPort |
outputArray
The output port for output the filtered array. |
Fields inherited from class ptolemy.actor.AtomicActor |
---|
_actorFiringListeners, _initializables, _notifyingActorFiring, _stopRequested |
Fields inherited from class ptolemy.kernel.util.NamedObj |
---|
_changeListeners, _changeLock, _changeRequests, _debugging, _debugListeners, _elementName, _isPersistent, _verbose, _workspace, ATTRIBUTES, CLASSNAME, COMPLETE, CONTENTS, DEEP, FULLNAME, LINKS |
Fields inherited from interface ptolemy.actor.Executable |
---|
COMPLETED, NOT_READY, STOP_ITERATING |
Constructor Summary | |
---|---|
ApplyFilterOverArray(CompositeEntity container,
java.lang.String name)
Construct a ApplyFilterOverArray with a name and a container. |
Method Summary | |
---|---|
private boolean |
_getResult()
Retrieve the value of the parameter "evaluatedValue" of the model. |
private void |
_updateParameter(Token t)
Set the parameter "inputArrayElement" of the model to an element of the input array. |
void |
attributeChanged(Attribute attribute)
Override the base class to open the model specified if the attribute is modelFileOrURL, or for other parameters, to cache their values. |
java.lang.Object |
clone(Workspace workspace)
Clone the actor into the specified workspace. |
void |
executionError(Manager manager,
java.lang.Throwable throwable)
React to the fact that execution has failed by unregistering as an execution listener and by allowing subsequent executions. |
void |
executionFinished(Manager manager)
React to the fact that execution is finished by unregistering as an execution listener and by allowing subsequent executions. |
void |
fire()
Execute the filter model on each input array element until it gets as many elements as specified by the maxOutputLength parameter. |
void |
managerStateChanged(Manager manager)
Report in debugging statements that the manager state has changed. |
boolean |
postfire()
Remove this class from the manager's list of execution listeners. |
void |
stop()
Override the base class to call stop() on the referenced model. |
void |
stopFire()
Override the base class to call stopFire() on the referenced model. |
void |
terminate()
Override the base class to call terminate() on the referenced model. |
void |
wrapup()
Report an exception if it occurred in a background run. |
Methods inherited from class ptolemy.actor.TypedAtomicActor |
---|
_addPort, _fireAt, _fireAt, attributeTypeChanged, clone, newPort, typeConstraintList, typeConstraints |
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.InstantiableNamedObj |
---|
_setParent, exportMoML, getChildren, getElementName, getParent, getPrototypeList, isClassDefinition, isWithinClassDefinition |
Methods inherited from class java.lang.Object |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface ptolemy.actor.Actor |
---|
createReceivers, getCausalityInterface, getDirector, getExecutiveDirector, getManager, inputPortList, newReceiver, outputPortList |
Methods inherited from interface ptolemy.actor.Executable |
---|
isFireFunctional, isStrict, iterate, prefire |
Methods inherited from interface ptolemy.actor.Initializable |
---|
addInitializable, initialize, preinitialize, removeInitializable |
Methods inherited from interface ptolemy.kernel.util.Nameable |
---|
description, getContainer, getDisplayName, getFullName, getName, getName, setName |
Methods inherited from interface ptolemy.kernel.util.Derivable |
---|
getDerivedLevel, getDerivedList, propagateValue |
Field Detail |
---|
public TypedIOPort inputArray
public TypedIOPort outputArray
public Parameter maxOutputLength
public FileParameter modelFileOrURL
protected NamedObj _model
private Manager _manager
private int _outputLength
private transient java.lang.Throwable _throwable
Constructor Detail |
---|
public ApplyFilterOverArray(CompositeEntity container, java.lang.String name) throws IllegalActionException, NameDuplicationException
container
- The container.name
- The name of this actor.
IllegalActionException
- If the container is incompatible
with this actor.
NameDuplicationException
- If the name coincides with
an actor already in the container.Method Detail |
---|
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 (not thrown in this base class).public java.lang.Object clone(Workspace workspace) throws java.lang.CloneNotSupportedException
clone
in class AtomicActor
workspace
- The workspace for the new object.
java.lang.CloneNotSupportedException
- If a derived class contains
an attribute that cannot be cloned.NamedObj.exportMoML(Writer, int, String)
,
NamedObj.setDeferringChangeRequests(boolean)
public void executionError(Manager manager, java.lang.Throwable throwable)
executionError
in interface ExecutionListener
manager
- The manager controlling the execution.throwable
- The throwable to report.public void executionFinished(Manager manager)
executionFinished
in interface ExecutionListener
manager
- The manager controlling the execution.public void fire() throws IllegalActionException
fire
in interface Executable
fire
in class AtomicActor
IllegalActionException
- If there is no director, or if
the director's action methods throw it.public void managerStateChanged(Manager manager)
managerStateChanged
in interface ExecutionListener
manager
- The manager controlling the execution.Manager.getState()
public boolean postfire() throws IllegalActionException
postfire
in interface Executable
postfire
in class AtomicActor
IllegalActionException
- If removing the execution listener
throws it, or if thrown by the superclass.
is not valid.public void stop()
stop
in interface Executable
stop
in class AtomicActor
public void stopFire()
stopFire
in interface Executable
stopFire
in class AtomicActor
public void terminate()
terminate
in interface Executable
terminate
in class AtomicActor
public void wrapup() throws IllegalActionException
wrapup
in interface Initializable
wrapup
in class AtomicActor
IllegalActionException
- If there is no director, or if
a background run threw an exception.private void _updateParameter(Token t) throws IllegalActionException
t
- The element value.
IllegalActionException
- If the model does not have a
settable attribute named "inputArrayElement".private boolean _getResult() throws IllegalActionException
IllegalActionException
- If the model does not have a
settable attribute named "evaluatedValue".
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |