Class ModularCodeGenTypedCompositeActor

    • Constructor Detail

      • ModularCodeGenTypedCompositeActor

        public ModularCodeGenTypedCompositeActor()
                                          throws IllegalActionException,
                                                 NameDuplicationException
        Construct a library in the default workspace with no container and an empty string as its name. Add the library to the workspace directory. Increment the version number of the workspace.
        Throws:
        IllegalActionException - If the entity cannot be contained by the proposed container.
        NameDuplicationException - If the container already has an actor with this name.
      • ModularCodeGenTypedCompositeActor

        public ModularCodeGenTypedCompositeActor​(Workspace workspace)
                                          throws IllegalActionException,
                                                 NameDuplicationException
        Construct a library in the specified workspace with no container and an empty string as a name. You can then change the name with setName(). If the workspace argument is null, then use the default workspace. Add the actor to the workspace directory. Increment the version number of the workspace.
        Parameters:
        workspace - The workspace that will list the actor.
        Throws:
        IllegalActionException - If the entity cannot be contained by the proposed container.
        NameDuplicationException - If the container already has an actor with this name.
    • 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. This overrides the base class so that if the attribute is an instance of TypeAttribute, then it sets the type of the port.
        Overrides:
        attributeChanged in class TypedCompositeActor
        Parameters:
        attribute - The attribute that changed.
        Throws:
        IllegalActionException - If the change is not acceptable to this container.
      • portList

        public java.util.List portList()
        Get the ports belonging to this entity. The order is the order in which they became contained by this entity. This method is read-synchronized on the workspace.
        Overrides:
        portList in class Entity
        Returns:
        An unmodifiable list of Port objects.
      • fire

        public void fire()
                  throws IllegalActionException
        If this actor is opaque, transfer any data from the input ports of this composite to the ports connected on the inside, and then invoke the fire() method of its local director. The transfer is accomplished by calling the transferInputs() method of the local director (the exact behavior of which depends on the domain). If the actor is not opaque, throw an exception. This method is read-synchronized on the workspace, so the fire() method of the director need not be (assuming it is only called from here). After the fire() method of the director returns, send any output data created by calling the local director's transferOutputs method.
        Specified by:
        fire in interface Executable
        Overrides:
        fire in class CompositeActor
        Throws:
        IllegalActionException - If there is no director, or if the director's fire() method throws it, or if the actor is not opaque.
      • initialize

        public void initialize()
                        throws IllegalActionException
        Create receivers and invoke the preinitialize() method of the local director. If this actor is not opaque, throw an exception. This method also resets the protected variable _stopRequested to false, so if a derived class overrides this method, then it should also do that. This method is read-synchronized on the workspace, so the preinitialize() method of the director need not be, assuming it is only called from here.
        Specified by:
        initialize in interface Initializable
        Overrides:
        initialize in class CompositeActor
        Throws:
        IllegalActionException - If there is no director, or if the director's preinitialize() method throws it, or if this actor is not opaque.
      • preinitialize

        public void preinitialize()
                           throws IllegalActionException
        Create receivers and invoke the preinitialize() method of the local director. If this actor is not opaque, throw an exception. This method also resets the protected variable _stopRequested to false, so if a derived class overrides this method, then it should also do that. This method is read-synchronized on the workspace, so the preinitialize() method of the director need not be, assuming it is only called from here.
        Specified by:
        preinitialize in interface Initializable
        Overrides:
        preinitialize in class CompositeActor
        Throws:
        IllegalActionException - If there is no director, or if the director's preinitialize() method throws it, or if this actor is not opaque.
      • registerPublisherPort

        public void registerPublisherPort​(java.lang.String name,
                                          IOPort port)
                                   throws NameDuplicationException,
                                          IllegalActionException
        Register a "published port" coming from a publisher. The name is the name being used in the matching process to match publisher and subscriber. A subscriber interested in the output of this publisher uses the same name. This registration process of publisher typically happens before the model is preinitialized, for example when opening the model. The subscribers will look for publishers during the preinitialization phase.
        Overrides:
        registerPublisherPort in class CompositeActor
        Parameters:
        name - The name is being used in the matching process to match publisher and subscriber.
        port - The published port.
        Throws:
        NameDuplicationException - If the published port is already registered.
        IllegalActionException - If the published port can't be added.
      • wrapup

        public void wrapup()
                    throws IllegalActionException
        Invoke the wrapup() method of all the actors contained in the director's container. In this base class wrapup() is called on the associated actors in the order of their creation. If the container is not an instance of CompositeActor, then this method does nothing.

        This method should be invoked once per execution. None of the other action methods should be invoked after it in the execution. This method is not synchronized on the workspace, so the caller should be.

        Specified by:
        wrapup in interface Initializable
        Overrides:
        wrapup in class CompositeActor
        Throws:
        IllegalActionException - If the wrapup() method of one of the associated actors throws it.
      • _isPublishedPort

        protected boolean _isPublishedPort​(IOPort port)
        Return true if the port is a is connected to a publisher.
        Specified by:
        _isPublishedPort in class ModularCodeGenLazyTypedCompositeActor
        Parameters:
        port - The port to look up.
        Returns:
        Return true if the port is a is connected to a publisher.
      • _pubSubChannelName

        protected java.lang.String _pubSubChannelName​(IOPort port,
                                                      boolean publisher,
                                                      boolean subscriber)
        Return the name of a Publisher or Subscriber channel name.
        Specified by:
        _pubSubChannelName in class ModularCodeGenLazyTypedCompositeActor
        Parameters:
        port - The port.
        publisher - True if the corresponding Publisher should be returned.
        subscriber - True if the corresponding Subscriber should be returned.
        Returns:
        the name of the channel.