Class ALH
java.lang.Object
com.nomagic.magicdraw.simulation.utils.ALH
An Action Language Helper for using in scripts to access values of the runtime object.
- Since:
- SIM 1.0
-
Constructor Summary
ConstructorsConstructorDescriptionALH()Constructor.ALH(SimulationSession session) Constructor.ALH(SimulationSession session, List<NamedElement> trace) Constructor.ALH(SimulationSession session, List<NamedElement> trace, fUML.Semantics.Classes.Kernel.Object_ context) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidFind the matchedFeatureValuefrom the specifiedobject, and set thevalueat the last position of the value list.voidaddValueAt(fUML.Semantics.Classes.Kernel.StructuredValue object, String featureName, Object value, Integer insertAt) Find the matchedFeatureValuefrom the specifiedobject, and set thevalueat theinsertAtposition.callBehavior(String name) Execute theBehaviorelement that matches the specified name.callBehavior(String name, List<?> arguments) Execute the CallBehaviorAction element that matches the specified name.callBehavior(String name, List<?> arguments, boolean isSynchonous) Execute the CallBehaviorAction element that matches the specified name.callOperation(fUML.Semantics.Classes.Kernel.Object_ object, String name) Execute the method of theOperationelement that matches the specified name.callOperation(fUML.Semantics.Classes.Kernel.Object_ object, String name, String portName) Execute the method of theOperationelement that matches the specified name.callOperation(fUML.Semantics.Classes.Kernel.Object_ object, String name, String portName, List<?> arguments, boolean isSynchronous) Execute the method of theOperationelement that matches the specified name.callOperation(fUML.Semantics.Classes.Kernel.Object_ object, String name, List<?> arguments) Execute the method of theOperationelement that matches the specified name.callOperation(fUML.Semantics.Classes.Kernel.Object_ object, String name, List<?> arguments, boolean isSynchronous) Execute the method of theOperationelement that matches the specified name.callOperation(String name) Execute the method of theOperationelement that matches the specified name.callOperation(String name, List<?> arguments) Execute the method of theOperationelement that matches the specified name.A convenience method for creating the list.createList(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 anObject_with the given type (which must be aClass) in theLocusof the activeSimulationSession.fUML.Semantics.Classes.Kernel.Object_createObject(String name) Create anObject_with the givenname(which must be name ofClass) as its type.fUML.Semantics.CommonBehaviors.Communications.SignalInstancecreateSignal(Signal signal) Create the instance ofSignalInstance.fUML.Semantics.CommonBehaviors.Communications.SignalInstancecreateSignal(String keyword) Create the instance ofSignalInstance.Evaluate the string expression.Evaluate the string expression based on the specified scripting language.Get the calling element of the script evaluation.fUML.Semantics.Classes.Kernel.Object_Get the context of ALH.doubleGets current time.doublegetCurrentTime(String timeUnit) Gets current time in forms of the specifiedtimeUnit.getGlobalVariable(String variableName) Gets global variable from the execution.fUML.Semantics.CommonBehaviors.Communications.SignalInstancegetLastSignal(fUML.Semantics.Classes.Kernel.Object_ o) Get the last signal instance from the event pool.getState(fUML.Semantics.Classes.Kernel.Object_ object) Get the currentStatefrom the specifiedobject.getTagValue(fUML.Semantics.Classes.Kernel.Object_ object, String tagName) Get tag value from classifier of Object, and structural feature that Object representedgetTagValue(String tagName) Get tag value from classifier of context.Gets time unit of the running execution.Get Tokens values from the current context.Get the value ofFeatureValuefrom theobjectthat match the specifiedStructureFeaturename.booleanCheck whether the specified object is in the specified state name or not.booleanCheck whether the current runtime object is in the specified state name or not.isGlobalVariable(String variableName) Checks whether or not the givenvariableNameis global variable.voidremoveGlobalVariable(String variableName) Removes global variable from the execution.voidremoveValue(fUML.Semantics.Classes.Kernel.StructuredValue object, String featureName, fUML.Semantics.Classes.Kernel.Value value) Find the matchedFeatureValuefrom the specifiedobject, remove the definedvalueor the value atremoveAtposition.voidremoveValueAt(fUML.Semantics.Classes.Kernel.StructuredValue object, String featureName, Integer removeAt) Find the matchedFeatureValuefrom the specifiedobject, remove the definedvalueor the value atremoveAtposition.voidsendSignal(fUML.Semantics.CommonBehaviors.Communications.SignalInstance signal, fUML.Semantics.Classes.Kernel.Object_ target) Send the specifiedSignalInstanceto the specified targetObject_.voidsendSignal(fUML.Semantics.CommonBehaviors.Communications.SignalInstance signal, fUML.Semantics.Classes.Kernel.Object_ target, String portName) Send the specifiedSignalInstanceto the specified targetObject_via the specified port name.voidsendSignal(fUML.Semantics.CommonBehaviors.Communications.SignalInstance signal, String targetName) Send the specifiedSignalInstanceto the specifiedtargetName.voidsendSignal(String signalName, fUML.Semantics.Classes.Kernel.Object_ target) Create SignalInstance instance of the specifiedSignalname, and send it to the targetObject_.voidsendSignal(String signalName, fUML.Semantics.Classes.Kernel.Object_ target, String portName) Create SignalInstance instance of the specifiedSignalname, and send it to the targetObject_via the specified port name.voidsendSignal(String signalName, String targetName) Create SignalInstance instance of the specifiedSignalname, and send it to the specifiedtargetName.voidsetGlobalVariable(String variableName, Object value) Sets global variable for the execution.voidFind the matchedFeatureValuefrom the specifiedobject, and set thevalue.voidFind the matchedFeatureValuefrom thecontext, and set thevalue.booleanwasInState(fUML.Semantics.Classes.Kernel.Object_ object, String stateName) Check that the state matching with the name was already visited or not.booleanwasInState(String stateName) Check that the state matching with the name was already visited or not.
-
Constructor Details
-
ALH
public ALH()Constructor. -
ALH
Constructor.- Parameters:
session- the running session
-
ALH
Constructor.- Parameters:
session- the running sessiontrace- trace
-
ALH
public ALH(@CheckForNull SimulationSession session, List<NamedElement> trace, fUML.Semantics.Classes.Kernel.Object_ context) Constructor.- Parameters:
session- the running sessiontrace- tracecontext- the context
-
-
Method Details
-
getContext
@CheckForNull public fUML.Semantics.Classes.Kernel.Object_ getContext()Get the context of ALH.- Returns:
- context of ALH.
-
getValue
@CheckForNull public Object getValue(fUML.Semantics.Classes.Kernel.StructuredValue object, String featureName) Get the value ofFeatureValuefrom theobjectthat match the specifiedStructureFeaturename. It supports nested structural features.- Parameters:
object- the specified instance ofStructuredValue(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:
IllegalArgumentException- ifobjectorfeatureNameis null.- See Also:
-
setValue
public void setValue(fUML.Semantics.Classes.Kernel.StructuredValue object, String featureName, Object value) Find the matchedFeatureValuefrom the specifiedobject, and set thevalue. If not found, create the newFeatureValueand add to the specifiedobject. It supports nested structural features.If want to find
FeatureValuefromAssociation(Link), usefUMLHelper.addFeatureValues(Locus locus, Value valueOwner, StructuralFeature feature, ValueList inputValues, int insertAt, boolean replaceAll)- Parameters:
object- the fUML runtime Object_ or SignalInstancefeatureName- 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.- Throws:
IllegalArgumentException- ifobjectorfeatureNameis null.- See Also:
-
setValue
Find the matchedFeatureValuefrom thecontext, and set thevalue. If not found, create the newFeatureValueand add to thecontext. It supports nested structural features.If want to find
FeatureValuefromAssociation(Link), usefUMLHelper.addFeatureValues(Locus locus, Value valueOwner, StructuralFeature feature, ValueList inputValues, int insertAt, boolean replaceAll)- Parameters:
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.- Throws:
IllegalArgumentException- ifobjectorfeatureNameis null.- See Also:
-
addValue
public void addValue(fUML.Semantics.Classes.Kernel.StructuredValue object, String featureName, Object value) Find the matchedFeatureValuefrom the specifiedobject, and set thevalueat the last position of the value list.- Parameters:
object- the fUML runtime Object_ or SignalInstancefeatureName- 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, String featureName, Object value, Integer insertAt) Find the matchedFeatureValuefrom the specifiedobject, and set thevalueat theinsertAtposition.- Parameters:
object- the fUML runtime Object_ or SignalInstancefeatureName- 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, String featureName, fUML.Semantics.Classes.Kernel.Value value) Find the matchedFeatureValuefrom the specifiedobject, remove the definedvalueor the value atremoveAtposition.- Parameters:
object- the fUML runtime Object_ or SignalInstancefeatureName- 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, String featureName, Integer removeAt) Find the matchedFeatureValuefrom the specifiedobject, remove the definedvalueor the value atremoveAtposition.- Parameters:
object- the fUML runtime Object_ or SignalInstancefeatureName- 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 atremoveAtposition, ignoring thevaluevalue
-
getState
Get the currentStatefrom the specifiedobject. Ifobjecthas more than one active states, return the first one.- Parameters:
object- the instance ofObject_(or its subclasses)- Returns:
- the current
Statefrom the specifiedobject - Throws:
IllegalArgumentException- ifobjectis null.
-
getTokenValue
Get Tokens values from the current context.- Returns:
- the instance of subclasses of the
Objectrepresenting 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
Create anObject_with the given type (which must be aClass) in theLocusof the activeSimulationSession.- Parameters:
classifier- the instance ofClass(or its subclasses)- Returns:
- the created
Object_, or null ifclassifieris not instance ofClass
-
createObject
Create anObject_with the givenname(which must be name ofClass) as its type. Thenameis used to search fromcom.nomagic.uml2.ext.magicdraw.auxiliaryconstructs.mdmodels.Modelof the currentProject.- Parameters:
name- the specifiedClassname- Returns:
- the created
Object_ - See Also:
-
createObject(Class)SimulationModelHelper.findClassByName(Element, String)
-
callOperation
Execute the method of theOperationelement that matches the specified name.- Parameters:
name- the specified name ofOperation- Returns:
- the return value of the execution.
- See Also:
-
callOperation
Execute the method of theOperationelement that matches the specified name.- Parameters:
name- the specified name ofOperationarguments- argument values- Returns:
- the return value of the execution.
- See Also:
-
callOperation
Execute the method of theOperationelement that matches the specified name.- Parameters:
object- The target object to which the request is sentname- the specified name ofOperation- Returns:
- the return value of the execution.
- See Also:
-
callOperation
public Object callOperation(fUML.Semantics.Classes.Kernel.Object_ object, String name, List<?> arguments) Execute the method of theOperationelement that matches the specified name.- Parameters:
object- The target object to which the request is sentname- the specified name ofOperationarguments- argument values- Returns:
- the return value of the execution.
- See Also:
-
SimulationModelHelper.findOperationByName(Element, String)fUMLHelper.callBehavior(StructuredValue, Behavior, List, SimulationSession, Boolean)
-
callOperation
public Object callOperation(fUML.Semantics.Classes.Kernel.Object_ object, String name, List<?> arguments, boolean isSynchronous) Execute the method of theOperationelement that matches the specified name.- Parameters:
object- The target object to which the request is sentname- the specified name ofOperationarguments- argument valuesisSynchronous- 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)
-
callOperation
public Object callOperation(fUML.Semantics.Classes.Kernel.Object_ object, String name, String portName) Execute the method of theOperationelement that matches the specified name.- Parameters:
object- The target object to which the request is sentname- the specified name ofOperationportName- port through which the operation should be called- Returns:
- the return value of the execution.
- See Also:
-
SimulationModelHelper.findOperationByName(Element, String)fUMLHelper.callBehavior(StructuredValue, Behavior, List, SimulationSession, Boolean)
-
callOperation
public Object callOperation(fUML.Semantics.Classes.Kernel.Object_ object, String name, @CheckForNull String portName, List<?> arguments, boolean isSynchronous) Execute the method of theOperationelement that matches the specified name.- Parameters:
object- The target object to which the request is sentname- the specified name ofOperationportName- port through which the operation should be calledarguments- argument valuesisSynchronous- 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
Execute theBehaviorelement that matches the specified name.- Parameters:
name- the specified name ofBehavior- Returns:
- the return value of the execution.
- See Also:
-
callBehavior
Execute the CallBehaviorAction element that matches the specified name.- Parameters:
name- the specified name ofBehaviorarguments- argument values- Returns:
- the return value of the execution.
- Throws:
IllegalArgumentException- if cannot findBehavioror size ofargumentsare not equal to in/inout parameters size.- See Also:
-
callBehavior
Execute the CallBehaviorAction element that matches the specified name.- Parameters:
name- the specified name ofBehaviorarguments- argument valuesisSynchonous- true if call synchronously, false --> asynchronously- Returns:
- the return value of the execution.
- Throws:
IllegalArgumentException- if cannot findBehavioror size ofargumentsare not equal to in/inout parameters size.- See Also:
-
sendSignal
Create SignalInstance instance of the specifiedSignalname, and send it to the targetObject_. IfsignalNamecontains "::", it will find the signal from the qualified name, the signal is found if its qualified name is ended withsignalName.- Parameters:
signalName- the specifiedSignalnametarget- the specified targetObject_
-
sendSignal
Create SignalInstance instance of the specifiedSignalname, and send it to the specifiedtargetName. IfsignalNamecontains "::", it will find the signal from the qualified name, the signal is found if its qualified name is ended withsignalName. IftargetNameis 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 specifiedSignalnametargetName- the specified target object name
- It will find target objects from all waiting objects that have their parts name matched with
-
sendSignal
public void sendSignal(String signalName, fUML.Semantics.Classes.Kernel.Object_ target, String portName) Create SignalInstance instance of the specifiedSignalname, and send it to the targetObject_via the specified port name. IfsignalNamecontains "::", it will find the signal from the qualified name, the signal is found if its qualified name is ended withsignalName.- Parameters:
signalName- the specifiedSignalnametarget- the specified targetObject_portName- the specified port name
-
sendSignal
public void sendSignal(fUML.Semantics.CommonBehaviors.Communications.SignalInstance signal, fUML.Semantics.Classes.Kernel.Object_ target) Send the specifiedSignalInstanceto the specified targetObject_.- Parameters:
signal- the specifiedSignalInstancetarget- the specified targetObject_
-
sendSignal
public void sendSignal(fUML.Semantics.CommonBehaviors.Communications.SignalInstance signal, String targetName) Send the specifiedSignalInstanceto the specifiedtargetName.If
targetNameis 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 specifiedSignalInstancetargetName- the specified target object name
- It will find target objects from all waiting objects that have their parts name matched with
-
sendSignal
public void sendSignal(fUML.Semantics.CommonBehaviors.Communications.SignalInstance signal, fUML.Semantics.Classes.Kernel.Object_ target, String portName) Send the specifiedSignalInstanceto the specified targetObject_via the specified port name.- Parameters:
signal- the specifiedSignalInstancetarget- the specified targetObject_portName- the specified port name
-
evaluate
Evaluate the string expression based on the specified scripting language.- Parameters:
language- the specified scripting languageexpression- the specified string expression- Returns:
- the evaluation result
-
evaluate
Evaluate the string expression.- Parameters:
expression- the specified string expression- Returns:
- the evaluation result
-
createList
A convenience method for creating the list. The new emptyArrayListis created and returned.- Returns:
- the new empty
ArrayList
-
createList
A convenience method for creating the list with one added item in the list. The new emptyArrayListis created and being added the specified item.- Parameters:
object- the specified item being added to the created list- Returns:
- the new empty
ArrayListwith the added item
-
inState
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
Check whether the specified object is in the specified state name or not.- Parameters:
object- the specified objectstateName- the specified state name- Returns:
- true if one of the active states matches with the specified state name
-
wasInState
Check that the state matching with the name was already visited or not.- Parameters:
stateName- the state name- Returns:
- true, if yes
-
wasInState
Check that the state matching with the name was already visited or not.- Parameters:
object- the objectstateName- the state name- Returns:
- true, if yes
-
createSignal
Create the instance ofSignalInstance.- Parameters:
signal- the specifiedSignal- Returns:
- the created
SignalInstance
-
createSignal
@CheckForNull public fUML.Semantics.CommonBehaviors.Communications.SignalInstance createSignal(String keyword) Create the instance ofSignalInstance.- Parameters:
keyword- the keyword for findSignal- Returns:
- the created
SignalInstance
-
getTimeUnit
Gets time unit of the running execution.- Returns:
- Time unit.
-
getCurrentTime
public double getCurrentTime()Gets current time.- Returns:
- Current time
-
getCurrentTime
Gets current time in forms of the specifiedtimeUnit.- 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
Gets global variable from the execution.- Parameters:
variableName- Variable name- Returns:
- global variable value. if the global variable does not exist, return null.
-
setGlobalVariable
Sets global variable for the execution.- Parameters:
variableName- Variable namevalue- Variable value
-
isGlobalVariable
Checks whether or not the givenvariableNameis global variable.- Parameters:
variableName- Variable name- Returns:
- true, if the given
variableNameis global variable. Otherwise, false.
-
removeGlobalVariable
Removes global variable from the execution.- Parameters:
variableName- Variable name
-
getCaller
Get the calling element of the script evaluation.- Returns:
- the calling element of the script evaluation
-
getTagValue
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:
Exception- - deprecated, never thrown
-
getTagValue
@CheckForNull public Object getTagValue(@CheckForNull fUML.Semantics.Classes.Kernel.Object_ object, String tagName) throws Exception Get tag value from classifier of Object, and structural feature that Object represented- Parameters:
object- the runtime objecttagName- the tag name possible to be the dot notation.- Returns:
- the value of tagName as the primitive object.
- Throws:
Exception- - deprecated, never thrown
-