<?xml version="1.0" encoding="UTF-8"?>
<Automa xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:noNamespaceSchemaLocation="automa.xsd"
	Id="Delivery">
<GlobalState>
	<!-- this variable stores user's choices during session (through GET) -->
	<Variable Name="operator" Type="string" />
	<!-- this variable stores user's choices during session (through GET) -->
	<Variable Name="lineChosen" Type="string" />
</GlobalState>
<Clocks>
	<Variable Name="cStart" />
	<Variable Name="cSend" />
	<Variable Name="cProcessing" />
</Clocks>
<ActionPool>
<!--  ACTION  -->
	<Action Id="startPage" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="startPage"/>
	</Action>
	<Action Id="newOrderPage" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="newOrderPage"/>
	</Action>
	<Action Id="orderLinePage" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="orderLinePage"/>
	</Action>
	<Action Id="stopLineActivationPage" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="stopLineActivationPage"/>
	</Action>
	<Action Id="performLineActivationPage" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="performLineActivationPage"/>
	</Action>
	<Action Id="suspendLineActivationPage" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="suspendLineActivationPage"/>
	</Action>
	<Action Id="resumeLineActivationPage" Type="object">
        <Input>
            <Parameter Name="operator" />
            <Parameter Name="lineChosen" />
        </Input>
        <System Path="../test/DeliveryWeb.lib.php" 
            Class="DeliveryWeb"
            Name="resumeLineActivationPage"/>
    </Action>
	<Action Id="lineActivationPerformedPage" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="lineActivationPerformedPage"/>
	</Action>
	<Action Id="lineOutOfOrderPage" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="lineOutOfOrderPage"/>
	</Action>
	<Action Id="orderCancelledPage" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="orderCancelledPage"/>
	</Action>
	<Action Id="lineWorkingPage" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="lineWorkingPage"/>
	</Action>
	<Action Id="orderPerformedPage" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="orderPerformedPage"/>
	</Action>
<!--  METRICHE  -->
	<Action Id="startMetric" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="startMetric" />
		<Enumeration Type="string">
			<Const Value="CREATE"/>
		</Enumeration>
	</Action>
	<Action Id="newOrderMetric" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="newOrderMetric"/>
		<Enumeration Type="string">
			<Const Value="SEND"/>
		</Enumeration>
	</Action>
	<Action Id="orderLineMetric" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="orderLineMetric"/>
		<Enumeration Type="string">
			<Const Value="CANCEL_TASK"/>
			<Const Value="KO_CARR"/>
			<Const Value="PROCESSING"/>
		</Enumeration>
	</Action>
	<Action Id="stopLineActivationMetric" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="stopLineActivationMetric"/>
		<Enumeration Type="string">
			<Const Value="CREATE"/>
			<Const Value="CANCEL_TASK"/>
		</Enumeration>
	</Action>
	<Action Id="performLineActivationMetric" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="performLineActivationMetric"/>
		<Enumeration Type="string">
			<Const Value="KO_CARR"/>
			<Const Value="SUSPENSION"/>
			<Const Value="CARRIED_OUT"/>
		</Enumeration>
	</Action>
	<Action Id="suspendLineActivationMetric" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="suspendLineActivationMetric"/>
		<Enumeration Type="string">
			<Const Value="PROCESSING"/>
			<Const Value="CARRIED_OUT"/>
		</Enumeration>
	</Action>
	<Action Id="resumeLineActivationMetric" Type="object">
        <Input>
            <Parameter Name="operator" />
            <Parameter Name="lineChosen" />
        </Input>
        <System Path="../test/DeliveryWeb.lib.php" 
            Class="DeliveryWeb"
            Name="resumeLineActivationMetric"/>
        <Enumeration Type="string">
            <Const Value="SUSPENSION"/>
            <Const Value="CARRIED_OUT"/>
        </Enumeration>
    </Action>
	<Action Id="orderCancelledMetric" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="orderCancelledMetric"/>
		<Enumeration Type="string">
			<Const Value="START"/>
		</Enumeration>
	</Action>
	<Action Id="lineActivationPerformedMetric" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="lineActivationPerformedMetric"/>
		<Enumeration Type="string">
			<Const Value="CANCEL_TASK"/>
			<Const Value="OUT_OF_ORDER"/>
			<Const Value="VISIBLE"/>
		</Enumeration>
	</Action>
	<Action Id="lineOutOfOrderMetric" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="lineOutOfOrderMetric"/>
		<Enumeration Type="string">
			<Const Value="VISIBLE"/>
		</Enumeration>
	</Action>
	<Action Id="lineWorkingMetric" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="lineWorkingMetric"/>
		<Enumeration Type="string">
			<Const Value="CANCEL_TASK"/>
			<Const Value="ACTIVE"/>
		</Enumeration>
	</Action>
	<Action Id="orderPerformedMetric" Type="object">
		<Input>
			<Parameter Name="operator" />
			<Parameter Name="lineChosen" />
		</Input>
		<System Path="../test/DeliveryWeb.lib.php" 
			Class="DeliveryWeb"
			Name="orderPerformedMetric"/>
		<Enumeration Type="string">
			<Const Value="START"/>
		</Enumeration>
	</Action>
