// Code generated by Umple 1.35.0.7523.c616a4dce digraph "ActLess5Transition" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s1 A_sm_s1 [label = s1, tooltip = "Class A, SM sm, State s1", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"]; // End State: s1 // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s1 [ tooltip = "start to s1", URL="javascript:Action.transitionClicked(\"null\")" ] ; A_sm_s1 -> A_sm_s2 [ label = "e1 / doTransition();", tooltip = "From s1 to s2 on e1 Transition Action: doTransition();", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^*\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "IncreaseStateSep" { compound = true; nodesep =2.0;ranksep =2.0; // Class: GarageDoor // Top and Bottom Level StateMachine: status // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_GarageDoor_status [ tooltip = "Class GarageDoor, SM status, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: Open GarageDoor_status_Open [label = Open, tooltip = "Class GarageDoor, SM status, State Open", URL="javascript:Action.stateClicked(\"GarageDoor^*^status^*^Open\")"]; // End State: Open // State: Closing GarageDoor_status_Closing [label = Closing, tooltip = "Class GarageDoor, SM status, State Closing", URL="javascript:Action.stateClicked(\"GarageDoor^*^status^*^Closing\")"]; // End State: Closing // State: Closed GarageDoor_status_Closed [label = Closed, tooltip = "Class GarageDoor, SM status, State Closed", URL="javascript:Action.stateClicked(\"GarageDoor^*^status^*^Closed\")"]; // End State: Closed // State: Opening GarageDoor_status_Opening [label = Opening, tooltip = "Class GarageDoor, SM status, State Opening", URL="javascript:Action.stateClicked(\"GarageDoor^*^status^*^Opening\")"]; // End State: Opening // State: HalfOpen GarageDoor_status_HalfOpen [label = HalfOpen, tooltip = "Class GarageDoor, SM status, State HalfOpen", URL="javascript:Action.stateClicked(\"GarageDoor^*^status^*^HalfOpen\")"]; // End State: HalfOpen // End Top and Bottom Level StateMachine: status // All transitions start_GarageDoor_status -> GarageDoor_status_Open [ tooltip = "start to Open", URL="javascript:Action.transitionClicked(\"null\")" ] ; GarageDoor_status_Opening -> GarageDoor_status_Open [ label = "reachTop", tooltip = "From Opening to Open on reachTop", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*reachTop*^*Opening*^*Open*^*\")" ] ; GarageDoor_status_Open -> GarageDoor_status_Closing [ label = "buttonOrObstacle", tooltip = "From Open to Closing on buttonOrObstacle", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*Open*^*Closing*^*\")" ] ; GarageDoor_status_Closing -> GarageDoor_status_Closed [ label = "reachBottom", tooltip = "From Closing to Closed on reachBottom", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*reachBottom*^*Closing*^*Closed*^*\")" ] ; GarageDoor_status_Closing -> GarageDoor_status_Opening [ label = "buttonOrObstacle", tooltip = "From Closing to Opening on buttonOrObstacle", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*Closing*^*Opening*^*\")" ] ; GarageDoor_status_Closed -> GarageDoor_status_Opening [ label = "buttonOrObstacle", tooltip = "From Closed to Opening on buttonOrObstacle", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*Closed*^*Opening*^*\")" ] ; GarageDoor_status_HalfOpen -> GarageDoor_status_Opening [ label = "buttonOrObstacle", tooltip = "From HalfOpen to Opening on buttonOrObstacle", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*HalfOpen*^*Opening*^*\")" ] ; GarageDoor_status_Opening -> GarageDoor_status_HalfOpen [ label = "buttonOrObstacle", tooltip = "From Opening to HalfOpen on buttonOrObstacle", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*Opening*^*HalfOpen*^*\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "Act5Transition" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s1 A_sm_s1 [label = s1, tooltip = "Class A, SM sm, State s1", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"]; // End State: s1 // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s1 [ tooltip = "start to s1", URL="javascript:Action.transitionClicked(\"null\")" ] ; A_sm_s1 -> A_sm_s2 [ label = "e1 / {...}", tooltip = "From s1 to s2 on e1 Transition Action: doTransition1(); doTransition2(); doTransition3(); doTransition4(); doTransition5();", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^*\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "GuardTransition" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s1 A_sm_s1 [label = s1, tooltip = "Class A, SM sm, State s1", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"]; // End State: s1 // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s1 [ tooltip = "start to s1", URL="javascript:Action.transitionClicked(\"null\")" ] ; A_sm_s1 -> A_sm_s2 [ label = "e1 [guard()]", tooltip = "From s1 to s2 on e1 Guard: [guard()]", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^* [guard()]\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "HideActionTransition" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s1 A_sm_s1 [label = s1, tooltip = "Class A, SM sm, State s1", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"]; // End State: s1 // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s1 [ tooltip = "start to s1", URL="javascript:Action.transitionClicked(\"null\")" ] ; A_sm_s1 -> A_sm_s2 [ label = "e1", tooltip = "From s1 to s2 on e1", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^*\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "HideGuardTransition" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s1 A_sm_s1 [label = s1, tooltip = "Class A, SM sm, State s1", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"]; // End State: s1 // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s1 [ tooltip = "start to s1", URL="javascript:Action.transitionClicked(\"null\")" ] ; A_sm_s1 -> A_sm_s2 [ label = "e1", tooltip = "From s1 to s2 on e1", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^*\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "ActivityMore5State" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 Activity: doThisContinuouslyWhileOn1(); doThisContinuouslyWhileOn2(); doThisContinuouslyWhileOn3(); doThisContinuouslyWhileOn4(); doThisContinuouslyWhileOn5(); ...", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s2 [ tooltip = "start to s2", URL="javascript:Action.transitionClicked(\"null\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "ColouredDerivedNestedState" { compound = true; // Class: Car // Top Level StateMachine: state // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_Car_state [ tooltip = "Class Car, SM state, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: Off Car_state_Off [label = Off, tooltip = "Class Car, SM state, State Off", URL="javascript:Action.stateClicked(\"Car^*^state^*^Off\")"]; // End State: Off // State: Running subgraph clusterCar_state_Running { label = "Running"; style = "filled, rounded" fillcolor ="lightgreen" URL="javascript:Action.stateClicked(\"Car^*^state^*^Running\")"; // StateMachine: Running // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_Car_stateRunning [ tooltip = "Class Car, SM state, State Running.start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: state subgraph clusterCar_stateRunning_state { label = "state"; style = "filled, rounded" fillcolor ="pink" URL="javascript:Action.stateClicked(\"Car^*^state^*^Running.state\")"; // Bottom Level StateMachine: state // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_Car_stateRunningState [ tooltip = "Class Car, SM state, State Running.state.start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: Idle Car_stateRunningState_Idle [label = Idle,style = "filled, rounded", fillcolor ="yellow", tooltip = "Class Car, SM state, State Running.state.Idle", URL="javascript:Action.stateClicked(\"Car^*^state^*^Running.state.Idle\")"]; // End State: Idle // State: Moving Car_stateRunningState_Moving [label = Moving,style = "filled, rounded", fillcolor ="green", tooltip = "Class Car, SM state, State Running.state.Moving", URL="javascript:Action.stateClicked(\"Car^*^state^*^Running.state.Moving\")"]; // End State: Moving // State: Stopped Car_stateRunningState_Stopped [label = Stopped,style = "filled, rounded", fillcolor ="red", tooltip = "Class Car, SM state, State Running.state.Stopped", URL="javascript:Action.stateClicked(\"Car^*^state^*^Running.state.Stopped\")"]; // End State: Stopped // End Bottom Level StateMachine: state } // End State: state // End StateMachine: Running } // End State: Running // End Top Level StateMachine: state // All transitions start_Car_state -> Car_state_Off [ tooltip = "start to Off", URL="javascript:Action.transitionClicked(\"null\")" ] ; Car_stateRunningState_Stopped -> Car_state_Off [ label = "turnOff", tooltip = "From Running.state.Stopped to Off on turnOff", URL="javascript:Action.transitionClicked(\"Car*^*state*^*turnOff*^*Running.state.Stopped*^*Off*^*\")" ] ; Car_state_Off -> Car_stateRunningState_Idle [ lhead=clusterCar_state_Running, label = "turnOn", tooltip = "From Off to Running on turnOn", URL="javascript:Action.transitionClicked(\"Car*^*state*^*turnOn*^*Off*^*Running*^*\")" ] ; start_Car_stateRunning -> Car_stateRunningState_Idle [ lhead=clusterCar_stateRunning_state, tooltip = "start to Running.state", URL="javascript:Action.transitionClicked(\"null\")" ] ; start_Car_stateRunningState -> Car_stateRunningState_Idle [ tooltip = "start to Running.state.Idle", URL="javascript:Action.transitionClicked(\"null\")" ] ; Car_stateRunningState_Moving -> Car_stateRunningState_Idle [ label = "decelerate", tooltip = "From Running.state.Moving to Running.state.Idle on decelerate", URL="javascript:Action.transitionClicked(\"Car*^*state*^*decelerate*^*Running.state.Moving*^*Running.state.Idle*^*\")" ] ; Car_stateRunningState_Idle -> Car_stateRunningState_Moving [ label = "accelerate", tooltip = "From Running.state.Idle to Running.state.Moving on accelerate", URL="javascript:Action.transitionClicked(\"Car*^*state*^*accelerate*^*Running.state.Idle*^*Running.state.Moving*^*\")" ] ; Car_stateRunningState_Stopped -> Car_stateRunningState_Moving [ label = "accelerate", tooltip = "From Running.state.Stopped to Running.state.Moving on accelerate", URL="javascript:Action.transitionClicked(\"Car*^*state*^*accelerate*^*Running.state.Stopped*^*Running.state.Moving*^*\")" ] ; Car_stateRunningState_Moving -> Car_stateRunningState_Stopped [ label = "stop", tooltip = "From Running.state.Moving to Running.state.Stopped on stop", URL="javascript:Action.transitionClicked(\"Car*^*state*^*stop*^*Running.state.Moving*^*Running.state.Stopped*^*\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "ExitMore5State" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 Exit: doEntry1(); doEntry2(); doEntry3(); doEntry4(); doEntry5(); ...", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s2 [ tooltip = "start to s2", URL="javascript:Action.transitionClicked(\"null\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "NormalState" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s1 A_sm_s1 [label = s1, tooltip = "Class A, SM sm, State s1", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"]; // End State: s1 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s1 [ tooltip = "start to s1", URL="javascript:Action.transitionClicked(\"null\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "ActivityLess5State" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 Activity: doThisContinuouslyWhileOn();", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s2 [ tooltip = "start to s2", URL="javascript:Action.transitionClicked(\"null\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "ActMore5Transition" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s1 A_sm_s1 [label = s1, tooltip = "Class A, SM sm, State s1", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"]; // End State: s1 // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s1 [ tooltip = "start to s1", URL="javascript:Action.transitionClicked(\"null\")" ] ; A_sm_s1 -> A_sm_s2 [ label = "e1 / {...}", tooltip = "From s1 to s2 on e1 Transition Action: doTransition1(); doTransition2(); doTransition3(); doTransition4(); doTransition5(); ...", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^*\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "ExitLess5State" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 Exit: doEntry();", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s2 [ tooltip = "start to s2", URL="javascript:Action.transitionClicked(\"null\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "NestedTransition" { compound = true; // Class: A // Top Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s1 A_sm_s1 [label = s1, tooltip = "Class A, SM sm, State s1", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"]; // End State: s1 // State: s2 subgraph clusterA_sm_s2 { label = "s2"; style = rounded; URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"; // Bottom Level StateMachine: s2 // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_smS2 [ tooltip = "Class A, SM sm, State s2.start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s2a A_smS2_s2a [label = s2a, tooltip = "Class A, SM sm, State s2.s2a", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2.s2a\")"]; // End State: s2a // State: s2b A_smS2_s2b [label = s2b, tooltip = "Class A, SM sm, State s2.s2b", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2.s2b\")"]; // End State: s2b // End Bottom Level StateMachine: s2 } // End State: s2 // End Top Level StateMachine: sm // All transitions start_A_sm -> A_sm_s1 [ tooltip = "start to s1", URL="javascript:Action.transitionClicked(\"null\")" ] ; A_smS2_s2a -> A_sm_s1 [ ltail=clusterA_sm_s2, label = "e1", tooltip = "From s2 to s1 on e1", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s2*^*s1*^*\")" ] ; A_sm_s1 -> A_smS2_s2a [ lhead=clusterA_sm_s2, label = "e1", tooltip = "From s1 to s2 on e1", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^*\")" ] ; start_A_smS2 -> A_smS2_s2a [ tooltip = "start to s2.s2a", URL="javascript:Action.transitionClicked(\"null\")" ] ; A_smS2_s2b -> A_smS2_s2a [ label = "e3", tooltip = "From s2.s2b to s2.s2a on e3", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e3*^*s2.s2b*^*s2.s2a*^*\")" ] ; A_sm_s1 -> A_smS2_s2b [ label = "e2", tooltip = "From s1 to s2.s2b on e2", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e2*^*s1*^*s2.s2b*^*\")" ] ; A_smS2_s2a -> A_smS2_s2b [ label = "e3", tooltip = "From s2.s2a to s2.s2b on e3", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e3*^*s2.s2a*^*s2.s2b*^*\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "NestedState" { compound = true; // Class: A // Top Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s2 subgraph clusterA_sm_s2 { label = "s2"; style = rounded; URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"; // Bottom Level StateMachine: s2 // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_smS2 [ tooltip = "Class A, SM sm, State s2.start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s2a A_smS2_s2a [label = s2a, tooltip = "Class A, SM sm, State s2.s2a", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2.s2a\")"]; // End State: s2a // End Bottom Level StateMachine: s2 } // End State: s2 // End Top Level StateMachine: sm // All transitions start_A_sm -> A_smS2_s2a [ lhead=clusterA_sm_s2, tooltip = "start to s2", URL="javascript:Action.transitionClicked(\"null\")" ] ; start_A_smS2 -> A_smS2_s2a [ tooltip = "start to s2.s2a", URL="javascript:Action.transitionClicked(\"null\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "Transition" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s1 A_sm_s1 [label = s1, tooltip = "Class A, SM sm, State s1", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"]; // End State: s1 // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s1 [ tooltip = "start to s1", URL="javascript:Action.transitionClicked(\"null\")" ] ; A_sm_s1 -> A_sm_s2 [ label = "e1", tooltip = "From s1 to s2 on e1", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^*\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "Exit5State" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 Exit: doEntry1(); doEntry2(); doEntry3(); doEntry4(); doEntry5();", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s2 [ tooltip = "start to s2", URL="javascript:Action.transitionClicked(\"null\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "HideActionState" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s2 [ tooltip = "start to s2", URL="javascript:Action.transitionClicked(\"null\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "HexColouredState" { compound = true; // Class: GarageDoor // Top and Bottom Level StateMachine: status // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_GarageDoor_status [ tooltip = "Class GarageDoor, SM status, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: Open GarageDoor_status_Open [label = Open,style = "filled, rounded", fillcolor ="#FFFF00", tooltip = "Class GarageDoor, SM status, State Open", URL="javascript:Action.stateClicked(\"GarageDoor^*^status^*^Open\")"]; // End State: Open // State: Closing GarageDoor_status_Closing [label = Closing,style = "filled, rounded", fillcolor ="#008000", tooltip = "Class GarageDoor, SM status, State Closing", URL="javascript:Action.stateClicked(\"GarageDoor^*^status^*^Closing\")"]; // End State: Closing // State: Closed GarageDoor_status_Closed [label = Closed,style = "filled, rounded", fillcolor ="#FF0000", tooltip = "Class GarageDoor, SM status, State Closed", URL="javascript:Action.stateClicked(\"GarageDoor^*^status^*^Closed\")"]; // End State: Closed // State: Opening GarageDoor_status_Opening [label = Opening,style = "filled, rounded", fillcolor ="#FFA500", tooltip = "Class GarageDoor, SM status, State Opening", URL="javascript:Action.stateClicked(\"GarageDoor^*^status^*^Opening\")"]; // End State: Opening // State: HalfOpen GarageDoor_status_HalfOpen [label = HalfOpen,style = "filled, rounded", fillcolor ="#FFC0CB", tooltip = "Class GarageDoor, SM status, State HalfOpen", URL="javascript:Action.stateClicked(\"GarageDoor^*^status^*^HalfOpen\")"]; // End State: HalfOpen // End Top and Bottom Level StateMachine: status // All transitions start_GarageDoor_status -> GarageDoor_status_Open [ tooltip = "start to Open", URL="javascript:Action.transitionClicked(\"null\")" ] ; GarageDoor_status_Opening -> GarageDoor_status_Open [ label = "reachTop", tooltip = "From Opening to Open on reachTop", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*reachTop*^*Opening*^*Open*^*\")" ] ; GarageDoor_status_Open -> GarageDoor_status_Closing [ label = "buttonOrObstacle", tooltip = "From Open to Closing on buttonOrObstacle", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*Open*^*Closing*^*\")" ] ; GarageDoor_status_Closing -> GarageDoor_status_Closed [ label = "reachBottom", tooltip = "From Closing to Closed on reachBottom", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*reachBottom*^*Closing*^*Closed*^*\")" ] ; GarageDoor_status_Closing -> GarageDoor_status_Opening [ label = "buttonOrObstacle", tooltip = "From Closing to Opening on buttonOrObstacle", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*Closing*^*Opening*^*\")" ] ; GarageDoor_status_Closed -> GarageDoor_status_Opening [ label = "buttonOrObstacle", tooltip = "From Closed to Opening on buttonOrObstacle", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*Closed*^*Opening*^*\")" ] ; GarageDoor_status_HalfOpen -> GarageDoor_status_Opening [ label = "buttonOrObstacle", tooltip = "From HalfOpen to Opening on buttonOrObstacle", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*HalfOpen*^*Opening*^*\")" ] ; GarageDoor_status_Opening -> GarageDoor_status_HalfOpen [ label = "buttonOrObstacle", tooltip = "From Opening to HalfOpen on buttonOrObstacle", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*Opening*^*HalfOpen*^*\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "Activity5State" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 Activity: doThisContinuouslyWhileOn1(); doThisContinuouslyWhileOn2(); doThisContinuouslyWhileOn3(); doThisContinuouslyWhileOn4(); doThisContinuouslyWhileOn5();", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s2 [ tooltip = "start to s2", URL="javascript:Action.transitionClicked(\"null\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "GuardedAutoTransition" { compound = true; // Class: X // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_X_sm [ tooltip = "Class X, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s1 X_sm_s1 [label = s1, tooltip = "Class X, SM sm, State s1 Entry: System.out.println("Starting first sleep"); Activity: Thread.sleep(2000); System.out.println("Ending first sleep");", URL="javascript:Action.stateClicked(\"X^*^sm^*^s1\")"]; // End State: s1 // State: s2 X_sm_s2 [label = s2, tooltip = "Class X, SM sm, State s2 Entry: System.out.println("Starting second sleep"); Activity: Thread.sleep(2000); System.out.println("Ending second sleep");", URL="javascript:Action.stateClicked(\"X^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_X_sm -> X_sm_s1 [ tooltip = "start to s1", URL="javascript:Action.transitionClicked(\"null\")" ] ; X_sm_s1 -> X_sm_s2 [ label = "[guard]", tooltip = "From s1 to s2 automatically Guard: [guard]", URL="javascript:Action.transitionClicked(\"X*^*sm*^**^*s1*^*s2*^*[guard]\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "ParameterTransition" { compound = true; // Class: X // Top and Bottom Level StateMachine: stateMachine1 subgraph clusterX_stateMachine1 { label = "sm X stateMachine1"; penwidth=0.5; // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_X_stateMachine1 [ tooltip = "Class X, SM stateMachine1, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s1a X_stateMachine1_s1a [label = s1a, tooltip = "Class X, SM stateMachine1, State s1a Activity: // This do activity sends events to stateMachine1 e(5); Thread.sleep(1000); e(6); Thread.sleep(1000); ...", URL="javascript:Action.stateClicked(\"X^*^stateMachine1^*^s1a\")"]; // End State: s1a // State: s1b X_stateMachine1_s1b [label = s1b, tooltip = "Class X, SM stateMachine1, State s1b", URL="javascript:Action.stateClicked(\"X^*^stateMachine1^*^s1b\")"]; // End State: s1b // End Top and Bottom Level StateMachine: stateMachine1 } // Top and Bottom Level StateMachine: stateMachine2 subgraph clusterX_stateMachine2 { label = "sm X stateMachine2"; penwidth=0.5; // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_X_stateMachine2 [ tooltip = "Class X, SM stateMachine2, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s2a X_stateMachine2_s2a [label = s2a, tooltip = "Class X, SM stateMachine2, State s2a Entry: System.out.println("s2a");", URL="javascript:Action.stateClicked(\"X^*^stateMachine2^*^s2a\")"]; // End State: s2a // State: s2b X_stateMachine2_s2b [label = s2b, tooltip = "Class X, SM stateMachine2, State s2b Entry: System.out.println("s2b");", URL="javascript:Action.stateClicked(\"X^*^stateMachine2^*^s2b\")"]; // End State: s2b // End Top and Bottom Level StateMachine: stateMachine2 } // All transitions start_X_stateMachine1 -> X_stateMachine1_s1a [ tooltip = "start to s1a", URL="javascript:Action.transitionClicked(\"null\")" ] ; X_stateMachine1_s1a -> X_stateMachine1_s1b [ tooltip = "From s1a to s1b automatically", URL="javascript:Action.transitionClicked(\"X*^*stateMachine1*^**^*s1a*^*s1b*^*\")" ] ; start_X_stateMachine2 -> X_stateMachine2_s2a [ tooltip = "start to s2a", URL="javascript:Action.transitionClicked(\"null\")" ] ; X_stateMachine2_s2b -> X_stateMachine2_s2a [ label = "e(int a) / {...}", tooltip = "From s2b to s2a on e(int a) Transition Action: System.out.println("e"+a);", URL="javascript:Action.transitionClicked(\"X*^*stateMachine2*^*e(int a)*^*s2b*^*s2a*^*\")" ] ; X_stateMachine2_s2a -> X_stateMachine2_s2b [ label = "e(int a) [a > 6] / {...}", tooltip = "From s2a to s2b on e(int a) Guard: [a > 6] Transition Action: System.out.println("e"+a);", URL="javascript:Action.transitionClicked(\"X*^*stateMachine2*^*e(int a)*^*s2a*^*s2b*^* [a > 6]\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "EntryMore5State" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 Entry: doEntry1(); doEntry2(); doEntry3(); doEntry4(); doEntry5(); ...", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s2 [ tooltip = "start to s2", URL="javascript:Action.transitionClicked(\"null\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "Entry5State" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 Entry: doEntry1(); doEntry2(); doEntry3(); doEntry4(); doEntry5();", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s2 [ tooltip = "start to s2", URL="javascript:Action.transitionClicked(\"null\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "EntryLess5State" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s2 A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 Entry: doEntry();", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s2 [ tooltip = "start to s2", URL="javascript:Action.transitionClicked(\"null\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "ColouredDerivedState" { compound = true; // Class: LightBulb // Top and Bottom Level StateMachine: state // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_LightBulb_state [ tooltip = "Class LightBulb, SM state, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: Off LightBulb_state_Off [label = Off,style = "filled, rounded", fillcolor ="red", tooltip = "Class LightBulb, SM state, State Off", URL="javascript:Action.stateClicked(\"LightBulb^*^state^*^Off\")"]; // End State: Off // State: On LightBulb_state_On [label = On,style = "filled, rounded", fillcolor ="yellow", tooltip = "Class LightBulb, SM state, State On", URL="javascript:Action.stateClicked(\"LightBulb^*^state^*^On\")"]; // End State: On // End Top and Bottom Level StateMachine: state // All transitions start_LightBulb_state -> LightBulb_state_Off [ tooltip = "start to Off", URL="javascript:Action.transitionClicked(\"null\")" ] ; LightBulb_state_On -> LightBulb_state_Off [ label = "turnOff", tooltip = "From On to Off on turnOff", URL="javascript:Action.transitionClicked(\"LightBulb*^*state*^*turnOff*^*On*^*Off*^*\")" ] ; LightBulb_state_Off -> LightBulb_state_On [ label = "turnOn", tooltip = "From Off to On on turnOn", URL="javascript:Action.transitionClicked(\"LightBulb*^*state*^*turnOn*^*Off*^*On*^*\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "TimedTransition" { compound = true; // Class: X // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_X_sm [ tooltip = "Class X, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: a X_sm_a [label = a, tooltip = "Class X, SM sm, State a Entry: System.out.println("entering a");", URL="javascript:Action.stateClicked(\"X^*^sm^*^a\")"]; // End State: a // State: b X_sm_b [label = b, tooltip = "Class X, SM sm, State b Entry: System.out.println("entering b");", URL="javascript:Action.stateClicked(\"X^*^sm^*^b\")"]; // End State: b // End Top and Bottom Level StateMachine: sm // All transitions start_X_sm -> X_sm_a [ tooltip = "start to a", URL="javascript:Action.transitionClicked(\"null\")" ] ; X_sm_a -> X_sm_b [ label = "after(1)", tooltip = "From a to b after(1)", URL="javascript:Action.transitionClicked(\"X*^*sm*^*after(1)*^*a*^*b*^*\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "AutoTransition" { compound = true; // Class: X // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_X_sm [ tooltip = "Class X, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s1 X_sm_s1 [label = s1, tooltip = "Class X, SM sm, State s1 Entry: System.out.println("Starting first sleep"); Activity: Thread.sleep(2000); System.out.println("Ending first sleep");", URL="javascript:Action.stateClicked(\"X^*^sm^*^s1\")"]; // End State: s1 // State: s2 X_sm_s2 [label = s2, tooltip = "Class X, SM sm, State s2 Entry: System.out.println("Starting second sleep"); Activity: Thread.sleep(2000); System.out.println("Ending second sleep");", URL="javascript:Action.stateClicked(\"X^*^sm^*^s2\")"]; // End State: s2 // End Top and Bottom Level StateMachine: sm // All transitions start_X_sm -> X_sm_s1 [ tooltip = "start to s1", URL="javascript:Action.transitionClicked(\"null\")" ] ; X_sm_s1 -> X_sm_s2 [ tooltip = "From s1 to s2 automatically", URL="javascript:Action.transitionClicked(\"X*^*sm*^**^*s1*^*s2*^*\")" ] ; } // Code generated by Umple 1.35.0.7523.c616a4dce digraph "TransitionSelf" { compound = true; // Class: A // Top and Bottom Level StateMachine: sm // Start states are shown as a black circle node [ratio="auto" shape = point, fillcolor="black", width=0.2 ]; start_A_sm [ tooltip = "Class A, SM sm, State start" ]; // Format for normal states node [ratio="auto" shape = rectangle, width=1,style=rounded]; // State: s1 A_sm_s1 [label = s1, tooltip = "Class A, SM sm, State s1", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"]; // End State: s1 // End Top and Bottom Level StateMachine: sm // All transitions start_A_sm -> A_sm_s1 [ tooltip = "start to s1", URL="javascript:Action.transitionClicked(\"null\")" ] ; A_sm_s1 -> A_sm_s1 [ label = "e1", tooltip = "From s1 to s1 on e1", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s1*^*\")" ] ; }