Class ExecutionEngine
- java.lang.Object
-
- com.nomagic.magicdraw.simulation.engine.ExecutionEngine
-
@OpenApi public abstract class ExecutionEngine extends java.lang.ObjectThe abstract class of the execution engine that all specific execution engines must extend, and override abstract methods (init(), execute(), onClose). It maintains the list ofEngineListener, and its descriptorExecutionEngineDescriptor.
-
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<com.nomagic.magicdraw.simulation.engine.InternalEngineListener>internalListenersprotected java.util.concurrent.atomic.AtomicBooleanisClosedif this flag is true, it tells that the engine is already closed.protected java.util.concurrent.atomic.AtomicBooleanisInterruptedif this flag is true, it tells that the engine is interrupted and it is closing.protected SimulationSessionsessiona reference to the running session of this engine.
-
Constructor Summary
Constructors Constructor Description ExecutionEngine(ExecutionEngineDescriptor engineDescriptor)Constructor.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidactivateElement(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element, com.nomagic.magicdraw.simulation.execution.data.ActivationInfo info)Activate the element, it delegates to all storing engine listener.voidactivateElement(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element, java.util.Collection<?> c)Activate the element, it delegates to all storing engine listener.voidaddEngineListener(EngineListener listener)Add the specified engine listener to the storing engine listener list.voidaddEngineListener(EngineListener listener, int index)Add the specified engine listener to the storing engine listener list with specified position.voidaddInternalEngineListener(com.nomagic.magicdraw.simulation.engine.InternalEngineListener listener)Add the specified internal engine listener to the storing engine listener list.voidaddInternalEngineListener(com.nomagic.magicdraw.simulation.engine.InternalEngineListener listener, int index)Add the specified internal engine listener to the storing internal engine listener list with specified position.voiddeactivateElement(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element, com.nomagic.magicdraw.simulation.execution.data.ActivationInfo info)Deactivate the element, it delegates to all storing engine listener.voiddeactivateElement(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element, java.util.Collection<?> c)Deactivate the element, it delegates to all storing engine listener.voiddestroyObject()Destroys object.java.lang.StringevaluateCommand(java.lang.String commandRcvd, java.lang.String language, com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element elementContainer)Evaluate the specified command as string.abstract voidexecute(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element)Engine execution.voidexecutionFinished()Set executionFinished = true.java.util.List<com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element>getActiveElements()Gets active elements.com.nomagic.magicdraw.simulation.engine.EngineAnimationControllergetAnimationController()java.util.Set<com.nomagic.uml2.ext.magicdraw.commonbehaviors.mdcommunications.Signal>getAvailableSignals()Returns all available signals at current state.ExecutionEngineDescriptorgetEngineDescriptor()ExecutionEngineDescriptor getter.java.util.List<EngineListener>getEngineListeners()Get the engine listener list.java.util.List<com.nomagic.magicdraw.simulation.engine.InternalEngineListener>getInternalEngineListeners()Get the engine listener list.com.nomagic.uml2.ext.magicdraw.classes.mdkernel.ElementgetLastVisitedElement()Gets last visited element.java.util.Collection<java.lang.String>getNormativeValues(java.util.Collection<?> values)Get the normative values collection from the specified value collection.SimulationSessiongetSession()Sessiongetter.com.nomagic.magicdraw.simulation.engine.ExecutionStatusgetStatus()Get the execution status.java.lang.StringgetValuesAsString(java.util.Collection<?> values)Get the string of the given collection.abstract voidinit(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element)Engine initialization.voidinternalExecute(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element)Engine internal execution.voidinternalInit(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element)Engine internal initialization.voidinternalOnClose()Engine internal onClose.voidinterupt()Interrupt this engine.booleanisExecutionFinished()Get executionFinished.booleanisInterrupted()return boolean value of isInterupted.abstract voidonClose()Engine onClose.voidremoveEngineListener(EngineListener listener)Remove the specified engine listener from the storing engine listener list.voidremoveInternalEngineListener(com.nomagic.magicdraw.simulation.engine.InternalEngineListener listener)Remove the specified internal engine listener from the storing internal engine listener list.voidsetSession(SimulationSession session)Sessionsetter.voidsetStatus(com.nomagic.magicdraw.simulation.engine.ExecutionStatus status)Set status.voidtriggerEvent(java.lang.String event)Trigger the specified event, it delegates to all storing engine listener.
-
-
-
Field Detail
-
session
@OpenApi protected SimulationSession session
a reference to the running session of this engine.
-
isInterrupted
protected java.util.concurrent.atomic.AtomicBoolean isInterrupted
if this flag is true, it tells that the engine is interrupted and it is closing. this flag is used to checked in internalOnClose().
-
isClosed
protected java.util.concurrent.atomic.AtomicBoolean isClosed
if this flag is true, it tells that the engine is already closed. all onClose tasks have been done.
-
internalListeners
protected final java.util.List<com.nomagic.magicdraw.simulation.engine.InternalEngineListener> internalListeners
-
-
Constructor Detail
-
ExecutionEngine
@OpenApi public ExecutionEngine(ExecutionEngineDescriptor engineDescriptor)
Constructor.- Parameters:
engineDescriptor- the given engine's descriptor.
-
-
Method Detail
-
getEngineDescriptor
@OpenApi public ExecutionEngineDescriptor getEngineDescriptor()
ExecutionEngineDescriptor getter.- Returns:
- ExecutionEngineDescriptor
-
getAnimationController
public com.nomagic.magicdraw.simulation.engine.EngineAnimationController getAnimationController()
-
init
@OpenApi public abstract void init(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element)
Engine initialization.- Parameters:
element- the given element
-
execute
@OpenApi public abstract void execute(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element)
Engine execution.- Parameters:
element- the given element
-
onClose
@OpenApi public abstract void onClose()
Engine onClose.
-
internalInit
public final void internalInit(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element)
Engine internal initialization.- Parameters:
element- the specified element
-
internalExecute
public final void internalExecute(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element)
Engine internal execution.- Parameters:
element- the specified element
-
internalOnClose
public final void internalOnClose()
Engine internal onClose.
-
destroyObject
public void destroyObject()
Destroys object.
-
addEngineListener
@OpenApi public void addEngineListener(EngineListener listener)
Add the specified engine listener to the storing engine listener list.- Parameters:
listener- the specified engine listener
-
addEngineListener
public void addEngineListener(EngineListener listener, int index)
Add the specified engine listener to the storing engine listener list with specified position.- Parameters:
listener- the specified engine listenerindex- the index to add
-
removeEngineListener
@OpenApi public void removeEngineListener(EngineListener listener)
Remove the specified engine listener from the storing engine listener list.- Parameters:
listener- the specified engine listener
-
addInternalEngineListener
public void addInternalEngineListener(com.nomagic.magicdraw.simulation.engine.InternalEngineListener listener)
Add the specified internal engine listener to the storing engine listener list.- Parameters:
listener- the specified internal engine listener
-
addInternalEngineListener
public void addInternalEngineListener(com.nomagic.magicdraw.simulation.engine.InternalEngineListener listener, int index)Add the specified internal engine listener to the storing internal engine listener list with specified position.- Parameters:
listener- the specified internal engine listenerindex- the index to add
-
removeInternalEngineListener
public void removeInternalEngineListener(com.nomagic.magicdraw.simulation.engine.InternalEngineListener listener)
Remove the specified internal engine listener from the storing internal engine listener list.- Parameters:
listener- the specified internal engine listener
-
getEngineListeners
@OpenApi public java.util.List<EngineListener> getEngineListeners()
Get the engine listener list.- Returns:
- the engine listener list.
-
getInternalEngineListeners
public java.util.List<com.nomagic.magicdraw.simulation.engine.InternalEngineListener> getInternalEngineListeners()
Get the engine listener list.- Returns:
- the engine listener list.
-
activateElement
@OpenApi public void activateElement(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element, java.util.Collection<?> c)Activate the element, it delegates to all storing engine listener.- Parameters:
element- the specified elementc- the passing values
-
activateElement
public void activateElement(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element, com.nomagic.magicdraw.simulation.execution.data.ActivationInfo info)Activate the element, it delegates to all storing engine listener.- Parameters:
element- the specified elementinfo- ActivationInfo
-
deactivateElement
@OpenApi public void deactivateElement(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element, java.util.Collection<?> c)Deactivate the element, it delegates to all storing engine listener.- Parameters:
element- the specified elementc- the passing values
-
deactivateElement
public void deactivateElement(com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element element, com.nomagic.magicdraw.simulation.execution.data.ActivationInfo info)Deactivate the element, it delegates to all storing engine listener.- Parameters:
element- the specified elementinfo- ActivationInfo
-
triggerEvent
@OpenApi public void triggerEvent(java.lang.String event)
Trigger the specified event, it delegates to all storing engine listener.- Parameters:
event- the specified event
-
getAvailableSignals
public java.util.Set<com.nomagic.uml2.ext.magicdraw.commonbehaviors.mdcommunications.Signal> getAvailableSignals()
Returns all available signals at current state. For the state machine, available signals can change current state to another state.
Default implementation returns an empty Set.- Returns:
- the available signals at current state.
-
getValuesAsString
public java.lang.String getValuesAsString(@CheckForNull java.util.Collection<?> values)Get the string of the given collection.- Parameters:
values- the specified collection- Returns:
- the string value
-
getNormativeValues
public java.util.Collection<java.lang.String> getNormativeValues(java.util.Collection<?> values)
Get the normative values collection from the specified value collection.- Parameters:
values- the specified value collection.- Returns:
- the normative values collection
-
getStatus
public com.nomagic.magicdraw.simulation.engine.ExecutionStatus getStatus()
Get the execution status.- Returns:
- the execution status
-
evaluateCommand
public java.lang.String evaluateCommand(java.lang.String commandRcvd, java.lang.String language, com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element elementContainer)Evaluate the specified command as string.- Parameters:
commandRcvd- the specified commandlanguage- for evaluationelementContainer- the element container for access the tag variable- Returns:
- string
-
setSession
public void setSession(SimulationSession session)
Sessionsetter.- Parameters:
session- the specified session
-
getSession
public SimulationSession getSession()
Sessiongetter.- Returns:
Session
-
setStatus
public void setStatus(com.nomagic.magicdraw.simulation.engine.ExecutionStatus status)
Set status.- Parameters:
status- the specified status
-
getActiveElements
@OpenApi public java.util.List<com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element> getActiveElements()
Gets active elements.- Returns:
- Active elements
-
getLastVisitedElement
@OpenApi @CheckForNull public com.nomagic.uml2.ext.magicdraw.classes.mdkernel.Element getLastVisitedElement()
Gets last visited element.- Returns:
- Last visited element
-
interupt
public void interupt()
Interrupt this engine.
-
isInterrupted
public boolean isInterrupted()
return boolean value of isInterupted.- Returns:
- boolean value of isInterupted.
-
executionFinished
public void executionFinished()
Set executionFinished = true.
-
isExecutionFinished
public boolean isExecutionFinished()
Get executionFinished.- Returns:
- executionFinished
-
-