</ActionPool>
<States>
	<State Id="Start" 	IdAction="startPage"	IdMetric="startMetric" 	Interactive="true"/>
	<State Id="NewOrder" 	IdAction="newOrderPage"	IdMetric="newOrderMetric" 	Interactive="true"/>
	<State Id="OrderLine" 	IdAction="orderLinePage"	IdMetric="orderLineMetric" 	Interactive="true"/>
	<State Id="StopLineActivation" 	IdAction="stopLineActivationPage"	IdMetric="stopLineActivationMetric" 	Interactive="true"/>
	<State Id="PerformLineActivation" 	IdAction="performLineActivationPage"	IdMetric="performLineActivationMetric" />
	<State Id="ResumeLineActivation"  IdAction="resumeLineActivationPage"    IdMetric="resumeLineActivationMetric"  Interactive="true" />
	<State Id="SuspendLineActivation" 	IdAction="suspendLineActivationPage"	IdMetric="suspendLineActivationMetric" 	Interactive="true"/>
	<State Id="LineActivationPerformed" 	IdAction="lineActivationPerformedPage"	IdMetric="lineActivationPerformedMetric" 	Interactive="true"/>
	<State Id="LineOutOfOrder" 	IdAction="lineOutOfOrderPage"	IdMetric="lineOutOfOrderMetric" 	Interactive="true"/>
	<State Id="OrderCancelled" 	IdAction="orderCancelledPage"	IdMetric="orderCancelledMetric" 	Interactive="true"/>
	<State Id="LineWorking" 	IdAction="lineWorkingPage"	IdMetric="lineWorkingMetric"	Interactive="true"/>
	<State Id="OrderPerformed" 	IdAction="orderPerformedPage"	IdMetric="orderPerformedMetric" 	Interactive="true"/>
