// Code generated by Umple 1.37.0.8597.21f52b4e3
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 This is the default initial state and is entered when the object is created. On e1, transitions to s2.", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"];
// End State: s1
// State: s2
A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 This state is entered when event e1 occurs while in state s1.", 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(); When e1 occurs in state s1, transitions to s2.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
digraph "NLMultilineComments" {
compound = true;
// Class: X
// Top and Bottom Level StateMachine: sm1
// Start states are shown as a black circle
node [ratio="auto" shape = point, fillcolor="black", width=0.2 ];
start_X_sm1 [ tooltip = "Class X, SM sm1, State start" ];
// Format for normal states
node [ratio="auto" shape = rectangle, width=1,style=rounded];
// State: s1
X_sm1_s1 [label = s1, tooltip = "Class X, SM sm1, State s1 This is a multiline comment for state s1 This is the default initial state and is entered when the object is created. This state is entered when event e2 occurs while in state s2. On e1, transitions to s2.", URL="javascript:Action.stateClicked(\"X^*^sm1^*^s1\")"];
// End State: s1
// State: s2
X_sm1_s2 [label = s2, tooltip = "Class X, SM sm1, State s2 This state is entered when event e1 occurs while in state s1. On e2, transitions to s1.", URL="javascript:Action.stateClicked(\"X^*^sm1^*^s2\")"];
// End State: s2
// End Top and Bottom Level StateMachine: sm1
// All transitions
start_X_sm1 -> X_sm1_s1 [ tooltip = "start to s1", URL="javascript:Action.transitionClicked(\"null\")" ] ;
X_sm1_s2 -> X_sm1_s1 [ label = "e2", tooltip = "From s2 to s1 on e2 When e2 occurs in state s2, transitions to s1.", URL="javascript:Action.transitionClicked(\"X*^*sm1*^*e2*^*s2*^*s1*^*\")" ] ;
X_sm1_s1 -> X_sm1_s2 [ label = "e1", tooltip = "From s1 to s2 on e1 Multiline comment for e1 transition When e1 occurs in state s1, transitions to s2.", URL="javascript:Action.transitionClicked(\"X*^*sm1*^*e1*^*s1*^*s2*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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 This is the default initial state and is entered when the object is created. This state is entered when event reachTop occurs while in state Opening. On buttonOrObstacle, transitions to Closing.", URL="javascript:Action.stateClicked(\"GarageDoor^*^status^*^Open\")"];
// End State: Open
// State: Closing
GarageDoor_status_Closing [label = Closing, tooltip = "Class GarageDoor, SM status, State Closing This state is entered when event buttonOrObstacle occurs while in state Open. On buttonOrObstacle, transitions to Opening. On reachBottom, transitions to Closed.", URL="javascript:Action.stateClicked(\"GarageDoor^*^status^*^Closing\")"];
// End State: Closing
// State: Closed
GarageDoor_status_Closed [label = Closed, tooltip = "Class GarageDoor, SM status, State Closed This state is entered when event reachBottom occurs while in state Closing. On buttonOrObstacle, transitions to Opening.", URL="javascript:Action.stateClicked(\"GarageDoor^*^status^*^Closed\")"];
// End State: Closed
// State: Opening
GarageDoor_status_Opening [label = Opening, tooltip = "Class GarageDoor, SM status, State Opening This state is entered when event buttonOrObstacle occurs while in state Closing. This state is entered when event buttonOrObstacle occurs while in state Closed. This state is entered when event buttonOrObstacle occurs while in state HalfOpen. On buttonOrObstacle, transitions to HalfOpen. On reachTop, transitions to Open.", URL="javascript:Action.stateClicked(\"GarageDoor^*^status^*^Opening\")"];
// End State: Opening
// State: HalfOpen
GarageDoor_status_HalfOpen [label = HalfOpen, tooltip = "Class GarageDoor, SM status, State HalfOpen This state is entered when event buttonOrObstacle occurs while in state Opening. On buttonOrObstacle, transitions to Opening.", 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 When reachTop occurs in state Opening, transitions to Open.", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*reachTop*^*Opening*^*Open*^*\")" ] ;
GarageDoor_status_Open -> GarageDoor_status_Closing [ label = "buttonOrObstacle", tooltip = "From Open to Closing on buttonOrObstacle When buttonOrObstacle occurs in state Open, transitions to Closing.", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*Open*^*Closing*^*\")" ] ;
GarageDoor_status_Closing -> GarageDoor_status_Closed [ label = "reachBottom", tooltip = "From Closing to Closed on reachBottom When reachBottom occurs in state Closing, transitions to Closed.", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*reachBottom*^*Closing*^*Closed*^*\")" ] ;
GarageDoor_status_Closing -> GarageDoor_status_Opening [ label = "buttonOrObstacle", tooltip = "From Closing to Opening on buttonOrObstacle When buttonOrObstacle occurs in state Closing, transitions to Opening.", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*Closing*^*Opening*^*\")" ] ;
GarageDoor_status_Closed -> GarageDoor_status_Opening [ label = "buttonOrObstacle", tooltip = "From Closed to Opening on buttonOrObstacle When buttonOrObstacle occurs in state Closed, transitions to Opening.", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*Closed*^*Opening*^*\")" ] ;
GarageDoor_status_HalfOpen -> GarageDoor_status_Opening [ label = "buttonOrObstacle", tooltip = "From HalfOpen to Opening on buttonOrObstacle When buttonOrObstacle occurs in state HalfOpen, transitions to Opening.", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*HalfOpen*^*Opening*^*\")" ] ;
GarageDoor_status_Opening -> GarageDoor_status_HalfOpen [ label = "buttonOrObstacle", tooltip = "From Opening to HalfOpen on buttonOrObstacle When buttonOrObstacle occurs in state Opening, transitions to HalfOpen.", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*Opening*^*HalfOpen*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
digraph "NLInitialState" {
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 This is the default initial state and is entered when the object is created. This state is entered when event e2 occurs while in state s2. On e1, transitions to s2.", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"];
// End State: s1
// State: s2
A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 This state is entered when event e1 occurs while in state s1. On e2, transitions to s1.", 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_s2 -> A_sm_s1 [ label = "e2", tooltip = "From s2 to s1 on e2 When e2 occurs in state s2, transitions to s1.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e2*^*s2*^*s1*^*\")" ] ;
A_sm_s1 -> A_sm_s2 [ label = "e1", tooltip = "From s1 to s2 on e1 When e1 occurs in state s1, transitions to s2.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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 This is the default initial state and is entered when the object is created. On e1, transitions to s2.", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"];
// End State: s1
// State: s2
A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 This state is entered when event e1 occurs while in state s1.", 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(); When e1 occurs in state s1, transitions to s2.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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 This is the default initial state and is entered when the object is created. On e1 if guard [guard()], transitions to s2.", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"];
// End State: s1
// State: s2
A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 This state is entered when event e1 occurs while in state s1 when guard [guard()] is true.", 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()] When e1 occurs in state s1, transitions to s2 if guard [guard()].", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^* [guard()]\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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 This is the default initial state and is entered when the object is created. On e1, transitions to s2.", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"];
// End State: s1
// State: s2
A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 This state is entered when event e1 occurs while in state s1.", 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 When e1 occurs in state s1, transitions to s2.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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 This is the default initial state and is entered when the object is created. On e1, transitions to s2.", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"];
// End State: s1
// State: s2
A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 This state is entered when event e1 occurs while in state s1.", 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 When e1 occurs in state s1, transitions to s2.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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();
... This is the default initial state and is entered when the object is created. A do activity runs in a separate thread until completion or state exit.", 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.37.0.8597.21f52b4e3
digraph "NLAnnotationComments" {
compound = true;
// Class: X
// Top and Bottom Level StateMachine: sm1
// Start states are shown as a black circle
node [ratio="auto" shape = point, fillcolor="black", width=0.2 ];
start_X_sm1 [ tooltip = "Class X, SM sm1, State start" ];
// Format for normal states
node [ratio="auto" shape = rectangle, width=1,style=rounded];
// State: s1
X_sm1_s1 [label = s1, tooltip = "Class X, SM sm1, State s1 Javadoc-style comment for state s1 This is the default initial state and is entered when the object is created. This state is entered when event e2 occurs while in state s2. On e1, transitions to s2.", URL="javascript:Action.stateClicked(\"X^*^sm1^*^s1\")"];
// End State: s1
// State: s2
X_sm1_s2 [label = s2, tooltip = "Class X, SM sm1, State s2 This state is entered when event e1 occurs while in state s1. On e2, transitions to s1.", URL="javascript:Action.stateClicked(\"X^*^sm1^*^s2\")"];
// End State: s2
// End Top and Bottom Level StateMachine: sm1
// All transitions
start_X_sm1 -> X_sm1_s1 [ tooltip = "start to s1", URL="javascript:Action.transitionClicked(\"null\")" ] ;
X_sm1_s2 -> X_sm1_s1 [ label = "e2", tooltip = "From s2 to s1 on e2 When e2 occurs in state s2, transitions to s1.", URL="javascript:Action.transitionClicked(\"X*^*sm1*^*e2*^*s2*^*s1*^*\")" ] ;
X_sm1_s1 -> X_sm1_s2 [ label = "e1", tooltip = "From s1 to s2 on e1 Javadoc-style comment for e1 transition When e1 occurs in state s1, transitions to s2.", URL="javascript:Action.transitionClicked(\"X*^*sm1*^*e1*^*s1*^*s2*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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 This is the default initial state and is entered when the object is created. This state is entered when event turnOff occurs while in state Running.state.Stopped. On turnOn, transitions to Running.", URL="javascript:Action.stateClicked(\"Car^*^state^*^Off\")"];
// End State: Off
// State: Running
subgraph clusterCar_state_Running {
label = "Running";
style = "filled, rounded" fillcolor ="lightgreen"
tooltip = "Class Car, SM state, State Running This state is entered when event turnOn occurs while in state Off.";
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"
tooltip = "Class Car, SM state, State Running.state This is the default initial state when entering state Running. This state is entered when event turnOn occurs while in state Off.";
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 This is the default initial state when entering state Running.state. This state is entered when event decelerate occurs while in state Running.state.Moving. This state is entered when event turnOn occurs while in state Off. On accelerate, transitions to Running.state.Moving.", 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 This state is entered when event accelerate occurs while in state Running.state.Idle. This state is entered when event accelerate occurs while in state Running.state.Stopped. On decelerate, transitions to Running.state.Idle. On stop, transitions to Running.state.Stopped.", 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 This state is entered when event stop occurs while in state Running.state.Moving. On accelerate, transitions to Running.state.Moving. On turnOff, transitions to Off.", 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 When turnOff occurs in state Running.state.Stopped, transitions to Off.", 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 When turnOn occurs in state Off, transitions to Running.", 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 When decelerate occurs in state Running.state.Moving, transitions to Running.state.Idle.", 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 When accelerate occurs in state Running.state.Idle, transitions to Running.state.Moving.", 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 When accelerate occurs in state Running.state.Stopped, transitions to Running.state.Moving.", 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 When stop occurs in state Running.state.Moving, transitions to Running.state.Stopped.", URL="javascript:Action.transitionClicked(\"Car*^*state*^*stop*^*Running.state.Moving*^*Running.state.Stopped*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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();
... This is the default initial state and is entered when the object is created. On exit from this state an exit action is executed.", 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.37.0.8597.21f52b4e3
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 This is the default initial state and is entered when the object is created.", 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.37.0.8597.21f52b4e3
digraph "NLDeeplyNestedState" {
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 This is the default initial state and is entered when the object is created. This state is entered when event e3 occurs while in state s2.s2a.s2a2. On e1, transitions to s2.", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"];
// End State: s1
// State: s2
subgraph clusterA_sm_s2 {
label = "s2";
style = rounded;
tooltip = "Class A, SM sm, State s2 This state is entered when event e1 occurs while in state s1.";
URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")";
// 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
subgraph clusterA_smS2_s2a {
label = "s2a";
style = rounded;
tooltip = "Class A, SM sm, State s2.s2a This is the default initial state when entering state s2. This state is entered when event e1 occurs while in state s1.";
URL="javascript:Action.stateClicked(\"A^*^sm^*^s2.s2a\")";
// Bottom Level StateMachine: s2a
// Start states are shown as a black circle
node [ratio="auto" shape = point, fillcolor="black", width=0.2 ];
start_A_smS2S2a [ tooltip = "Class A, SM sm, State s2.s2a.start" ];
// Format for normal states
node [ratio="auto" shape = rectangle, width=1,style=rounded];
// State: s2a1
A_smS2S2a_s2a1 [label = s2a1, tooltip = "Class A, SM sm, State s2.s2a.s2a1 This is the default initial state when entering state s2.s2a. This state is entered when event e1 occurs while in state s1. On e2, transitions to s2.s2a.s2a2.", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2.s2a.s2a1\")"];
// End State: s2a1
// State: s2a2
A_smS2S2a_s2a2 [label = s2a2, tooltip = "Class A, SM sm, State s2.s2a.s2a2 This state is entered when event e2 occurs while in state s2.s2a.s2a1. On e3, transitions to s1.", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2.s2a.s2a2\")"];
// End State: s2a2
// End Bottom Level StateMachine: s2a
}
// End State: s2a
// End 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_smS2S2a_s2a2 -> A_sm_s1 [ label = "e3", tooltip = "From s2.s2a.s2a2 to s1 on e3 When e3 occurs in state s2.s2a.s2a2, transitions to s1.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e3*^*s2.s2a.s2a2*^*s1*^*\")" ] ;
A_sm_s1 -> A_smS2S2a_s2a1 [ lhead=clusterA_sm_s2, label = "e1", tooltip = "From s1 to s2 on e1 When e1 occurs in state s1, transitions to s2.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^*\")" ] ;
start_A_smS2 -> A_smS2S2a_s2a1 [ lhead=clusterA_smS2_s2a, tooltip = "start to s2.s2a", URL="javascript:Action.transitionClicked(\"null\")" ] ;
start_A_smS2S2a -> A_smS2S2a_s2a1 [ tooltip = "start to s2.s2a.s2a1", URL="javascript:Action.transitionClicked(\"null\")" ] ;
A_smS2S2a_s2a1 -> A_smS2S2a_s2a2 [ label = "e2", tooltip = "From s2.s2a.s2a1 to s2.s2a.s2a2 on e2 When e2 occurs in state s2.s2a.s2a1, transitions to s2.s2a.s2a2.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e2*^*s2.s2a.s2a1*^*s2.s2a.s2a2*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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(); This is the default initial state and is entered when the object is created. A do activity runs in a separate thread until completion or state exit.", 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.37.0.8597.21f52b4e3
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 This is the default initial state and is entered when the object is created. On e1, transitions to s2.", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"];
// End State: s1
// State: s2
A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 This state is entered when event e1 occurs while in state s1.", 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();
... When e1 occurs in state s1, transitions to s2.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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(); This is the default initial state and is entered when the object is created. On exit from this state an exit action is executed.", 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.37.0.8597.21f52b4e3
digraph "NLMultipleTransitions" {
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 This is the default initial state and is entered when the object is created. This state is entered when event e3 occurs while in state s2. This state is entered when event e1 occurs while in state s3. On e1, transitions to s2. On e2, transitions to s3.", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"];
// End State: s1
// State: s2
A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 This state is entered when event e1 occurs while in state s1. This state is entered when event e2 occurs while in state s3. On e3, transitions to s1.", URL="javascript:Action.stateClicked(\"A^*^sm^*^s2\")"];
// End State: s2
// State: s3
A_sm_s3 [label = s3, tooltip = "Class A, SM sm, State s3 This state is entered when event e2 occurs while in state s1. On e1, transitions to s1. On e2, transitions to s2.", URL="javascript:Action.stateClicked(\"A^*^sm^*^s3\")"];
// End State: s3
// 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_s2 -> A_sm_s1 [ label = "e3", tooltip = "From s2 to s1 on e3 When e3 occurs in state s2, transitions to s1.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e3*^*s2*^*s1*^*\")" ] ;
A_sm_s3 -> A_sm_s1 [ label = "e1", tooltip = "From s3 to s1 on e1 When e1 occurs in state s3, transitions to s1.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s3*^*s1*^*\")" ] ;
A_sm_s1 -> A_sm_s2 [ label = "e1", tooltip = "From s1 to s2 on e1 When e1 occurs in state s1, transitions to s2.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^*\")" ] ;
A_sm_s3 -> A_sm_s2 [ label = "e2", tooltip = "From s3 to s2 on e2 When e2 occurs in state s3, transitions to s2.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e2*^*s3*^*s2*^*\")" ] ;
A_sm_s1 -> A_sm_s3 [ label = "e2", tooltip = "From s1 to s3 on e2 When e2 occurs in state s1, transitions to s3.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e2*^*s1*^*s3*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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 This is the default initial state and is entered when the object is created. This state is entered when event e1 occurs while in state s2. On e1, transitions to s2. On e2, transitions to s2.s2b.", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"];
// End State: s1
// State: s2
subgraph clusterA_sm_s2 {
label = "s2";
style = rounded;
tooltip = "Class A, SM sm, State s2 This state is entered when event e1 occurs while in state s1. On e1, transitions to s1.";
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 This is the default initial state when entering state s2. This state is entered when event e3 occurs while in state s2.s2b. This state is entered when event e1 occurs while in state s1. On e3, transitions to s2.s2b.", 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 This state is entered when event e2 occurs while in state s1. This state is entered when event e3 occurs while in state s2.s2a. On e3, transitions to s2.s2a.", 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 When e1 occurs in state s2, transitions to s1.", 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 When e1 occurs in state s1, transitions to s2.", 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 When e3 occurs in state s2.s2b, transitions to s2.s2a.", 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 When e2 occurs in state s1, transitions to s2.s2b.", 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 When e3 occurs in state s2.s2a, transitions to s2.s2b.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e3*^*s2.s2a*^*s2.s2b*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
digraph "NLTimerGuardEntry" {
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 Entry:
doEntry(); This is the default initial state and is entered when the object is created. On entry into this state an entry action is executed. After 5000 millisecond(s) if guard [isReady()], transitions to s2.", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"];
// End State: s1
// State: s2
A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 This state is entered after 5000 millisecond(s) while in state s1 when guard [isReady()] is true.", 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 = "after(5) [isReady()]", tooltip = "From s1 to s2 after(5) Guard: [isReady()] After 5000 millisecond(s) in state s1, transitions to s2 if guard [isReady()].", URL="javascript:Action.transitionClicked(\"A*^*sm*^*after(5)*^*s1*^*s2*^* [isReady()]\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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;
tooltip = "Class A, SM sm, State s2 This is the default initial state and is entered when the object is created.";
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 This is the default initial state when entering state s2 and is entered when the object is created.", 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.37.0.8597.21f52b4e3
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 This is the default initial state and is entered when the object is created. On e1, transitions to s2.", URL="javascript:Action.stateClicked(\"A^*^sm^*^s1\")"];
// End State: s1
// State: s2
A_sm_s2 [label = s2, tooltip = "Class A, SM sm, State s2 This state is entered when event e1 occurs while in state s1.", 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 When e1 occurs in state s1, transitions to s2.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s2*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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(); This is the default initial state and is entered when the object is created. On exit from this state an exit action is executed.", 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.37.0.8597.21f52b4e3
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 This is the default initial state and is entered when the object is created. On entry into this state an entry action is executed. On exit from this state an exit action is executed.", 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.37.0.8597.21f52b4e3
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 This is the default initial state and is entered when the object is created. This state is entered when event reachTop occurs while in state Opening. On buttonOrObstacle, transitions to Closing.", 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 This state is entered when event buttonOrObstacle occurs while in state Open. On buttonOrObstacle, transitions to Opening. On reachBottom, transitions to Closed.", 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 This state is entered when event reachBottom occurs while in state Closing. On buttonOrObstacle, transitions to Opening.", 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 This state is entered when event buttonOrObstacle occurs while in state Closing. This state is entered when event buttonOrObstacle occurs while in state Closed. This state is entered when event buttonOrObstacle occurs while in state HalfOpen. On buttonOrObstacle, transitions to HalfOpen. On reachTop, transitions to Open.", 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 This state is entered when event buttonOrObstacle occurs while in state Opening. On buttonOrObstacle, transitions to Opening.", 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 When reachTop occurs in state Opening, transitions to Open.", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*reachTop*^*Opening*^*Open*^*\")" ] ;
GarageDoor_status_Open -> GarageDoor_status_Closing [ label = "buttonOrObstacle", tooltip = "From Open to Closing on buttonOrObstacle When buttonOrObstacle occurs in state Open, transitions to Closing.", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*Open*^*Closing*^*\")" ] ;
GarageDoor_status_Closing -> GarageDoor_status_Closed [ label = "reachBottom", tooltip = "From Closing to Closed on reachBottom When reachBottom occurs in state Closing, transitions to Closed.", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*reachBottom*^*Closing*^*Closed*^*\")" ] ;
GarageDoor_status_Closing -> GarageDoor_status_Opening [ label = "buttonOrObstacle", tooltip = "From Closing to Opening on buttonOrObstacle When buttonOrObstacle occurs in state Closing, transitions to Opening.", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*Closing*^*Opening*^*\")" ] ;
GarageDoor_status_Closed -> GarageDoor_status_Opening [ label = "buttonOrObstacle", tooltip = "From Closed to Opening on buttonOrObstacle When buttonOrObstacle occurs in state Closed, transitions to Opening.", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*Closed*^*Opening*^*\")" ] ;
GarageDoor_status_HalfOpen -> GarageDoor_status_Opening [ label = "buttonOrObstacle", tooltip = "From HalfOpen to Opening on buttonOrObstacle When buttonOrObstacle occurs in state HalfOpen, transitions to Opening.", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*HalfOpen*^*Opening*^*\")" ] ;
GarageDoor_status_Opening -> GarageDoor_status_HalfOpen [ label = "buttonOrObstacle", tooltip = "From Opening to HalfOpen on buttonOrObstacle When buttonOrObstacle occurs in state Opening, transitions to HalfOpen.", URL="javascript:Action.transitionClicked(\"GarageDoor*^*status*^*buttonOrObstacle*^*Opening*^*HalfOpen*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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(); This is the default initial state and is entered when the object is created. A do activity runs in a separate thread until completion or state exit.", 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.37.0.8597.21f52b4e3
digraph "NLNestedStateComments" {
compound = true;
// Class: X
// Top Level StateMachine: sm1
// Start states are shown as a black circle
node [ratio="auto" shape = point, fillcolor="black", width=0.2 ];
start_X_sm1 [ tooltip = "Class X, SM sm1, State start" ];
// Format for normal states
node [ratio="auto" shape = rectangle, width=1,style=rounded];
// State: s1
subgraph clusterX_sm1_s1 {
label = "s1";
style = rounded;
tooltip = "Class X, SM sm1, State s1 Comment on outer state s1 This is the default initial state and is entered when the object is created. This state is entered when event e4 occurs while in state s2.";
URL="javascript:Action.stateClicked(\"X^*^sm1^*^s1\")";
// Bottom Level StateMachine: s1
// Start states are shown as a black circle
node [ratio="auto" shape = point, fillcolor="black", width=0.2 ];
start_X_sm1S1 [ tooltip = "Class X, SM sm1, State s1.start" ];
// Format for normal states
node [ratio="auto" shape = rectangle, width=1,style=rounded];
// State: s1a
X_sm1S1_s1a [label = s1a, tooltip = "Class X, SM sm1, State s1.s1a Comment on nested state s1a This is the default initial state when entering state s1 and is entered when the object is created. This state is entered when event e2 occurs while in state s1.s1b. This state is entered when event e4 occurs while in state s2. On e1, transitions to s1.s1b.", URL="javascript:Action.stateClicked(\"X^*^sm1^*^s1.s1a\")"];
// End State: s1a
// State: s1b
X_sm1S1_s1b [label = s1b, tooltip = "Class X, SM sm1, State s1.s1b Comment on nested state s1b This state is entered when event e1 occurs while in state s1.s1a. On e2, transitions to s1.s1a. On e3, transitions to s2.", URL="javascript:Action.stateClicked(\"X^*^sm1^*^s1.s1b\")"];
// End State: s1b
// End Bottom Level StateMachine: s1
}
// End State: s1
// State: s2
X_sm1_s2 [label = s2, tooltip = "Class X, SM sm1, State s2 Comment on outer state s2 This state is entered when event e3 occurs while in state s1.s1b. On e4, transitions to s1.", URL="javascript:Action.stateClicked(\"X^*^sm1^*^s2\")"];
// End State: s2
// End Top Level StateMachine: sm1
// All transitions
start_X_sm1 -> X_sm1S1_s1a [ lhead=clusterX_sm1_s1, tooltip = "start to s1", URL="javascript:Action.transitionClicked(\"null\")" ] ;
X_sm1_s2 -> X_sm1S1_s1a [ lhead=clusterX_sm1_s1, label = "e4", tooltip = "From s2 to s1 on e4 When e4 occurs in state s2, transitions to s1.", URL="javascript:Action.transitionClicked(\"X*^*sm1*^*e4*^*s2*^*s1*^*\")" ] ;
start_X_sm1S1 -> X_sm1S1_s1a [ tooltip = "start to s1.s1a", URL="javascript:Action.transitionClicked(\"null\")" ] ;
X_sm1S1_s1b -> X_sm1S1_s1a [ label = "e2", tooltip = "From s1.s1b to s1.s1a on e2 When e2 occurs in state s1.s1b, transitions to s1.s1a.", URL="javascript:Action.transitionClicked(\"X*^*sm1*^*e2*^*s1.s1b*^*s1.s1a*^*\")" ] ;
X_sm1S1_s1a -> X_sm1S1_s1b [ label = "e1", tooltip = "From s1.s1a to s1.s1b on e1 Comment on nested transition e1 When e1 occurs in state s1.s1a, transitions to s1.s1b.", URL="javascript:Action.transitionClicked(\"X*^*sm1*^*e1*^*s1.s1a*^*s1.s1b*^*\")" ] ;
X_sm1S1_s1b -> X_sm1_s2 [ label = "e3", tooltip = "From s1.s1b to s2 on e3 When e3 occurs in state s1.s1b, transitions to s2.", URL="javascript:Action.transitionClicked(\"X*^*sm1*^*e3*^*s1.s1b*^*s2*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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"); This is the default initial state and is entered when the object is created. On entry into this state an entry action is executed. A do activity runs in a separate thread until completion or state exit. Exits automatically if guard [guard], transitions to s2.", 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"); This state is entered automatically from s1 when guard [guard] is true. On entry into this state an entry action is executed. A do activity runs in a separate thread until completion or state exit.", 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] Automatically transitions from s1 to s2 if guard [guard].", URL="javascript:Action.transitionClicked(\"X*^*sm*^**^*s1*^*s2*^*[guard]\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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);
... This is the default initial state and is entered when the object is created. A do activity runs in a separate thread until completion or state exit. Exits automatically, transitions to s1b.", URL="javascript:Action.stateClicked(\"X^*^stateMachine1^*^s1a\")"];
// End State: s1a
// State: s1b
X_stateMachine1_s1b [label = s1b, tooltip = "Class X, SM stateMachine1, State s1b This state is entered automatically from s1a.", 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"); This is the default initial state and is entered when the object is created. This state is entered when event e(int a) occurs while in state s2b. On entry into this state an entry action is executed. On e(int a) if guard [a > 6], transitions to s2b.", 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"); This state is entered when event e(int a) occurs while in state s2a when guard [a > 6] is true. On entry into this state an entry action is executed. On e(int a), transitions to s2a.", 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 Automatically transitions from s1a to s1b.", 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); When e(int a) occurs in state s2b, transitions to s2a.", 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); When e(int a) occurs in state s2a, transitions to s2b if guard [a > 6].", URL="javascript:Action.transitionClicked(\"X*^*stateMachine2*^*e(int a)*^*s2a*^*s2b*^* [a > 6]\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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();
... This is the default initial state and is entered when the object is created. On entry into this state an entry action is executed.", 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.37.0.8597.21f52b4e3
digraph "NLHideNaturalLanguage" {
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.37.0.8597.21f52b4e3
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(); This is the default initial state and is entered when the object is created. On entry into this state an entry action is executed.", 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.37.0.8597.21f52b4e3
digraph "NLStateComments" {
compound = true;
// Class: X
// Top and Bottom Level StateMachine: sm1
// Start states are shown as a black circle
node [ratio="auto" shape = point, fillcolor="black", width=0.2 ];
start_X_sm1 [ tooltip = "Class X, SM sm1, State start" ];
// Format for normal states
node [ratio="auto" shape = rectangle, width=1,style=rounded];
// State: s1
X_sm1_s1 [label = s1, tooltip = "Class X, SM sm1, State s1 This is the comment for state s1 It has two lines This is the default initial state and is entered when the object is created. This state is entered when event e3 occurs while in state s2. On e1, transitions to s2. On e2, transitions to s2.", URL="javascript:Action.stateClicked(\"X^*^sm1^*^s1\")"];
// End State: s1
// State: s2
X_sm1_s2 [label = s2, tooltip = "Class X, SM sm1, State s2 This is the comment for state s2 This state is entered when event e1 occurs while in state s1. This state is entered when event e2 occurs while in state s1. On e3, transitions to s1.", URL="javascript:Action.stateClicked(\"X^*^sm1^*^s2\")"];
// End State: s2
// End Top and Bottom Level StateMachine: sm1
// All transitions
start_X_sm1 -> X_sm1_s1 [ tooltip = "start to s1", URL="javascript:Action.transitionClicked(\"null\")" ] ;
X_sm1_s2 -> X_sm1_s1 [ label = "e3", tooltip = "From s2 to s1 on e3 When e3 occurs in state s2, transitions to s1.", URL="javascript:Action.transitionClicked(\"X*^*sm1*^*e3*^*s2*^*s1*^*\")" ] ;
X_sm1_s1 -> X_sm1_s2 [ label = "e1", tooltip = "From s1 to s2 on e1 This is the comment for the e1 transition to s2 When e1 occurs in state s1, transitions to s2.", URL="javascript:Action.transitionClicked(\"X*^*sm1*^*e1*^*s1*^*s2*^*\")" ] ;
X_sm1_s1 -> X_sm1_s2 [ label = "e2 / doSomething();", tooltip = "From s1 to s2 on e2 Transition Action:
doSomething(); This is the comment for the e2 transition When e2 occurs in state s1, transitions to s2.", URL="javascript:Action.transitionClicked(\"X*^*sm1*^*e2*^*s1*^*s2*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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(); This is the default initial state and is entered when the object is created. On entry into this state an entry action is executed.", 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.37.0.8597.21f52b4e3
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 This is the default initial state and is entered when the object is created. This state is entered when event turnOff occurs while in state On. On turnOn, transitions to On.", 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 This state is entered when event turnOn occurs while in state Off. On turnOff, transitions to Off.", 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 When turnOff occurs in state On, transitions to Off.", URL="javascript:Action.transitionClicked(\"LightBulb*^*state*^*turnOff*^*On*^*Off*^*\")" ] ;
LightBulb_state_Off -> LightBulb_state_On [ label = "turnOn", tooltip = "From Off to On on turnOn When turnOn occurs in state Off, transitions to On.", URL="javascript:Action.transitionClicked(\"LightBulb*^*state*^*turnOn*^*Off*^*On*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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"); This is the default initial state and is entered when the object is created. On entry into this state an entry action is executed. After 1000 millisecond(s), transitions to b.", 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"); This state is entered after 1000 millisecond(s) while in state a. On entry into this state an entry action is executed.", 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) After 1000 millisecond(s) in state a, transitions to b.", URL="javascript:Action.transitionClicked(\"X*^*sm*^*after(1)*^*a*^*b*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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"); This is the default initial state and is entered when the object is created. On entry into this state an entry action is executed. A do activity runs in a separate thread until completion or state exit. Exits automatically, transitions to s2.", 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"); This state is entered automatically from s1. On entry into this state an entry action is executed. A do activity runs in a separate thread until completion or state exit.", 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 Automatically transitions from s1 to s2.", URL="javascript:Action.transitionClicked(\"X*^*sm*^**^*s1*^*s2*^*\")" ] ;
}
// Code generated by Umple 1.37.0.8597.21f52b4e3
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 This is the default initial state and is entered when the object is created. This state is entered when event e1 occurs while in state s1. On e1, loops back to self.", 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 When e1 occurs in state s1, loops back to self.", URL="javascript:Action.transitionClicked(\"A*^*sm*^*e1*^*s1*^*s1*^*\")" ] ;
}