![JAR search and dependency download from the Maven repository](/logo.png)
StateMachine.RegionContainer.vsf Maven / Gradle / Ivy
#macro(init $regionContainer)
#if($regionContainer.container)
#set($initialNodeName="node")
#if($regionContainer.completionTransitions.isEmpty())
#set($finalNodeName="state")
#else
#set($finalNodeName="node")
#end
#else
#set($initialNodeName="start-state")
#set($finalNodeName="end-state")
#end
#end
#init($regionContainer)
#if($regionContainer.regions.size()>1)##multiple regions
<$initialNodeName name="artificial_start_${regionContainer.mappingInfo.persistentName}">
$initialNodeName>
#foreach($region in $regionContainer.regions)
#if($region.initialState)
#end
#end
#foreach($region in $regionContainer.regions)
#if($region.initialState)
#set($state=$region.initialState)
#parse("StateMachine/Transitions.vsf")
#end
#end
#else##single regions
#foreach($region in $regionContainer.regions)
#if($region.initialState)
<$initialNodeName name="$region.initialState.mappingInfo.persistentName">
#set($state=$region.initialState)
#parse("StateMachine/Transitions.vsf")
$initialNodeName>
#end
#end
#end##$regionContainer.regions.size()>1
#foreach($region in $regionContainer.regions)
#foreach($state in $region.states)
#if($state.kind.isSimple())
#if($state.completionTransitions.size()>0)#set($nodeName="node")#else#set($nodeName="state")#end
<$nodeName name="${state.mappingInfo.persistentName}" >
#if($state.completionTransitions.size()>0)
#end
#if($state.timeTriggerTransitions.size()>0)
#end
#parse("StateMachine/Transitions.vsf")
$nodeName>
#elseif($state.kind.isOrthogonal() || $state.kind.isComposite())
#set($d=$stack1.push($regionContainer))
#set($d=$stack2.push($state))
#set($d=$stack3.push($region))
#set($regionContainer=$state)
#parse("StateMachine/RegionContainer.vsf")
#set($regionContainer=$stack1.pop())
#set($state=$stack2.pop())
#set($region=$stack3.pop())
#init($regionContainer)
#parse("StateMachine/Transitions.vsf")
#elseif($state.kind.isChoice() || $state.kind.isJunction())
#foreach($transition in ${state.outgoing})
#if($transition.guard)
#{process.${transition.guard.mappingInfo.javaName}()}
#end
#end
#elseif($state.kind.isFinal())
#if($regionContainer.regions.size()>1)
#else
<${finalNodeName} name="${state.mappingInfo.persistentName}">
#if($state.enclosingState.completionTransitions.size()>0)
#end
${finalNodeName}>
#end
#else
#if($state.kind.isJoin())
#set($nodeName="join")
#elseif($state.kind.isFork())
#set($nodeName="fork")
#elseif($state.kind.isInitial())
##already generated
#set($nodeName=false)
#else
#set($nodeName="node")
#end
#if($nodeName)
<${nodeName} name="${state.mappingInfo.persistentName}">
#parse("StateMachine/Transitions.vsf")
${nodeName}>
#end
#end
#end
#end
#if($regionContainer.regions.size()>1)##multiple regions
<${finalNodeName} name="artificial_final_${regionContainer.mappingInfo.persistentName}">
#if($state.enclosingState.completionTransitions.size()>0)
#end
${finalNodeName}>
#end
© 2015 - 2025 Weber Informatics LLC | Privacy Policy