Class ALH


  • @OpenApiAll
    public final class ALH
    extends java.lang.Object
    An Action Language Helper for using in scripts to access values of the runtime object.
    Since:
    SIM 1.0
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addValue​(fUML.Semantics.Classes.Kernel.StructuredValue object, java.lang.String featureName, java.lang.Object value)
      Find the matched FeatureValue from the specified object, and set the value at the last position of the value list.
      void addValueAt​(fUML.Semantics.Classes.Kernel.StructuredValue object, java.lang.String featureName, java.lang.Object value, java.lang.Integer insertAt)
      Find the matched FeatureValue from the specified object, and set the value at the insertAt position.
      java.lang.Object callBehavior​(java.lang.String name)
      Execute the Behavior element that matches the specified name.
      java.lang.Object callBehavior​(java.lang.String name, java.util.List<?> arguments)
      Execute the CallBehaviorAction element that matches the specified name.
      java.lang.Object callBehavior​(java.lang.String name, java.util.List<?> arguments, boolean isSynchonous)
      Execute the CallBehaviorAction element that matches the specified name.
      java.lang.Object callOperation​(fUML.Semantics.Classes.Kernel.Object_ object, java.lang.String name)
      Execute the method of the Operation element that matches the specified name.
      java.lang.Object callOperation​(fUML.Semantics.Classes.Kernel.Object_ object, java.lang.String name, java.util.List<?> arguments)
      Execute the method of the Operation element that matches the specified name.
      java.lang.Object callOperation​(fUML.Semantics.Classes.Kernel.Object_ object, java.lang.String name, java.util.List<?> arguments, boolean isSynchonous)
      Execute the method of the Operation element that matches the specified name.
      java.lang.Object callOperation​(java.lang.String name)
      Execute the method of the Operation element that matches the specified name.
      java.lang.Object callOperation​(java.lang.String name, java.util.List<?> arguments)
      Execute the method of the Operation element that matches the specified name.
      java.util.ArrayList<java.lang.Object> createList()
      A convenience method for creating the list.
      java.util.ArrayList<java.lang.Object> createList​(java.lang.Object object)
      A convenience method for creating the list with one added item in the list.
      fUML.Semantics.Classes.Kernel.Object_ createObject​(Class classifier)
      Create an Object_ with the given type (which must be a Class) in the Locus of the active SimulationSession.
      fUML.Semantics.Classes.Kernel.Object_ createObject​(java.lang.String name)
      Create an Object_ with the given name (which must be name of Class) as its type.
      fUML.Semantics.CommonBehaviors.Communications.SignalInstance createSignal​(Signal signal)
      Create the instance of SignalInstance.
      fUML.Semantics.CommonBehaviors.Communications.SignalInstance createSignal​(java.lang.String keyword)
      Create the instance of SignalInstance.
      java.lang.Object evaluate​(java.lang.String expression)
      Evaluate the string expression.
      java.lang.Object evaluate​(java.lang.String language, java.lang.String expression)
      Evaluate the string expression based on the specified scripting language.
      NamedElement getCaller()
      Get the calling element of the script evaluation.
      fUML.Semantics.Classes.Kernel.Object_ getContext()
      Get the context of ALH.
      double getCurrentTime()
      Gets current time.
      double getCurrentTime​(java.lang.String timeUnit)
      Gets current time in forms of the specified timeUnit.
      java.lang.Object getGlobalVariable​(java.lang.String variableName)
      Gets global variable from the execution.
      fUML.Semantics.CommonBehaviors.Communications.SignalInstance getLastSignal​(fUML.Semantics.Classes.Kernel.Object_ o)
      Get the last signal instance from the event pool.
      State getState​(fUML.Semantics.Classes.Kernel.Object_ object)
      Get the current State from the specified object.
      java.lang.Object getTagValue​(fUML.Semantics.Classes.Kernel.Object_ object, java.lang.String tagName)
      Get tag value from classifier of Object, and structural feature that Object represented
      java.lang.Object getTagValue​(java.lang.String tagName)
      Get tag value from classifier of context.
      java.lang.String getTimeUnit()
      Gets time unit of the running execution.
      java.lang.Object getTokenValue()
      Get Tokens values from the current context.
      java.lang.Object getValue​(fUML.Semantics.Classes.Kernel.StructuredValue object, java.lang.String featureName)
      Get the value of FeatureValue from the object that match the specified StructureFeature name.
      boolean inState​(fUML.Semantics.Classes.Kernel.Object_ object, java.lang.String stateName)
      Check whether the specified object is in the specified state name or not.
      boolean inState​(java.lang.String stateName)
      Check whether the current runtime object is in the specified state name or not.
      java.lang.Boolean isGlobalVariable​(java.lang.String variableName)
      Checks whether or not the given variableName is global variable.
      void removeGlobalVariable​(java.lang.String variableName)
      Removes global variable from the execution.
      void removeValue​(fUML.Semantics.Classes.Kernel.StructuredValue object, java.lang.String featureName, fUML.Semantics.Classes.Kernel.Value value)
      Find the matched FeatureValue from the specified object, remove the defined value or the value at removeAt position.
      void removeValueAt​(fUML.Semantics.Classes.Kernel.StructuredValue object, java.lang.String featureName, java.lang.Integer removeAt)
      Find the matched FeatureValue from the specified object, remove the defined value or the value at removeAt position.
      void sendSignal​(fUML.Semantics.CommonBehaviors.Communications.SignalInstance signal, fUML.Semantics.Classes.Kernel.Object_ target)
      Send the specified SignalInstance to the specified target Object_.
      void sendSignal​(fUML.Semantics.CommonBehaviors.Communications.SignalInstance signal, fUML.Semantics.Classes.Kernel.Object_ target, java.lang.String portName)
      Send the specified SignalInstance to the specified target Object_ via the specified port name.
      void sendSignal​(fUML.Semantics.CommonBehaviors.Communications.SignalInstance signal, java.lang.String targetName)
      Send the specified SignalInstance to the specified targetName.
      void sendSignal​(java.lang.String signalName, fUML.Semantics.Classes.Kernel.Object_ target)
      Create SignalInstance instance of the specified Signal name, and send it to the target Object_.
      void sendSignal​(java.lang.String signalName, fUML.Semantics.Classes.Kernel.Object_ target, java.lang.String portName)
      Create SignalInstance instance of the specified Signal name, and send it to the target Object_ via the specified port name.
      void sendSignal​(java.lang.String signalName, java.lang.String targetName)
      Create SignalInstance instance of the specified Signal name, and send it to the specified targetName.
      void setGlobalVariable​(java.lang.String variableName, java.lang.Object value)
      Sets global variable for the execution.
      void setValue​(fUML.Semantics.Classes.Kernel.StructuredValue object, java.lang.String featureName, java.lang.Object value)
      Find the matched FeatureValue from the specified object, and set the value.
      void setValue​(java.lang.String featureName, java.lang.Object value)
      Find the matched FeatureValue from the context, and set the value.
      boolean wasInState​(fUML.Semantics.Classes.Kernel.Object_ object, java.lang.String stateName)
      Check that the state matching with the name was already visited or not.
      boolean wasInState​(java.lang.String stateName)
      Check that the state matching with the name was already visited or not.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ALH

        public ALH()
        Constructor.
      • ALH

        public ALH​(SimulationSession session)
        Constructor.
        Parameters:
        session - the running session
      • ALH

        public ALH​(SimulationSession session,
                   java.util.List<NamedElement> trace)
        Constructor.
        Parameters:
        session - the running session
        trace - trace
      • ALH

        public ALH​(@CheckForNull
                   SimulationSession session,
                   java.util.List<NamedElement> trace,
                   fUML.Semantics.Classes.Kernel.Object_ context)
        Constructor.
        Parameters:
        session - the running session
        trace - trace
        context - the context
    • Method Detail

      • getContext

        @CheckForNull
        public fUML.Semantics.Classes.Kernel.Object_ getContext()
        Get the context of ALH.
        Returns:
        context of ALH.
      • getValue

        public java.lang.Object getValue​(fUML.Semantics.Classes.Kernel.StructuredValue object,
                                         java.lang.String featureName)
        Get the value of FeatureValue from the object that match the specified StructureFeature name. It supports nested structural features.
        Parameters:
        object - the specified instance of StructuredValue(or its subclasses)
        featureName - the specified name, it will check with StructuralFeature name, nested structural features such as "part1.part2" are allowed.
        Returns:
        the value of FeatureValue
        Throws:
        java.lang.IllegalArgumentException - if object or featureName is null.
        See Also:
        fUMLHelper.getFeatureValueByName(StructuredValue, String), fUMLHelper.getObjectFromFeatureValue(FeatureValue)
      • addValue

        public void addValue​(fUML.Semantics.Classes.Kernel.StructuredValue object,
                             java.lang.String featureName,
                             java.lang.Object value)
        Find the matched FeatureValue from the specified object, and set the value at the last position of the value list.
        Parameters:
        object - the fUML runtime Object_ or SignalInstance
        featureName - the name of structural feature, nested structural features such as "part1.part2" are allowed.
        value - the value to be set. Can be Java value or fUML Value.
      • addValueAt

        public void addValueAt​(fUML.Semantics.Classes.Kernel.StructuredValue object,
                               java.lang.String featureName,
                               java.lang.Object value,
                               java.lang.Integer insertAt)
        Find the matched FeatureValue from the specified object, and set the value at the insertAt position.
        Parameters:
        object - the fUML runtime Object_ or SignalInstance
        featureName - the name of structural feature, nested structural features such as "part1.part2" are allowed.
        value - the value to be set. Can be Java value or fUML Value.
        insertAt - the inserted position. if it is not more than 0, the value will be added at the last position.
      • removeValue

        public void removeValue​(fUML.Semantics.Classes.Kernel.StructuredValue object,
                                java.lang.String featureName,
                                fUML.Semantics.Classes.Kernel.Value value)
        Find the matched FeatureValue from the specified object, remove the defined value or the value at removeAt position.
        Parameters:
        object - the fUML runtime Object_ or SignalInstance
        featureName - the name of structural feature, nested structural features such as "part1.part2" are allowed.
        value - the fUML value to be removed.
      • removeValueAt

        public void removeValueAt​(fUML.Semantics.Classes.Kernel.StructuredValue object,
                                  java.lang.String featureName,
                                  java.lang.Integer removeAt)
        Find the matched FeatureValue from the specified object, remove the defined value or the value at removeAt position.
        Parameters:
        object - the fUML runtime Object_ or SignalInstance
        featureName - the name of structural feature, nested structural features such as "part1.part2" are allowed.
        removeAt - if the removeAt is defined. it will remove the value at removeAt position, ignoring the value value
      • getState

        @CheckForNull
        public State getState​(fUML.Semantics.Classes.Kernel.Object_ object)
        Get the current State from the specified object. If object has more than one active states, return the first one.
        Parameters:
        object - the instance of Object_(or its subclasses)
        Returns:
        the current State from the specified object
        Throws:
        java.lang.IllegalArgumentException - if object is null.
      • getTokenValue

        public java.lang.Object getTokenValue()
        Get Tokens values from the current context.
        Returns:
        the instance of subclasses of the Object representing the token values of the current context
      • getLastSignal

        public fUML.Semantics.CommonBehaviors.Communications.SignalInstance getLastSignal​(fUML.Semantics.Classes.Kernel.Object_ o)
        Get the last signal instance from the event pool.
        Parameters:
        o - the specified object
        Returns:
        the last signal instance from the list
      • createObject

        @CheckForNull
        public fUML.Semantics.Classes.Kernel.Object_ createObject​(Class classifier)
        Create an Object_ with the given type (which must be a Class) in the Locus of the active SimulationSession.
        Parameters:
        classifier - the instance of Class(or its subclasses)
        Returns:
        the created Object_, or null if classifier is not instance of Class
      • createObject

        public fUML.Semantics.Classes.Kernel.Object_ createObject​(java.lang.String name)
        Create an Object_ with the given name (which must be name of Class) as its type. The name is used to search from com.nomagic.uml2.ext.magicdraw.auxiliaryconstructs.mdmodels.Model of the current Project.
        Parameters:
        name - the specified Class name
        Returns:
        the created Object_
        See Also:
        createObject(Class), SimulationModelHelper.findClassByName(Element, String)
      • callOperation

        public java.lang.Object callOperation​(java.lang.String name)
        Execute the method of the Operation element that matches the specified name.
        Parameters:
        name - the specified name of Operation
        Returns:
        the return value of the execution.
        See Also:
        callOperation(String, List)
      • callOperation

        @CheckForNull
        public java.lang.Object callOperation​(java.lang.String name,
                                              @CheckForNull
                                              java.util.List<?> arguments)
        Execute the method of the Operation element that matches the specified name.
        Parameters:
        name - the specified name of Operation
        arguments - argument values
        Returns:
        the return value of the execution.
        See Also:
        callOperation(Object_, String, List)
      • callOperation

        public java.lang.Object callOperation​(fUML.Semantics.Classes.Kernel.Object_ object,
                                              java.lang.String name)
        Execute the method of the Operation element that matches the specified name.
        Parameters:
        object - The target object to which the request is sent
        name - the specified name of Operation
        Returns:
        the return value of the execution.
        See Also:
        callOperation(Object_, String, List)
      • callOperation

        public java.lang.Object callOperation​(fUML.Semantics.Classes.Kernel.Object_ object,
                                              java.lang.String name,
                                              java.util.List<?> arguments)
        Execute the method of the Operation element that matches the specified name.
        Parameters:
        object - The target object to which the request is sent
        name - the specified name of Operation
        arguments - argument values
        Returns:
        the return value of the execution.
        See Also:
        SimulationModelHelper.findOperationByName(Element, String), fUMLHelper.callBehavior(StructuredValue, Behavior, List, SimulationSession, Boolean)
      • callOperation

        public java.lang.Object callOperation​(fUML.Semantics.Classes.Kernel.Object_ object,
                                              java.lang.String name,
                                              java.util.List<?> arguments,
                                              boolean isSynchonous)
        Execute the method of the Operation element that matches the specified name.
        Parameters:
        object - The target object to which the request is sent
        name - the specified name of Operation
        arguments - argument values
        isSynchonous - true if call synchronously, false --> asynchronously
        Returns:
        the return value of the execution.
        See Also:
        SimulationModelHelper.findOperationByName(Element, String), fUMLHelper.callBehavior(StructuredValue, Behavior, List, SimulationSession, Boolean)
      • callBehavior

        public java.lang.Object callBehavior​(java.lang.String name)
        Execute the Behavior element that matches the specified name.
        Parameters:
        name - the specified name of Behavior
        Returns:
        the return value of the execution.
        See Also:
        callBehavior(String, List)
      • callBehavior

        public java.lang.Object callBehavior​(java.lang.String name,
                                             java.util.List<?> arguments)
        Execute the CallBehaviorAction element that matches the specified name.
        Parameters:
        name - the specified name of Behavior
        arguments - argument values
        Returns:
        the return value of the execution.
        Throws:
        java.lang.IllegalArgumentException - if cannot find Behavior or size of arguments are not equal to in/inout parameters size.
        See Also:
        fUMLHelper.callBehavior(StructuredValue, Behavior, List, SimulationSession, Boolean)
      • callBehavior

        public java.lang.Object callBehavior​(java.lang.String name,
                                             @CheckForNull
                                             java.util.List<?> arguments,
                                             boolean isSynchonous)
        Execute the CallBehaviorAction element that matches the specified name.
        Parameters:
        name - the specified name of Behavior
        arguments - argument values
        isSynchonous - true if call synchronously, false --> asynchronously
        Returns:
        the return value of the execution.
        Throws:
        java.lang.IllegalArgumentException - if cannot find Behavior or size of arguments are not equal to in/inout parameters size.
        See Also:
        fUMLHelper.callBehavior(StructuredValue, Behavior, List, SimulationSession, Boolean)
      • sendSignal

        public void sendSignal​(java.lang.String signalName,
                               fUML.Semantics.Classes.Kernel.Object_ target)
        Create SignalInstance instance of the specified Signal name, and send it to the target Object_.

        If signalName contains "::", it will find the signal from the qualified name, the signal is found if its qualified name is ended with signalName.

        Parameters:
        signalName - the specified Signal name
        target - the specified target Object_
      • sendSignal

        public void sendSignal​(java.lang.String signalName,
                               java.lang.String targetName)
        Create SignalInstance instance of the specified Signal name, and send it to the specified targetName.

        If signalName contains "::", it will find the signal from the qualified name, the signal is found if its qualified name is ended with signalName.

        If targetName is defined, there are two possible cases.

        • It will find target objects from all waiting objects that have their parts name matched with targetName
        • It will find target objects via connected port, which port name is matched with the specified targetName
        Parameters:
        signalName - the specified Signal name
        targetName - the specified target object name
      • sendSignal

        public void sendSignal​(java.lang.String signalName,
                               fUML.Semantics.Classes.Kernel.Object_ target,
                               java.lang.String portName)
        Create SignalInstance instance of the specified Signal name, and send it to the target Object_ via the specified port name.

        If signalName contains "::", it will find the signal from the qualified name, the signal is found if its qualified name is ended with signalName.

        Parameters:
        signalName - the specified Signal name
        target - the specified target Object_
        portName - the specified port name
      • sendSignal

        public void sendSignal​(fUML.Semantics.CommonBehaviors.Communications.SignalInstance signal,
                               fUML.Semantics.Classes.Kernel.Object_ target)
        Send the specified SignalInstance to the specified target Object_.
        Parameters:
        signal - the specified SignalInstance
        target - the specified target Object_
      • sendSignal

        public void sendSignal​(fUML.Semantics.CommonBehaviors.Communications.SignalInstance signal,
                               java.lang.String targetName)
        Send the specified SignalInstance to the specified targetName. If targetName is defined, there are two possible cases.
        • It will find target objects from all waiting objects that have their parts name matched with targetName
        • It will find target objects via connected port, which port name is matched with the specified targetName
        Parameters:
        signal - the specified SignalInstance
        targetName - the specified target object name
      • sendSignal

        public void sendSignal​(fUML.Semantics.CommonBehaviors.Communications.SignalInstance signal,
                               fUML.Semantics.Classes.Kernel.Object_ target,
                               java.lang.String portName)
        Send the specified SignalInstance to the specified target Object_ via the specified port name.
        Parameters:
        signal - the specified SignalInstance
        target - the specified target Object_
        portName - the specified port name
      • evaluate

        @CheckForNull
        public java.lang.Object evaluate​(java.lang.String language,
                                         java.lang.String expression)
        Evaluate the string expression based on the specified scripting language.
        Parameters:
        language - the specified scripting language
        expression - the specified string expression
        Returns:
        the evaluation result
      • evaluate

        public java.lang.Object evaluate​(java.lang.String expression)
        Evaluate the string expression.
        Parameters:
        expression - the specified string expression
        Returns:
        the evaluation result
      • createList

        public java.util.ArrayList<java.lang.Object> createList()
        A convenience method for creating the list. The new empty ArrayList is created and returned.
        Returns:
        the new empty ArrayList
      • createList

        public java.util.ArrayList<java.lang.Object> createList​(java.lang.Object object)
        A convenience method for creating the list with one added item in the list. The new empty ArrayList is created and being added the specified item.
        Parameters:
        object - the specified item being added to the created list
        Returns:
        the new empty ArrayList with the added item
      • inState

        public boolean inState​(java.lang.String stateName)
        Check whether the current runtime object is in the specified state name or not.
        Parameters:
        stateName - the specified state name
        Returns:
        true if one of the active states matches with the specified state name
      • inState

        public boolean inState​(fUML.Semantics.Classes.Kernel.Object_ object,
                               java.lang.String stateName)
        Check whether the specified object is in the specified state name or not.
        Parameters:
        object - the specified object
        stateName - the specified state name
        Returns:
        true if one of the active states matches with the specified state name
      • wasInState

        public boolean wasInState​(java.lang.String stateName)
        Check that the state matching with the name was already visited or not.
        Parameters:
        stateName - the state name
        Returns:
        true, if yes
      • wasInState

        public boolean wasInState​(fUML.Semantics.Classes.Kernel.Object_ object,
                                  java.lang.String stateName)
        Check that the state matching with the name was already visited or not.
        Parameters:
        object - the object
        stateName - the state name
        Returns:
        true, if yes
      • createSignal

        public fUML.Semantics.CommonBehaviors.Communications.SignalInstance createSignal​(Signal signal)
        Create the instance of SignalInstance.
        Parameters:
        signal - the specified Signal
        Returns:
        the created SignalInstance
      • createSignal

        @CheckForNull
        public fUML.Semantics.CommonBehaviors.Communications.SignalInstance createSignal​(java.lang.String keyword)
        Create the instance of SignalInstance.
        Parameters:
        keyword - the keyword for find Signal
        Returns:
        the created SignalInstance
      • getTimeUnit

        public java.lang.String getTimeUnit()
        Gets time unit of the running execution.
        Returns:
        Time unit.
      • getCurrentTime

        public double getCurrentTime()
        Gets current time.
        Returns:
        Current time
      • getCurrentTime

        public double getCurrentTime​(java.lang.String timeUnit)
        Gets current time in forms of the specified timeUnit.
        Parameters:
        timeUnit - the unit of time, that the current time should be converted to. Valid parameters: "nanosecond"/"ns", "microsecond"/"µs", "millisecond"/"ms", "second"/"s", "minute"/"min", "hour"/"h", "day"/"d", "week"/"w", "month"/"mo", "year"/"y"
        Returns:
        Current time in the unit of specified timeUnit.
      • getGlobalVariable

        public java.lang.Object getGlobalVariable​(java.lang.String variableName)
        Gets global variable from the execution.
        Parameters:
        variableName - Variable name
        Returns:
        global variable value. if the global variable does not exist, return null.
      • setGlobalVariable

        public void setGlobalVariable​(java.lang.String variableName,
                                      java.lang.Object value)
        Sets global variable for the execution.
        Parameters:
        variableName - Variable name
        value - Variable value
      • isGlobalVariable

        public java.lang.Boolean isGlobalVariable​(java.lang.String variableName)
        Checks whether or not the given variableName is global variable.
        Parameters:
        variableName - Variable name
        Returns:
        true, if the given variableName is global variable. Otherwise, false.
      • removeGlobalVariable

        public void removeGlobalVariable​(java.lang.String variableName)
        Removes global variable from the execution.
        Parameters:
        variableName - Variable name
      • getCaller

        public NamedElement getCaller()
        Get the calling element of the script evaluation.
        Returns:
        the calling element of the script evaluation
      • getTagValue

        public java.lang.Object getTagValue​(java.lang.String tagName)
                                     throws java.lang.Exception
        Get tag value from classifier of context.
        Parameters:
        tagName - the tag name possible to be the dot notation.
        Returns:
        the value of tagName as the primitive object.
        Throws:
        java.lang.Exception - the exception
      • getTagValue

        public java.lang.Object getTagValue​(@CheckForNull
                                            fUML.Semantics.Classes.Kernel.Object_ object,
                                            java.lang.String tagName)
                                     throws java.lang.Exception
        Get tag value from classifier of Object, and structural feature that Object represented
        Parameters:
        object - the runtime object
        tagName - the tag name possible to be the dot notation.
        Returns:
        the value of tagName as the primitive object.
        Throws:
        java.lang.Exception - the exception