summaryrefslogtreecommitdiffstats
path: root/docs/clamp/acm/api-protocol/puml/ParticipantHandleStateChange.puml
blob: 8429c2274db797fafbf8887524fb8e5e3347b4a0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
@startuml

(*) --> "Process State Change Message"

if "All Automation Composition Elements with my Participant ID processed?" then
  --> [yes] "Send State Change Ack Message"
  --> (*)
else
  --> [no] "Process next Automation Composition Element with my ID"
  if "State Change Message Start Phase equals Automation Composition Element start phase" then
    [true] if "Current State is DEPLOYED?" then
     [true] if "Change to UNDEPLOYED?" then
      --> [true] "Change Automation Composition Element to state UNDEPLOYED"
      --> "Wait for DEPLOYED->UNDEPLOYED State Change to complete"
      if "State Change?" then
        --> [success] "Record Success for State Change Ack message"
        --> "Process State Change Message"
      else
        --> [fail] "Record Error for State Change Ack message"
        --> "Process State Change Message"
      endif
      else
        --> [false] "Record Error for State Change Ack message"
        --> "Process State Change Message"
      endif
    else
      [false] if "Current State is UNDEPLOYED?" then
        [true] if "Change to DEPLOYED?" then
          --> [true] "Change Automation Composition Element to state DEPLOYED"
          --> "Wait for UNDEPLOYED->DEPLOYED State Change to complete"
          if "State Change?" then
            --> [success] "Record Success for State Change Ack message"
            --> "Process State Change Message"
          else
            --> [fail] "Record Error for State Change Ack message"
            --> "Process State Change Message"
          endif
        else
          --> [false] "Record Error for State Change Ack message"
          --> "Process State Change Message"
        endif
      else
        --> [false] "Record Error for State Change Ack message"
        --> "Process State Change Message"
      endif
    endif
  else
    --> [false] "Skip Automation Composition Element"
    --> "Process State Change Message"
endif

@enduml