Extensions.StateMachineProcedure.StateMachineProcedure

From emotive
Jump to navigation Jump to search

Classification

Name StateMachineProcedure
Short Description A StateMachineProcedure replaces the ProcedureRealisation by the StateMachineProcedureRealisation.
Class Procedure
Extension OTX StateMachineProcedure extension
Group StateMachineProcedure related procedures
Exceptions -
Checker Rules StateMachineProcedure_Chk001 – No Procedure realization
Core_Chk058 - unique OtxIds
Standard Compliant Yes

OTL Syntax

	public stateMachine StateMachineX() initialState State1 completedState State2
	{
		/// Local Declarations

		/// States

		state : State1
		{
			triggers()
			{
				trigger : Trigger1
				{
					EventHandling.TimerExpiredEventSource(1000)
				}
			}
			transitions
			{
				transition({Trigger1}) : Transition1 target State2
				{
				}
			}
		}
		
		state : State2
		{
		}
	}

Description

A StateMachineProcedure replaces the ProcedureRealisation by the StateMachineProcedureRealisation. A StateMachineProcedure will not have a ProcedureRealisation. This syntax cannot be expressed by a XSD schema see.

Parameters

Name Data Type Class Default Cardinality Description
Visibility Visibility (derived from Procedure) - [0..1] This value represents the visibility modifier. For more information please refer to Part 2 of ISO 13209.
  • Private
  • Packa­ge
  • Public (Default)
Implements OtxLink (derived from Procedure) - [0..1] This value represents the qualified name of the signature that a procedure implements. For more information please refer to ISO 13209-2.
Id OtxId (derived from Procedure) - [1..1] This value represents the OtxId of the otx:NamedAndSpecified element. For more information please refer to ISO 13209-2.
Name OtxName (derived from Procedure) - [0..1] This value represents the OtxName of the otx:NamedAndSpecified element. For more information please refer to ISO 13209-2.

Unique name throughout all global identifiers within the OTX document.

Realisation StateMachineProcedureRealisation - - [0..1] Specifies the procedure implementation parts.
Exclamation.png Important: The added key constraints for unique OtxIds related to state machines cannot cover OtxIds of an other state machine procedure inside the same document. Therefore it should be checked via the checker rule Core_Chk058.
<xsd:key name="UniqueStateMachineLocalIdentifierName">
<xsd:selector xpath="smp:parameters/otx:*|smp:declarations/otx:*|smp:states/smp:state|smp:states/smp:state/smp:triggers /smp:trigger|smp:states/smp:state/smp:transitions/smp:transition" />
<xsd:field xpath="@name" /></xsd:key>
<xsd:key name="UniqueStateMachineIds"><xsd:selector xpath=".//smp:parameters/otx:*|.//smp:declarations/otx:*|.//smp:state|.//smp:trigger|.//smp:transition"/>
<xsd:field xpath="@id" /></xsd:key>
<xsd:key name="StateKeyForReferences"><xsd:selector xpath=".//smp:state" /><xsd:field xpath="@name" /></xsd:key>
<xsd:keyref name="TransitionStateRef" refer="smp:StateKeyForReferences"><xsd:selector xpath=".//smp:transition" /><xsd:field xpath="@target"/></xsd:keyref>
<xsd:keyref name="InitialStateRef" refer="smp:StateKeyForReferences"><xsd:selector xpath="."/><xsd:field xpath="@initialState" /></xsd:keyref>
<xsd:keyref name="CompletedStateRef" refer="smp:StateKeyForReferences"><xsd:selector xpath="."/><xsd:field xpath="@completedState" /></xsd:keyref>
<xsd:key name="TriggerKeyForTransitions"><xsd:selector xpath=".//smp:trigger" /><xsd:field xpath="@name" /></xsd:key>
<xsd:keyref name="TriggerRef" refer="smp:TriggerKeyForTransitions"><xsd:selector xpath=".//smp:triggerRef" /><xsd:field xpath="@target"/></xsd:keyref>
<xsd:keyref name="StateMachineCommentTargetId" refer="otx:UniqueNodeIds"><xsd:selector xpath="smp:comments/otx:comment/otx:links/otx:link" /><xsd:field xpath="@targetId" /></xsd:keyref>


Specification String (derived from NamedAndSpecified) - [0..1] This value represents the string of the otx:NamedAndSpecified element. For more information please refer to ISO 13209-2.

Description of procedure signature.

OTL Examples

public stateMachine StateMachine1() initialState InitialState completedState CompletedState
{
	/// Local Declarations

	/// States

	state : InitialState
	{
		triggers()
		{
			trigger : Trigger1
			{
				EventHandling.TimerExpiredEventSource(1000)
			}
		}
		transitions
		{
			transition({Trigger1}) : Transition1 target CompletedState
			{
			}
		}
	}
		
	state : CompletedState
	{
	}
}