</States>
<FinalStates>
</FinalStates>
<InitialState IdState="Start"/>
<Transitions>
	<Transition IdInputState="Start" IdOutputState="NewOrder" MetricValue="CREATE" />
	<Transition IdInputState="NewOrder" IdOutputState="OrderLine" MetricValue="SEND">
		<ClockReset ClockVar="cSend"/>
	</Transition>
	<Transition IdInputState="OrderLine" IdOutputState="NewOrder" MetricValue="CANCEL_TASK" />
	<Transition IdInputState="OrderLine" IdOutputState="StopLineActivation" MetricValue="KO_CARR" >
		<ClockConstraint ClockExp="cSend &lt; 1 min" />
	</Transition>
	<Transition IdInputState="OrderLine" IdOutputState="PerformLineActivation" MetricValue="PROCESSING" >
		<ClockConstraint ClockExp="cSend &lt; 1 min" />
		<ClockReset ClockVar="cProcessing"/>
	</Transition>
	<Transition IdInputState="OrderLine" IdOutputState="OrderCancelled" MetricValue="PROCESSING" >
		<ClockConstraint ClockExp="cSend &gt;= 1 min" />
	</Transition>
	<Transition IdInputState="OrderLine" IdOutputState="OrderCancelled" MetricValue="KO_CARR" >
		<ClockConstraint ClockExp="cSend &gt;= 1 min" />
	</Transition>
	<Transition IdInputState="StopLineActivation" IdOutputState="NewOrder" MetricValue="CREATE" />
	<Transition IdInputState="StopLineActivation" IdOutputState="OrderCancelled" MetricValue="CANCEL_TASK" />
	<Transition IdInputState="PerformLineActivation" IdOutputState="StopLineActivation" MetricValue="KO_CARR" />
	<Transition IdInputState="PerformLineActivation" IdOutputState="SuspendLineActivation" MetricValue="SUSPENSION" />
	<Transition IdInputState="PerformLineActivation" IdOutputState="LineActivationPerformed" MetricValue="CARRIED_OUT" >
		<ClockConstraint ClockExp="cProcessing &lt; 1 min"/>
	</Transition>
	<Transition IdInputState="SuspendLineActivation" IdOutputState="LineActivationPerformed" MetricValue="CARRIED_OUT" >
		<ClockConstraint ClockExp="cProcessing &lt; 1 min" />
	</Transition>
	<Transition IdInputState="PerformLineActivation" IdOutputState="OrderCancelled" MetricValue="CARRIED_OUT" >
		<ClockConstraint ClockExp="cProcessing &gt;= 1 min"/>
	</Transition>
	<Transition IdInputState="SuspendLineActivation" IdOutputState="OrderCancelled" MetricValue="CARRIED_OUT" >
		<ClockConstraint ClockExp="cProcessing &gt;= 1 min" />
	</Transition>
	<Transition IdInputState="SuspendLineActivation" IdOutputState="ResumeLineActivation" MetricValue="PROCESSING" />
	<Transition IdInputState="ResumeLineActivation" IdOutputState="SuspendLineActivation" MetricValue="SUSPENSION" />
	<Transition IdInputState="ResumeLineActivation" IdOutputState="LineActivationPerformed" MetricValue="CARRIED_OUT" >
	   <ClockConstraint ClockExp="cProcessing &lt; 1 min"/>
	</Transition>
	<Transition IdInputState="ResumeLineActivation" IdOutputState="OrderCancelled" MetricValue="CARRIED_OUT" >
       <ClockConstraint ClockExp="cProcessing &gt; 1 min"/>
    </Transition>
    <Transition IdInputState="LineActivationPerformed" IdOutputState="OrderCancelled" MetricValue="CANCEL_TASK" />
	<Transition IdInputState="LineActivationPerformed" IdOutputState="LineOutOfOrder" MetricValue="OUT_OF_ORDER" />
	<Transition IdInputState="LineActivationPerformed" IdOutputState="LineWorking" MetricValue="VISIBLE" />
	<Transition IdInputState="LineOutOfOrder" IdOutputState="LineWorking" MetricValue="VISIBLE" />
	<Transition IdInputState="LineWorking" IdOutputState="OrderCancelled" MetricValue="CANCEL_TASK" />
	<Transition IdInputState="LineWorking" IdOutputState="OrderPerformed" MetricValue="ACTIVE" />
	<Transition IdInputState="OrderCancelled" IdOutputState="Start" MetricValue="START"> 
		<ClockReset ClockVar="cStart"/>
	</Transition>
	<Transition IdInputState="OrderPerformed" IdOutputState="Start" MetricValue="START">
		<ClockReset ClockVar="cStart"/>
	</Transition>
</Transitions>
</Automa>

