Class ConfigurationSelect

  • All Implemented Interfaces:
    java.lang.Cloneable, Actor, Executable, FiringsRecordable, Initializable, TypedActor, Changeable, Debuggable, DebugListener, Derivable, Instantiable, ModelErrorHandler, MoMLExportable, Moveable, Nameable

    public class ConfigurationSelect
    extends TypedAtomicActor
    Conditionally merge the streams at two input ports depending on the value of the boolean parameter. The token in the selector parameter specifies the input port that should be read from in the next firing. If the selector parameter token is false, then the falseInput port is used, otherwise the trueInput port is used. In the next firing, tokens are consumed from the specified port and sent to the output port.

    The actor is able to fire if the selector parameter is either has a true or false token and there is a token on every channel of the specified input port.

    If the input port that is read has width greater than an output port, then some input tokens will be discarded (those on input channels for which there is no corresponding output channel).

    Because tokens are immutable, the same Token is sent to the output, rather than a copy. The trueInput and falseInput port may receive Tokens of any type.

    This actor is designed to be used with the DDF or PN director, but it can also be used with SR, DE, and possibly other domains. It should not be used with SDF because the number of tokens it consumes is not fixed.

    This actor is similar to the BooleanSelect actor, except that it uses a parameter rather than a control port to determine which input to use.

    Since:
    Ptolemy II 8.0
    Version:
    $Id$
    Author:
    Charles Shelton and Edward A. Lee
    Pt.AcceptedRating:
    Red (cshelton)
    Pt.ProposedRating:
    Green (cshelton)
    • Field Detail

      • trueInput

        public TypedIOPort trueInput
        Input for tokens on the true path. The type can be anything.
      • falseInput

        public TypedIOPort falseInput
        Input for tokens on the false path. The type can be anything.
      • selector

        public Parameter selector
        Parameter that selects one of the two input ports. The type is BooleanToken that defaults to false.
      • output

        public TypedIOPort output
        The output port. The type is at least the type of trueInput and falseInput
      • trueInput_tokenConsumptionRate

        public Parameter trueInput_tokenConsumptionRate
        This parameter provides token consumption rate for trueInput. The type is int and it defaults to zero.
      • falseInput_tokenConsumptionRate

        public Parameter falseInput_tokenConsumptionRate
        This parameter provides token consumption rate for falseInput. The type is int and it defaults to one.
    • Method Detail

      • attributeChanged

        public void attributeChanged​(Attribute attribute)
                              throws IllegalActionException
        React to a change in an attribute. This method is called by a contained attribute when its value changes. In this base class, the method does nothing. In derived classes, this method may throw an exception, indicating that the new attribute value is invalid. It is up to the caller to restore the attribute to a valid value if an exception is thrown.
        Overrides:
        attributeChanged in class NamedObj
        Parameters:
        attribute - The attribute that changed.
        Throws:
        IllegalActionException - If the change is not acceptable to this container (not thrown in this base class).
      • clone

        public java.lang.Object clone​(Workspace workspace)
                               throws java.lang.CloneNotSupportedException
        Clone this actor into the specified workspace. The new actor is not added to the directory of that workspace (you must do this yourself if you want it there). The result is a new actor with the same ports as the original, but no connections and no container. A container must be set before much can be done with this actor.
        Overrides:
        clone in class TypedAtomicActor
        Parameters:
        workspace - The workspace for the cloned object.
        Returns:
        A new ComponentEntity.
        Throws:
        java.lang.CloneNotSupportedException - If cloned ports cannot have as their container the cloned entity (this should not occur), or if one of the attributes cannot be cloned.
        See Also:
        NamedObj.exportMoML(Writer, int, String), NamedObj.setDeferringChangeRequests(boolean)