Class Refinement

    • Field Detail

      • _mirrorDisable

        protected boolean _mirrorDisable
        Indicator that we are processing a newPort request.
    • Method Detail

      • addRefinement

        public void addRefinement​(State state,
                                  java.lang.String name,
                                  Entity template,
                                  java.lang.String className,
                                  InstanceOpener instanceOpener)
                           throws IllegalActionException
        Perform no action but throw an IllegalActionException because a refinement cannot be created in an arbitrary actor-oriented refinement.
        Specified by:
        addRefinement in interface RefinementActor
        Parameters:
        state - The state that will contain the new refinement.
        name - The name of the composite entity that stores the refinement.
        template - The template used to create the refinement, or null if template is not used.
        className - The class name for the refinement, which is used when template is null.
        instanceOpener - The instanceOpener, typically a Configuration, that is used to open the refinement (as a look-inside action) after it is created, or null if it is not needed to open the refinement.
        Throws:
        IllegalActionException - If error occurs while creating the refinement.
      • getRefinedState

        public State getRefinedState()
                              throws IllegalActionException
        Get the state in any ModalController within this ModalModel that has this refinement as its refinement, if any. Return null if no such state is found.
        Specified by:
        getRefinedState in interface RefinementActor
        Returns:
        The state with this refinement as its refinement, or null.
        Throws:
        IllegalActionException - If the specified refinement cannot be found in a state, or if a comma-separated list is malformed.
      • newPort

        public Port newPort​(java.lang.String name)
                     throws NameDuplicationException
        Create a new port with the specified name in the container of this refinement, which in turn creates a port in this refinement all other refinements, and the controller. This method is write-synchronized on the workspace.
        Overrides:
        newPort in class TypedCompositeActor
        Parameters:
        name - The name to assign to the newly created port.
        Returns:
        The new port.
        Throws:
        NameDuplicationException - If the entity already has a port with the specified name.
      • setMirrorDisable

        public void setMirrorDisable​(int disable)
        Control whether adding a port should be mirrored in the modal model and the mode controller. This is added to allow control by the UI.
        Specified by:
        setMirrorDisable in interface RefinementActor
        Parameters:
        disable - 0 if mirroring should occur, -1 if mirroring should not occur downwards in the hierarchy, 1 if mirroring should not occur upwards in the hierarchy.
      • _addPort

        protected void _addPort​(Port port)
                         throws IllegalActionException,
                                NameDuplicationException
        Override the base class to check that the container contains a mirror port. If it does not, then this port is being added by copy and paste or some other mechanism that has bypassed the newPort() method. Such mechanisms do not properly mirror the port in the containing ModalModel.
        Overrides:
        _addPort in class TypedCompositeActor
        Parameters:
        port - The port to add to this entity.
        Throws:
        IllegalActionException - If the port is not being added by the enclosing ModalModel.
        NameDuplicationException - If the port name collides with a name already in the entity.
      • _checkContainer

        protected void _checkContainer​(Entity container)
                                throws IllegalActionException
        Override the base class to ensure that the proposed container is a ModalModel or null.
        Parameters:
        container - The proposed container.
        Throws:
        IllegalActionException - If the proposed container is not a TypedActor, or if the base class throws it.