plantuml gets styles

This commit is contained in:
2026-06-12 08:42:54 +02:00
parent 5ebfbbbbdf
commit 9aa7e42960
24 changed files with 1188 additions and 426 deletions

View File

@@ -5,6 +5,9 @@ import click.kamil.springstatemachineexporter.model.Transition;
import click.kamil.springstatemachineexporter.model.TransitionType;
import click.kamil.springstatemachineexporter.ast.common.StringUtils;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
@@ -17,22 +20,19 @@ import java.util.stream.Collectors;
public class PlantUml implements StateMachineExporter {
private final List<String> choiceColors = List.of("FF6347", "4682B4", "32CD32", "FFD700", "6A5ACD", "FF69B4");
private String getColor(Transition t, String source, Map<String, String> choiceStateColorMap) {
if (t.getType() == null)
return "000000";
return switch (t.getType()) {
case CHOICE -> choiceStateColorMap.getOrDefault(source, "000000");
case EXTERNAL -> "1E90FF";
case INTERNAL -> "32CD32";
case LOCAL -> "FFA500";
case JUNCTION -> "FF69B4";
case JOIN -> "8A2BE2";
case FORK -> "20B2AA";
};
}
private final String LAMBDA = "λ";
private String loadBaseStyle() {
try (InputStream is = getClass().getResourceAsStream("/plantuml/default-style.puml")) {
if (is == null) return "";
return new BufferedReader(new InputStreamReader(is))
.lines()
.collect(Collectors.joining("\n"));
} catch (Exception e) {
return "";
}
}
@Override
public String export(String name,
List<Transition> transitions,
@@ -42,9 +42,21 @@ public class PlantUml implements StateMachineExporter {
StringBuilder sb = new StringBuilder();
sb.append("@startuml\n");
sb.append("skinparam state {\n");
sb.append(" BackgroundColor<<choice>> LightYellow\n");
sb.append("}\n\n");
String style = loadBaseStyle();
StringBuilder choiceColorStyles = new StringBuilder();
StringBuilder hideChoiceColors = new StringBuilder();
for (int i = 0; i < choiceColors.size(); i++) {
choiceColorStyles.append(" .choice_color_").append(i)
.append(" { LineColor #").append(choiceColors.get(i)).append(" }\n");
hideChoiceColors.append("hide <<choice_color_").append(i).append(">> stereotype\n");
}
style = style.replace("/* CHOICE_COLORS_PLACEHOLDER */", choiceColorStyles.toString());
style = style.replace("/* HIDE_CHOICE_COLORS_PLACEHOLDER */", hideChoiceColors.toString());
sb.append(style).append("\n");
for (String start : startStates) {
sb.append("[*] --> ").append(simplify(start)).append("\n");
@@ -60,12 +72,13 @@ public class PlantUml implements StateMachineExporter {
}
}
Map<String, String> choiceStateColorMap = new HashMap<>();
Map<String, String> choiceStateClassMap = new HashMap<>();
int colorIndex = 0;
for (String state : statesWithChoice) {
String className = "choice_color_" + (colorIndex % choiceColors.size());
sb.append("state ").append(state).append(" <<choice>>\n");
choiceStateColorMap.put(state, choiceColors.get(colorIndex % choiceColors.size()));
choiceStateClassMap.put(state, className);
colorIndex++;
}
@@ -80,6 +93,7 @@ public class PlantUml implements StateMachineExporter {
sb.append("\n");
Set<String> usedEventStereotypes = new HashSet<>();
for (Transition t : transitions) {
if (t.getSourceStates() == null || t.getSourceStates().isEmpty())
continue;
@@ -104,8 +118,15 @@ public class PlantUml implements StateMachineExporter {
String target = simplify(rawTarget);
String transitionSource = source;
String color = getColor(t, source, choiceStateColorMap);
sb.append(transitionSource).append(" -[#").append(color).append(",bold]-> ").append(target);
String styleClass = getStyleClass(t, source, choiceStateClassMap);
String color = getLegacyColor(t, source, choiceStateClassMap);
sb.append(transitionSource).append(" -[#").append(color).append(",bold]-> ").append(target).append(" <<").append(styleClass).append(">>");
if (t.getEvent() != null && !t.getEvent().isBlank()) {
String eventClass = "e_" + normalize(t.getEvent());
sb.append(" <<").append(eventClass).append(">>");
usedEventStereotypes.add(eventClass);
}
String label = buildLabel(t, useLambdaGuards);
if (!label.isEmpty()) {
@@ -116,6 +137,10 @@ public class PlantUml implements StateMachineExporter {
}
}
for (String eventClass : usedEventStereotypes) {
sb.append("hide <<").append(eventClass).append(">> stereotype\n");
}
sb.append("\n");
for (String end : endStates) {
sb.append(simplify(end)).append(" --> [*]\n");
@@ -125,6 +150,46 @@ public class PlantUml implements StateMachineExporter {
return sb.toString();
}
private String normalize(String name) {
if (name == null) return "";
return name.replaceAll("[^a-zA-Z0-9]", "_");
}
private String getLegacyColor(Transition t, String source, Map<String, String> choiceStateClassMap) {
if (t.getType() == null)
return "000000";
return switch (t.getType()) {
case CHOICE -> {
String className = choiceStateClassMap.get(source);
if (className != null && className.startsWith("choice_color_")) {
int index = Integer.parseInt(className.substring("choice_color_".length()));
yield choiceColors.get(index % choiceColors.size());
}
yield "000000";
}
case EXTERNAL -> "1E90FF";
case INTERNAL -> "32CD32";
case LOCAL -> "FFA500";
case JUNCTION -> "FF69B4";
case JOIN -> "8A2BE2";
case FORK -> "20B2AA";
};
}
private String getStyleClass(Transition t, String source, Map<String, String> choiceStateClassMap) {
if (t.getType() == null)
return "default";
return switch (t.getType()) {
case CHOICE -> choiceStateClassMap.getOrDefault(source, "choice_type");
case EXTERNAL -> "external";
case INTERNAL -> "internal";
case LOCAL -> "local";
case JUNCTION -> "junction";
case JOIN -> "join";
case FORK -> "fork";
};
}
@Override
public String getFileExtension() {
return ".puml";

View File

@@ -0,0 +1,144 @@
package click.kamil.springstatemachineexporter;
import click.kamil.springstatemachineexporter.exporter.PlantUml;
import click.kamil.springstatemachineexporter.exporter.StateMachineExporter;
import click.kamil.springstatemachineexporter.service.ExportService;
import click.kamil.springstatemachineexporter.utils.TestScenario;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.io.TempDir;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@Tag("render")
public class PlantUmlRenderTest {
private final List<StateMachineExporter> exporters = List.of(new PlantUml());
private final ExportService exportService = new ExportService(exporters);
private static List<TestScenario> provideTestScenarios() {
return List.of(
new TestScenario(
"Complex State Machine",
Path.of("../state_machines/complex_state_machine"),
Path.of("src/test/resources/golden/ComplexStateMachineConfig"),
"ComplexStateMachineConfig"
),
new TestScenario(
"Fork Join State Machine",
Path.of("../state_machines/forkjoin_state_machine"),
Path.of("src/test/resources/golden/ForkJoinStateMachineConfig"),
"ForkJoinStateMachineConfig"
),
new TestScenario(
"Kamil Enum State Machine",
Path.of("../state_machines/enumstate_state_machine"),
Path.of("src/test/resources/golden/KamilEnumStateMachineConfiguration"),
"KamilEnumStateMachineConfiguration"
),
new TestScenario(
"Simple Enum Join State Machine",
Path.of("../state_machines/simple_state_machine"),
Path.of("src/test/resources/golden/SimpleEnumStateMachineConfiguration"),
"SimpleEnumStateMachineConfiguration"
),
new TestScenario(
"One State Machine (Inheritance)",
Path.of("../state_machines/inheritance_state_machine"),
Path.of("src/test/resources/golden/OneStateMachineConfiguration"),
"OneStateMachineConfiguration"
),
new TestScenario(
"Two State Machine (Extra Functions)",
Path.of("../state_machines/inheritance_extra_functions_state_machine"),
Path.of("src/test/resources/golden/TwoStateMachineExtraFunctionsConfiguration"),
"TwoStateMachineConfiguration"
),
new TestScenario(
"Three State Machine (Extra Functions 2)",
Path.of("../state_machines/inheritance_extra_functions2_state_machine"),
Path.of("src/test/resources/golden/ThreeStateMachineConfiguration"),
"ThreeStateMachineConfiguration"
),
new TestScenario(
"F1 State Machine (Example 4)",
Path.of("../state_machines/inheritance_extra_functions3_state_machine"),
Path.of("src/test/resources/golden/F1StateMachineConfiguration"),
"F1StateMachineConfiguration"
),
new TestScenario(
"F2 State Machine (Example 4)",
Path.of("../state_machines/inheritance_extra_functions3_state_machine"),
Path.of("src/test/resources/golden/F2StateMachineConfiguration"),
"F2StateMachineConfiguration"
),
new TestScenario(
"G1 State Machine (Example 4)",
Path.of("../state_machines/inheritance_extra_functions3_state_machine"),
Path.of("src/test/resources/golden/G1StateMachineConfiguration"),
"G1StateMachineConfiguration"
),
new TestScenario(
"G2 State Machine (Example 4)",
Path.of("../state_machines/inheritance_extra_functions3_state_machine"),
Path.of("src/test/resources/golden/G2StateMachineConfiguration"),
"G2StateMachineConfiguration"
)
);
}
@ParameterizedTest(name = "{0}")
@MethodSource("provideTestScenarios")
void testRenderMatchesGolden(TestScenario scenario, @TempDir Path tempDir) throws Exception {
exportService.runExporter(scenario.inputPath(), tempDir, List.of("puml"));
// Find the generated directory
List<Path> generatedDirs;
try (var stream = Files.list(tempDir)) {
generatedDirs = stream.filter(Files::isDirectory).toList();
}
String targetBaseName = scenario.baseName();
Path actualDir = generatedDirs.stream()
.filter(d -> d.getFileName().toString().endsWith(targetBaseName))
.findFirst()
.orElseThrow(() -> new IllegalArgumentException("No output directory found for " + targetBaseName));
String actualBaseName = actualDir.getFileName().toString();
Path actualPumlFile = actualDir.resolve(actualBaseName + ".puml");
assertThat(actualPumlFile).exists();
// Render to PNG
renderToPng(actualPumlFile);
Path actualPngFile = actualDir.resolve(actualBaseName + ".png");
assertThat(actualPngFile).exists();
// Compare with Golden PNG
String goldenPngFileName = targetBaseName + ".png";
Path goldenPngFile = scenario.goldenPath().resolve(goldenPngFileName);
assertThat(goldenPngFile).as("Golden PNG %s should exist", goldenPngFileName).exists();
assertThat(Files.readAllBytes(actualPngFile))
.as("Rendered PNG mismatch for %s", actualBaseName)
.isEqualTo(Files.readAllBytes(goldenPngFile));
}
private void renderToPng(Path pumlFile) throws IOException, InterruptedException {
ProcessBuilder pb = new ProcessBuilder("plantuml", "-nometadata", pumlFile.toAbsolutePath().toString());
pb.inheritIO();
Process process = pb.start();
int exitCode = process.waitFor();
if (exitCode != 0) {
throw new RuntimeException("PlantUML rendering failed with exit code " + exitCode);
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

View File

@@ -1,7 +1,44 @@
@startuml
skinparam state {
BackgroundColor<<choice>> LightYellow
}
<style>
state {
.choice {
BackgroundColor LightYellow
}
}
arrow {
LineThickness 1
.external { LineColor #1E90FF }
.internal { LineColor #32CD32 }
.local { LineColor #FFA500 }
.junction { LineColor #FF69B4 }
.join { LineColor #8A2BE2 }
.fork { LineColor #20B2AA }
.choice_type { LineColor #000000 }
.choice_color_0 { LineColor #FF6347 }
.choice_color_1 { LineColor #4682B4 }
.choice_color_2 { LineColor #32CD32 }
.choice_color_3 { LineColor #FFD700 }
.choice_color_4 { LineColor #6A5ACD }
.choice_color_5 { LineColor #FF69B4 }
}
/* Example: Highlight all transitions for a specific event */
/* .e_MY_EVENT { LineColor red } */
</style>
hide <<external>> stereotype
hide <<internal>> stereotype
hide <<local>> stereotype
hide <<junction>> stereotype
hide <<join>> stereotype
hide <<fork>> stereotype
hide <<choice_type>> stereotype
hide <<choice_color_0>> stereotype
hide <<choice_color_1>> stereotype
hide <<choice_color_2>> stereotype
hide <<choice_color_3>> stereotype
hide <<choice_color_4>> stereotype
hide <<choice_color_5>> stereotype
[*] --> STATE1
@@ -16,44 +53,59 @@ state STATE9 <<choice>>
state STATE19 <<choice>>
state STATE18 <<choice>>
STATE1 -[#1E90FF,bold]-> STATE2 : EVENT1
STATE2 -[#1E90FF,bold]-> STATE3 : EVENT2
STATE3 -[#1E90FF,bold]-> STATE4 : EVENT3
STATE4 -[#1E90FF,bold]-> STATE5 : EVENT4
STATE5 -[#1E90FF,bold]-> STATE6 : EVENT5
STATE6 -[#1E90FF,bold]-> STATE7 : EVENT6
STATE7 -[#1E90FF,bold]-> STATE8 : EVENT7
STATE8 -[#1E90FF,bold]-> STATE9 : EVENT8
STATE9 -[#1E90FF,bold]-> STATE10 : EVENT9
STATE10 -[#1E90FF,bold]-> STATE11 : EVENT10
STATE11 -[#1E90FF,bold]-> STATE12 : EVENT11
STATE12 -[#1E90FF,bold]-> STATE13 : EVENT12
STATE13 -[#1E90FF,bold]-> STATE14 : EVENT13
STATE14 -[#1E90FF,bold]-> STATE15 : EVENT14
STATE15 -[#1E90FF,bold]-> STATE16 : EVENT15
STATE16 -[#4682B4,bold]-> STATE17 : [guardVarEquals("value1")] (order=0)
STATE16 -[#4682B4,bold]-> STATE18 : [guardVarEquals("value2")] (order=1)
STATE16 -[#4682B4,bold]-> STATE19 : (order=2)
STATE17 -[#FF6347,bold]-> STATE20 : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE17 -[#FF6347,bold]-> STATE16 : (order=1)
STATE18 -[#FFD700,bold]-> STATE19 : [guardVarEquals("value3")] (order=0)
STATE18 -[#FFD700,bold]-> STATE20 : (order=1)
STATE19 -[#32CD32,bold]-> STATE1 : [guardVarEquals("reset")] (order=0)
STATE19 -[#32CD32,bold]-> STATE20 : (order=1)
STATE20 -[#FF6347,bold]-> STATE5 : [guardEventHeaderEquals("header2","bar")] (order=0)
STATE20 -[#FF6347,bold]-> STATE1 : (order=1)
STATE11 -[#6A5ACD,bold]-> STATE13 : [guardVarEquals("goTo13")] (order=0)
STATE11 -[#6A5ACD,bold]-> STATE14 : [guardVarEquals("goTo14")] (order=1)
STATE11 -[#6A5ACD,bold]-> STATE15 : (order=2)
STATE12 -[#FFD700,bold]-> STATE10 : [guardVarEquals("goBack10")] (order=0)
STATE12 -[#FFD700,bold]-> STATE11 : (order=1)
STATE14 -[#32CD32,bold]-> STATE12 : [guardVarEquals("loop12")] (order=0)
STATE14 -[#32CD32,bold]-> STATE16 : (order=1)
STATE9 -[#4682B4,bold]-> STATE8 : [guardVarEquals("stepBack")] (order=0)
STATE9 -[#4682B4,bold]-> STATE7 : [guardVarEquals("stepBackMore")] (order=1)
STATE9 -[#4682B4,bold]-> STATE6 : (order=2)
STATE8 -[#FF69B4,bold]-> STATE9 : [guardVarEquals("forward9")] (order=0)
STATE8 -[#FF69B4,bold]-> STATE10 : (order=1)
STATE1 -[#1E90FF,bold]-> STATE2 <<external>> <<e_Events_EVENT1>> : EVENT1
STATE2 -[#1E90FF,bold]-> STATE3 <<external>> <<e_Events_EVENT2>> : EVENT2
STATE3 -[#1E90FF,bold]-> STATE4 <<external>> <<e_Events_EVENT3>> : EVENT3
STATE4 -[#1E90FF,bold]-> STATE5 <<external>> <<e_Events_EVENT4>> : EVENT4
STATE5 -[#1E90FF,bold]-> STATE6 <<external>> <<e_Events_EVENT5>> : EVENT5
STATE6 -[#1E90FF,bold]-> STATE7 <<external>> <<e_Events_EVENT6>> : EVENT6
STATE7 -[#1E90FF,bold]-> STATE8 <<external>> <<e_Events_EVENT7>> : EVENT7
STATE8 -[#1E90FF,bold]-> STATE9 <<external>> <<e_Events_EVENT8>> : EVENT8
STATE9 -[#1E90FF,bold]-> STATE10 <<external>> <<e_Events_EVENT9>> : EVENT9
STATE10 -[#1E90FF,bold]-> STATE11 <<external>> <<e_Events_EVENT10>> : EVENT10
STATE11 -[#1E90FF,bold]-> STATE12 <<external>> <<e_Events_EVENT11>> : EVENT11
STATE12 -[#1E90FF,bold]-> STATE13 <<external>> <<e_Events_EVENT12>> : EVENT12
STATE13 -[#1E90FF,bold]-> STATE14 <<external>> <<e_Events_EVENT13>> : EVENT13
STATE14 -[#1E90FF,bold]-> STATE15 <<external>> <<e_Events_EVENT14>> : EVENT14
STATE15 -[#1E90FF,bold]-> STATE16 <<external>> <<e_Events_EVENT15>> : EVENT15
STATE16 -[#4682B4,bold]-> STATE17 <<choice_color_1>> : [guardVarEquals("value1")] (order=0)
STATE16 -[#4682B4,bold]-> STATE18 <<choice_color_1>> : [guardVarEquals("value2")] (order=1)
STATE16 -[#4682B4,bold]-> STATE19 <<choice_color_1>> : (order=2)
STATE17 -[#FF6347,bold]-> STATE20 <<choice_color_0>> : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE17 -[#FF6347,bold]-> STATE16 <<choice_color_0>> : (order=1)
STATE18 -[#FFD700,bold]-> STATE19 <<choice_color_3>> : [guardVarEquals("value3")] (order=0)
STATE18 -[#FFD700,bold]-> STATE20 <<choice_color_3>> : (order=1)
STATE19 -[#32CD32,bold]-> STATE1 <<choice_color_2>> : [guardVarEquals("reset")] (order=0)
STATE19 -[#32CD32,bold]-> STATE20 <<choice_color_2>> : (order=1)
STATE20 -[#FF6347,bold]-> STATE5 <<choice_color_0>> : [guardEventHeaderEquals("header2","bar")] (order=0)
STATE20 -[#FF6347,bold]-> STATE1 <<choice_color_0>> : (order=1)
STATE11 -[#6A5ACD,bold]-> STATE13 <<choice_color_4>> : [guardVarEquals("goTo13")] (order=0)
STATE11 -[#6A5ACD,bold]-> STATE14 <<choice_color_4>> : [guardVarEquals("goTo14")] (order=1)
STATE11 -[#6A5ACD,bold]-> STATE15 <<choice_color_4>> : (order=2)
STATE12 -[#FFD700,bold]-> STATE10 <<choice_color_3>> : [guardVarEquals("goBack10")] (order=0)
STATE12 -[#FFD700,bold]-> STATE11 <<choice_color_3>> : (order=1)
STATE14 -[#32CD32,bold]-> STATE12 <<choice_color_2>> : [guardVarEquals("loop12")] (order=0)
STATE14 -[#32CD32,bold]-> STATE16 <<choice_color_2>> : (order=1)
STATE9 -[#4682B4,bold]-> STATE8 <<choice_color_1>> : [guardVarEquals("stepBack")] (order=0)
STATE9 -[#4682B4,bold]-> STATE7 <<choice_color_1>> : [guardVarEquals("stepBackMore")] (order=1)
STATE9 -[#4682B4,bold]-> STATE6 <<choice_color_1>> : (order=2)
STATE8 -[#FF69B4,bold]-> STATE9 <<choice_color_5>> : [guardVarEquals("forward9")] (order=0)
STATE8 -[#FF69B4,bold]-> STATE10 <<choice_color_5>> : (order=1)
hide <<e_Events_EVENT9>> stereotype
hide <<e_Events_EVENT13>> stereotype
hide <<e_Events_EVENT8>> stereotype
hide <<e_Events_EVENT14>> stereotype
hide <<e_Events_EVENT7>> stereotype
hide <<e_Events_EVENT15>> stereotype
hide <<e_Events_EVENT6>> stereotype
hide <<e_Events_EVENT5>> stereotype
hide <<e_Events_EVENT4>> stereotype
hide <<e_Events_EVENT3>> stereotype
hide <<e_Events_EVENT2>> stereotype
hide <<e_Events_EVENT1>> stereotype
hide <<e_Events_EVENT10>> stereotype
hide <<e_Events_EVENT11>> stereotype
hide <<e_Events_EVENT12>> stereotype
@enduml

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

View File

@@ -1,7 +1,44 @@
@startuml
skinparam state {
BackgroundColor<<choice>> LightYellow
}
<style>
state {
.choice {
BackgroundColor LightYellow
}
}
arrow {
LineThickness 1
.external { LineColor #1E90FF }
.internal { LineColor #32CD32 }
.local { LineColor #FFA500 }
.junction { LineColor #FF69B4 }
.join { LineColor #8A2BE2 }
.fork { LineColor #20B2AA }
.choice_type { LineColor #000000 }
.choice_color_0 { LineColor #FF6347 }
.choice_color_1 { LineColor #4682B4 }
.choice_color_2 { LineColor #32CD32 }
.choice_color_3 { LineColor #FFD700 }
.choice_color_4 { LineColor #6A5ACD }
.choice_color_5 { LineColor #FF69B4 }
}
/* Example: Highlight all transitions for a specific event */
/* .e_MY_EVENT { LineColor red } */
</style>
hide <<external>> stereotype
hide <<internal>> stereotype
hide <<local>> stereotype
hide <<junction>> stereotype
hide <<join>> stereotype
hide <<fork>> stereotype
hide <<choice_type>> stereotype
hide <<choice_color_0>> stereotype
hide <<choice_color_1>> stereotype
hide <<choice_color_2>> stereotype
hide <<choice_color_3>> stereotype
hide <<choice_color_4>> stereotype
hide <<choice_color_5>> stereotype
[*] --> STATE1
@@ -18,58 +55,77 @@ state STATE9 <<choice>>
state STATE19 <<choice>>
state STATE18 <<choice>>
STATE1 -[#1E90FF,bold]-> STATE2 : EVENT1
STATE2 -[#1E90FF,bold]-> STATE3 : EVENT2
STATE3 -[#1E90FF,bold]-> STATE4 : EVENT3
STATE4 -[#1E90FF,bold]-> STATE5 : EVENT4
STATE5 -[#1E90FF,bold]-> STATE6 : EVENT5
STATE6 -[#1E90FF,bold]-> STATE7 : EVENT6
STATE7 -[#1E90FF,bold]-> STATE8 : EVENT7
STATE8 -[#1E90FF,bold]-> STATE9 : EVENT8
STATE9 -[#1E90FF,bold]-> STATE10 : EVENT9
STATE10 -[#1E90FF,bold]-> STATE11 : EVENT10
STATE11 -[#1E90FF,bold]-> STATE12 : EVENT11
STATE12 -[#1E90FF,bold]-> STATE13 : EVENT12
STATE13 -[#1E90FF,bold]-> STATE14 : EVENT13
STATE14 -[#1E90FF,bold]-> STATE15 : EVENT14
STATE15 -[#1E90FF,bold]-> STATE16 : EVENT15
STATE1 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE2 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE3 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE5 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> STATEY : EVENTY
STATEY -[#4682B4,bold]-> STATEX : [guardVarEquals("value1")] (order=0)
STATEY -[#4682B4,bold]-> STATEZ : (order=1)
STATE16 -[#4682B4,bold]-> STATE17 : [guardVarEquals("value1")] (order=0)
STATE16 -[#4682B4,bold]-> STATE18 : [guardVarEquals("value2")] (order=1)
STATE16 -[#4682B4,bold]-> STATE19 : (order=2)
STATE17 -[#FF6347,bold]-> STATE20 : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE17 -[#FF6347,bold]-> STATE16 : (order=1)
STATE18 -[#FF69B4,bold]-> STATE19 : [guardVarEquals("value3")] (order=0)
STATE18 -[#FF69B4,bold]-> STATE20 : (order=1)
STATE19 -[#6A5ACD,bold]-> STATE1 : [guardVarEquals("reset")] (order=0)
STATE19 -[#6A5ACD,bold]-> STATE20 : (order=1)
STATE20 -[#32CD32,bold]-> STATE5 : [guardEventHeaderEquals("header2","bar")] (order=0)
STATE20 -[#32CD32,bold]-> STATE1 : (order=1)
STATE11 -[#FF69B4,bold]-> STATE13 : [guardVarEquals("goTo13")] (order=0)
STATE11 -[#FF69B4,bold]-> STATE14 : [guardVarEquals("goTo14")] (order=1)
STATE11 -[#FF69B4,bold]-> STATE15 : (order=2)
STATE12 -[#6A5ACD,bold]-> STATE10 : [guardVarEquals("goBack10")] (order=0)
STATE12 -[#6A5ACD,bold]-> STATE11 : (order=1)
STATE14 -[#FFD700,bold]-> STATE12 : [guardVarEquals("loop12")] (order=0)
STATE14 -[#FFD700,bold]-> STATE16 : (order=1)
STATE9 -[#FFD700,bold]-> STATE8 : [guardVarEquals("stepBack")] (order=0)
STATE9 -[#FFD700,bold]-> STATE7 : [guardVarEquals("stepBackMore")] (order=1)
STATE9 -[#FFD700,bold]-> STATE6 : (order=2)
STATE8 -[#FF6347,bold]-> STATE9 : [guardVarEquals("forward9")] (order=0)
STATE8 -[#FF6347,bold]-> STATE10 : (order=1)
STATE2 -[#1E90FF,bold]-> STATE_EXTRA_1 : EVENTX
STATE2 -[#32CD32,bold]-> STATE1 : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE2 -[#32CD32,bold]-> STATE_EXTRA_1 : (order=1)
STATE_EXTRA_1 -[#1E90FF,bold]-> STATE_EXTRA_3 : EVENTY
STATE_EXTRA_1 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL_2
STATE_EXTRA_2 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL_2
STATE1 -[#1E90FF,bold]-> STATE2 <<external>> <<e_Events_EVENT1>> : EVENT1
STATE2 -[#1E90FF,bold]-> STATE3 <<external>> <<e_Events_EVENT2>> : EVENT2
STATE3 -[#1E90FF,bold]-> STATE4 <<external>> <<e_Events_EVENT3>> : EVENT3
STATE4 -[#1E90FF,bold]-> STATE5 <<external>> <<e_Events_EVENT4>> : EVENT4
STATE5 -[#1E90FF,bold]-> STATE6 <<external>> <<e_Events_EVENT5>> : EVENT5
STATE6 -[#1E90FF,bold]-> STATE7 <<external>> <<e_Events_EVENT6>> : EVENT6
STATE7 -[#1E90FF,bold]-> STATE8 <<external>> <<e_Events_EVENT7>> : EVENT7
STATE8 -[#1E90FF,bold]-> STATE9 <<external>> <<e_Events_EVENT8>> : EVENT8
STATE9 -[#1E90FF,bold]-> STATE10 <<external>> <<e_Events_EVENT9>> : EVENT9
STATE10 -[#1E90FF,bold]-> STATE11 <<external>> <<e_Events_EVENT10>> : EVENT10
STATE11 -[#1E90FF,bold]-> STATE12 <<external>> <<e_Events_EVENT11>> : EVENT11
STATE12 -[#1E90FF,bold]-> STATE13 <<external>> <<e_Events_EVENT12>> : EVENT12
STATE13 -[#1E90FF,bold]-> STATE14 <<external>> <<e_Events_EVENT13>> : EVENT13
STATE14 -[#1E90FF,bold]-> STATE15 <<external>> <<e_Events_EVENT14>> : EVENT14
STATE15 -[#1E90FF,bold]-> STATE16 <<external>> <<e_Events_EVENT15>> : EVENT15
STATE1 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE2 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE3 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE5 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> STATEY <<external>> <<e_Events_EVENTY>> : EVENTY
STATEY -[#4682B4,bold]-> STATEX <<choice_color_1>> : [guardVarEquals("value1")] (order=0)
STATEY -[#4682B4,bold]-> STATEZ <<choice_color_1>> : (order=1)
STATE16 -[#4682B4,bold]-> STATE17 <<choice_color_1>> : [guardVarEquals("value1")] (order=0)
STATE16 -[#4682B4,bold]-> STATE18 <<choice_color_1>> : [guardVarEquals("value2")] (order=1)
STATE16 -[#4682B4,bold]-> STATE19 <<choice_color_1>> : (order=2)
STATE17 -[#FF6347,bold]-> STATE20 <<choice_color_0>> : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE17 -[#FF6347,bold]-> STATE16 <<choice_color_0>> : (order=1)
STATE18 -[#FF69B4,bold]-> STATE19 <<choice_color_5>> : [guardVarEquals("value3")] (order=0)
STATE18 -[#FF69B4,bold]-> STATE20 <<choice_color_5>> : (order=1)
STATE19 -[#6A5ACD,bold]-> STATE1 <<choice_color_4>> : [guardVarEquals("reset")] (order=0)
STATE19 -[#6A5ACD,bold]-> STATE20 <<choice_color_4>> : (order=1)
STATE20 -[#32CD32,bold]-> STATE5 <<choice_color_2>> : [guardEventHeaderEquals("header2","bar")] (order=0)
STATE20 -[#32CD32,bold]-> STATE1 <<choice_color_2>> : (order=1)
STATE11 -[#FF69B4,bold]-> STATE13 <<choice_color_5>> : [guardVarEquals("goTo13")] (order=0)
STATE11 -[#FF69B4,bold]-> STATE14 <<choice_color_5>> : [guardVarEquals("goTo14")] (order=1)
STATE11 -[#FF69B4,bold]-> STATE15 <<choice_color_5>> : (order=2)
STATE12 -[#6A5ACD,bold]-> STATE10 <<choice_color_4>> : [guardVarEquals("goBack10")] (order=0)
STATE12 -[#6A5ACD,bold]-> STATE11 <<choice_color_4>> : (order=1)
STATE14 -[#FFD700,bold]-> STATE12 <<choice_color_3>> : [guardVarEquals("loop12")] (order=0)
STATE14 -[#FFD700,bold]-> STATE16 <<choice_color_3>> : (order=1)
STATE9 -[#FFD700,bold]-> STATE8 <<choice_color_3>> : [guardVarEquals("stepBack")] (order=0)
STATE9 -[#FFD700,bold]-> STATE7 <<choice_color_3>> : [guardVarEquals("stepBackMore")] (order=1)
STATE9 -[#FFD700,bold]-> STATE6 <<choice_color_3>> : (order=2)
STATE8 -[#FF6347,bold]-> STATE9 <<choice_color_0>> : [guardVarEquals("forward9")] (order=0)
STATE8 -[#FF6347,bold]-> STATE10 <<choice_color_0>> : (order=1)
STATE2 -[#1E90FF,bold]-> STATE_EXTRA_1 <<external>> <<e_Events_EVENTX>> : EVENTX
STATE2 -[#32CD32,bold]-> STATE1 <<choice_color_2>> : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE2 -[#32CD32,bold]-> STATE_EXTRA_1 <<choice_color_2>> : (order=1)
STATE_EXTRA_1 -[#1E90FF,bold]-> STATE_EXTRA_3 <<external>> <<e_Events_EVENTY>> : EVENTY
STATE_EXTRA_1 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL_2>> : EVENT_CANCEL_2
STATE_EXTRA_2 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL_2>> : EVENT_CANCEL_2
hide <<e_Events_EVENT_CANCEL>> stereotype
hide <<e_Events_EVENT9>> stereotype
hide <<e_Events_EVENT13>> stereotype
hide <<e_Events_EVENTY>> stereotype
hide <<e_Events_EVENT8>> stereotype
hide <<e_Events_EVENT14>> stereotype
hide <<e_Events_EVENTX>> stereotype
hide <<e_Events_EVENT7>> stereotype
hide <<e_Events_EVENT15>> stereotype
hide <<e_Events_EVENT6>> stereotype
hide <<e_Events_EVENT5>> stereotype
hide <<e_Events_EVENT4>> stereotype
hide <<e_Events_EVENT3>> stereotype
hide <<e_Events_EVENT2>> stereotype
hide <<e_Events_EVENT1>> stereotype
hide <<e_Events_EVENT10>> stereotype
hide <<e_Events_EVENT11>> stereotype
hide <<e_Events_EVENT12>> stereotype
hide <<e_Events_EVENT_CANCEL_2>> stereotype
STATEZ --> [*]
@enduml

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 KiB

View File

@@ -1,7 +1,44 @@
@startuml
skinparam state {
BackgroundColor<<choice>> LightYellow
}
<style>
state {
.choice {
BackgroundColor LightYellow
}
}
arrow {
LineThickness 1
.external { LineColor #1E90FF }
.internal { LineColor #32CD32 }
.local { LineColor #FFA500 }
.junction { LineColor #FF69B4 }
.join { LineColor #8A2BE2 }
.fork { LineColor #20B2AA }
.choice_type { LineColor #000000 }
.choice_color_0 { LineColor #FF6347 }
.choice_color_1 { LineColor #4682B4 }
.choice_color_2 { LineColor #32CD32 }
.choice_color_3 { LineColor #FFD700 }
.choice_color_4 { LineColor #6A5ACD }
.choice_color_5 { LineColor #FF69B4 }
}
/* Example: Highlight all transitions for a specific event */
/* .e_MY_EVENT { LineColor red } */
</style>
hide <<external>> stereotype
hide <<internal>> stereotype
hide <<local>> stereotype
hide <<junction>> stereotype
hide <<join>> stereotype
hide <<fork>> stereotype
hide <<choice_type>> stereotype
hide <<choice_color_0>> stereotype
hide <<choice_color_1>> stereotype
hide <<choice_color_2>> stereotype
hide <<choice_color_3>> stereotype
hide <<choice_color_4>> stereotype
hide <<choice_color_5>> stereotype
[*] --> STATE1
@@ -18,59 +55,79 @@ state STATE_EXTRA_1_2 <<choice>>
state STATE19 <<choice>>
state STATE18 <<choice>>
STATE1 -[#1E90FF,bold]-> STATE2 : EVENT1
STATE2 -[#1E90FF,bold]-> STATE3 : EVENT2
STATE3 -[#1E90FF,bold]-> STATE4 : EVENT3
STATE4 -[#1E90FF,bold]-> STATE5 : EVENT4
STATE5 -[#1E90FF,bold]-> STATE6 : EVENT5
STATE6 -[#1E90FF,bold]-> STATE7 : EVENT6
STATE7 -[#1E90FF,bold]-> STATE8 : EVENT7
STATE8 -[#1E90FF,bold]-> STATE9 : EVENT8
STATE9 -[#1E90FF,bold]-> STATE10 : EVENT9
STATE10 -[#1E90FF,bold]-> STATE11 : EVENT10
STATE11 -[#1E90FF,bold]-> STATE12 : EVENT11
STATE12 -[#1E90FF,bold]-> STATE13 : EVENT12
STATE13 -[#1E90FF,bold]-> STATE14 : EVENT13
STATE14 -[#1E90FF,bold]-> STATE15 : EVENT14
STATE15 -[#1E90FF,bold]-> STATE16 : EVENT15
STATE1 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE2 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE3 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE5 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> STATEY : EVENTY
STATEY -[#FF6347,bold]-> STATEX : [guardVarEquals("value1")] (order=0)
STATEY -[#FF6347,bold]-> STATEZ : (order=1)
STATE16 -[#4682B4,bold]-> STATE17 : [guardVarEquals("value1")] (order=0)
STATE16 -[#4682B4,bold]-> STATE18 : [guardVarEquals("value2")] (order=1)
STATE16 -[#4682B4,bold]-> STATE19 : (order=2)
STATE17 -[#FF6347,bold]-> STATE20 : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE17 -[#FF6347,bold]-> STATE16 : (order=1)
STATE18 -[#FF69B4,bold]-> STATE19 : [guardVarEquals("value3")] (order=0)
STATE18 -[#FF69B4,bold]-> STATE20 : (order=1)
STATE19 -[#6A5ACD,bold]-> STATE1 : [guardVarEquals("reset")] (order=0)
STATE19 -[#6A5ACD,bold]-> STATE20 : (order=1)
STATE20 -[#4682B4,bold]-> STATE5 : [guardEventHeaderEquals("header2","bar")] (order=0)
STATE20 -[#4682B4,bold]-> STATE1 : (order=1)
STATE11 -[#6A5ACD,bold]-> STATE13 : [guardVarEquals("goTo13")] (order=0)
STATE11 -[#6A5ACD,bold]-> STATE14 : [guardVarEquals("goTo14")] (order=1)
STATE11 -[#6A5ACD,bold]-> STATE15 : (order=2)
STATE12 -[#FFD700,bold]-> STATE10 : [guardVarEquals("goBack10")] (order=0)
STATE12 -[#FFD700,bold]-> STATE11 : (order=1)
STATE14 -[#32CD32,bold]-> STATE12 : [guardVarEquals("loop12")] (order=0)
STATE14 -[#32CD32,bold]-> STATE16 : (order=1)
STATE9 -[#32CD32,bold]-> STATE8 : [guardVarEquals("stepBack")] (order=0)
STATE9 -[#32CD32,bold]-> STATE7 : [guardVarEquals("stepBackMore")] (order=1)
STATE9 -[#32CD32,bold]-> STATE6 : (order=2)
STATE8 -[#FF69B4,bold]-> STATE9 : [guardVarEquals("forward9")] (order=0)
STATE8 -[#FF69B4,bold]-> STATE10 : (order=1)
STATE9 -[#1E90FF,bold]-> STATE_EXTRA_1_1 : EVENT_1_1
STATE_EXTRA_1_2 -[#FFD700,bold]-> STATE_EXTRA_1_1 : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE_EXTRA_1_2 -[#FFD700,bold]-> STATE_EXTRA_1_3 : (order=1)
STATE_EXTRA_1_3 -[#1E90FF,bold]-> STATE_EXTRA_1 : EVENT_1_2
STATE_EXTRA_1_1 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL_2
STATE_EXTRA_1_2 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL_2
STATE_EXTRA_1 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL_2
STATE1 -[#1E90FF,bold]-> STATE2 <<external>> <<e_Events_EVENT1>> : EVENT1
STATE2 -[#1E90FF,bold]-> STATE3 <<external>> <<e_Events_EVENT2>> : EVENT2
STATE3 -[#1E90FF,bold]-> STATE4 <<external>> <<e_Events_EVENT3>> : EVENT3
STATE4 -[#1E90FF,bold]-> STATE5 <<external>> <<e_Events_EVENT4>> : EVENT4
STATE5 -[#1E90FF,bold]-> STATE6 <<external>> <<e_Events_EVENT5>> : EVENT5
STATE6 -[#1E90FF,bold]-> STATE7 <<external>> <<e_Events_EVENT6>> : EVENT6
STATE7 -[#1E90FF,bold]-> STATE8 <<external>> <<e_Events_EVENT7>> : EVENT7
STATE8 -[#1E90FF,bold]-> STATE9 <<external>> <<e_Events_EVENT8>> : EVENT8
STATE9 -[#1E90FF,bold]-> STATE10 <<external>> <<e_Events_EVENT9>> : EVENT9
STATE10 -[#1E90FF,bold]-> STATE11 <<external>> <<e_Events_EVENT10>> : EVENT10
STATE11 -[#1E90FF,bold]-> STATE12 <<external>> <<e_Events_EVENT11>> : EVENT11
STATE12 -[#1E90FF,bold]-> STATE13 <<external>> <<e_Events_EVENT12>> : EVENT12
STATE13 -[#1E90FF,bold]-> STATE14 <<external>> <<e_Events_EVENT13>> : EVENT13
STATE14 -[#1E90FF,bold]-> STATE15 <<external>> <<e_Events_EVENT14>> : EVENT14
STATE15 -[#1E90FF,bold]-> STATE16 <<external>> <<e_Events_EVENT15>> : EVENT15
STATE1 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE2 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE3 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE5 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> STATEY <<external>> <<e_Events_EVENTY>> : EVENTY
STATEY -[#FF6347,bold]-> STATEX <<choice_color_0>> : [guardVarEquals("value1")] (order=0)
STATEY -[#FF6347,bold]-> STATEZ <<choice_color_0>> : (order=1)
STATE16 -[#4682B4,bold]-> STATE17 <<choice_color_1>> : [guardVarEquals("value1")] (order=0)
STATE16 -[#4682B4,bold]-> STATE18 <<choice_color_1>> : [guardVarEquals("value2")] (order=1)
STATE16 -[#4682B4,bold]-> STATE19 <<choice_color_1>> : (order=2)
STATE17 -[#FF6347,bold]-> STATE20 <<choice_color_0>> : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE17 -[#FF6347,bold]-> STATE16 <<choice_color_0>> : (order=1)
STATE18 -[#FF69B4,bold]-> STATE19 <<choice_color_5>> : [guardVarEquals("value3")] (order=0)
STATE18 -[#FF69B4,bold]-> STATE20 <<choice_color_5>> : (order=1)
STATE19 -[#6A5ACD,bold]-> STATE1 <<choice_color_4>> : [guardVarEquals("reset")] (order=0)
STATE19 -[#6A5ACD,bold]-> STATE20 <<choice_color_4>> : (order=1)
STATE20 -[#4682B4,bold]-> STATE5 <<choice_color_1>> : [guardEventHeaderEquals("header2","bar")] (order=0)
STATE20 -[#4682B4,bold]-> STATE1 <<choice_color_1>> : (order=1)
STATE11 -[#6A5ACD,bold]-> STATE13 <<choice_color_4>> : [guardVarEquals("goTo13")] (order=0)
STATE11 -[#6A5ACD,bold]-> STATE14 <<choice_color_4>> : [guardVarEquals("goTo14")] (order=1)
STATE11 -[#6A5ACD,bold]-> STATE15 <<choice_color_4>> : (order=2)
STATE12 -[#FFD700,bold]-> STATE10 <<choice_color_3>> : [guardVarEquals("goBack10")] (order=0)
STATE12 -[#FFD700,bold]-> STATE11 <<choice_color_3>> : (order=1)
STATE14 -[#32CD32,bold]-> STATE12 <<choice_color_2>> : [guardVarEquals("loop12")] (order=0)
STATE14 -[#32CD32,bold]-> STATE16 <<choice_color_2>> : (order=1)
STATE9 -[#32CD32,bold]-> STATE8 <<choice_color_2>> : [guardVarEquals("stepBack")] (order=0)
STATE9 -[#32CD32,bold]-> STATE7 <<choice_color_2>> : [guardVarEquals("stepBackMore")] (order=1)
STATE9 -[#32CD32,bold]-> STATE6 <<choice_color_2>> : (order=2)
STATE8 -[#FF69B4,bold]-> STATE9 <<choice_color_5>> : [guardVarEquals("forward9")] (order=0)
STATE8 -[#FF69B4,bold]-> STATE10 <<choice_color_5>> : (order=1)
STATE9 -[#1E90FF,bold]-> STATE_EXTRA_1_1 <<external>> <<e_Events_EVENT_1_1>> : EVENT_1_1
STATE_EXTRA_1_2 -[#FFD700,bold]-> STATE_EXTRA_1_1 <<choice_color_3>> : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE_EXTRA_1_2 -[#FFD700,bold]-> STATE_EXTRA_1_3 <<choice_color_3>> : (order=1)
STATE_EXTRA_1_3 -[#1E90FF,bold]-> STATE_EXTRA_1 <<external>> <<e_Events_EVENT_1_2>> : EVENT_1_2
STATE_EXTRA_1_1 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL_2>> : EVENT_CANCEL_2
STATE_EXTRA_1_2 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL_2>> : EVENT_CANCEL_2
STATE_EXTRA_1 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL_2>> : EVENT_CANCEL_2
hide <<e_Events_EVENT_CANCEL>> stereotype
hide <<e_Events_EVENT9>> stereotype
hide <<e_Events_EVENT13>> stereotype
hide <<e_Events_EVENTY>> stereotype
hide <<e_Events_EVENT8>> stereotype
hide <<e_Events_EVENT14>> stereotype
hide <<e_Events_EVENT7>> stereotype
hide <<e_Events_EVENT15>> stereotype
hide <<e_Events_EVENT6>> stereotype
hide <<e_Events_EVENT5>> stereotype
hide <<e_Events_EVENT4>> stereotype
hide <<e_Events_EVENT3>> stereotype
hide <<e_Events_EVENT2>> stereotype
hide <<e_Events_EVENT1>> stereotype
hide <<e_Events_EVENT_1_2>> stereotype
hide <<e_Events_EVENT_1_1>> stereotype
hide <<e_Events_EVENT10>> stereotype
hide <<e_Events_EVENT11>> stereotype
hide <<e_Events_EVENT12>> stereotype
hide <<e_Events_EVENT_CANCEL_2>> stereotype
STATEZ --> [*]
@enduml

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -1,19 +1,60 @@
@startuml
skinparam state {
BackgroundColor<<choice>> LightYellow
}
<style>
state {
.choice {
BackgroundColor LightYellow
}
}
arrow {
LineThickness 1
.external { LineColor #1E90FF }
.internal { LineColor #32CD32 }
.local { LineColor #FFA500 }
.junction { LineColor #FF69B4 }
.join { LineColor #8A2BE2 }
.fork { LineColor #20B2AA }
.choice_type { LineColor #000000 }
.choice_color_0 { LineColor #FF6347 }
.choice_color_1 { LineColor #4682B4 }
.choice_color_2 { LineColor #32CD32 }
.choice_color_3 { LineColor #FFD700 }
.choice_color_4 { LineColor #6A5ACD }
.choice_color_5 { LineColor #FF69B4 }
}
/* Example: Highlight all transitions for a specific event */
/* .e_MY_EVENT { LineColor red } */
</style>
hide <<external>> stereotype
hide <<internal>> stereotype
hide <<local>> stereotype
hide <<junction>> stereotype
hide <<join>> stereotype
hide <<fork>> stereotype
hide <<choice_type>> stereotype
hide <<choice_color_0>> stereotype
hide <<choice_color_1>> stereotype
hide <<choice_color_2>> stereotype
hide <<choice_color_3>> stereotype
hide <<choice_color_4>> stereotype
hide <<choice_color_5>> stereotype
[*] --> START
START -[#1E90FF,bold]-> FORK : TO_FORK
FORK -[#20B2AA,bold]-> REGION1_STATE1
FORK -[#20B2AA,bold]-> REGION2_STATE1
REGION1_STATE1 -[#1E90FF,bold]-> REGION1_STATE2 : R1_NEXT
REGION2_STATE1 -[#1E90FF,bold]-> REGION2_STATE2 : R2_NEXT
REGION1_STATE2 -[#8A2BE2,bold]-> JOIN
REGION2_STATE2 -[#8A2BE2,bold]-> JOIN
JOIN -[#1E90FF,bold]-> END : TO_END
START -[#1E90FF,bold]-> FORK <<external>> <<e_Events_TO_FORK>> : TO_FORK
FORK -[#20B2AA,bold]-> REGION1_STATE1 <<fork>>
FORK -[#20B2AA,bold]-> REGION2_STATE1 <<fork>>
REGION1_STATE1 -[#1E90FF,bold]-> REGION1_STATE2 <<external>> <<e_Events_R1_NEXT>> : R1_NEXT
REGION2_STATE1 -[#1E90FF,bold]-> REGION2_STATE2 <<external>> <<e_Events_R2_NEXT>> : R2_NEXT
REGION1_STATE2 -[#8A2BE2,bold]-> JOIN <<join>>
REGION2_STATE2 -[#8A2BE2,bold]-> JOIN <<join>>
JOIN -[#1E90FF,bold]-> END <<external>> <<e_Events_TO_END>> : TO_END
hide <<e_Events_TO_FORK>> stereotype
hide <<e_Events_R2_NEXT>> stereotype
hide <<e_Events_TO_END>> stereotype
hide <<e_Events_R1_NEXT>> stereotype
END --> [*]
@enduml

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

View File

@@ -1,7 +1,44 @@
@startuml
skinparam state {
BackgroundColor<<choice>> LightYellow
}
<style>
state {
.choice {
BackgroundColor LightYellow
}
}
arrow {
LineThickness 1
.external { LineColor #1E90FF }
.internal { LineColor #32CD32 }
.local { LineColor #FFA500 }
.junction { LineColor #FF69B4 }
.join { LineColor #8A2BE2 }
.fork { LineColor #20B2AA }
.choice_type { LineColor #000000 }
.choice_color_0 { LineColor #FF6347 }
.choice_color_1 { LineColor #4682B4 }
.choice_color_2 { LineColor #32CD32 }
.choice_color_3 { LineColor #FFD700 }
.choice_color_4 { LineColor #6A5ACD }
.choice_color_5 { LineColor #FF69B4 }
}
/* Example: Highlight all transitions for a specific event */
/* .e_MY_EVENT { LineColor red } */
</style>
hide <<external>> stereotype
hide <<internal>> stereotype
hide <<local>> stereotype
hide <<junction>> stereotype
hide <<join>> stereotype
hide <<fork>> stereotype
hide <<choice_type>> stereotype
hide <<choice_color_0>> stereotype
hide <<choice_color_1>> stereotype
hide <<choice_color_2>> stereotype
hide <<choice_color_3>> stereotype
hide <<choice_color_4>> stereotype
hide <<choice_color_5>> stereotype
[*] --> STATE1
@@ -9,31 +46,43 @@ state STATE8 <<choice>>
state STATEY <<choice>>
state STATE9 <<choice>>
STATE1 -[#1E90FF,bold]-> STATE2 : EVENT1
STATE2 -[#1E90FF,bold]-> STATE3 : EVENT2
STATE3 -[#1E90FF,bold]-> STATE4 : EVENT3
STATE4 -[#1E90FF,bold]-> STATE5 : EVENT4
STATE5 -[#1E90FF,bold]-> STATE6 : EVENT5
STATE6 -[#1E90FF,bold]-> STATE7 : EVENT6
STATE7 -[#1E90FF,bold]-> STATE8 : EVENT7
STATE8 -[#1E90FF,bold]-> STATE9 : EVENT8
STATE9 -[#1E90FF,bold]-> STATE10 : EVENT9
STATE1 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE2 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE3 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE5 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> STATEY : EVENTY
STATEY -[#4682B4,bold]-> STATEX : [guardVarEquals("value1")] (order=0)
STATEY -[#4682B4,bold]-> STATEZ : (order=1)
STATE9 -[#32CD32,bold]-> STATE8 : [guardVarEquals("stepBack")] (order=0)
STATE9 -[#32CD32,bold]-> STATE7 : [guardVarEquals("stepBackMore")] (order=1)
STATE9 -[#32CD32,bold]-> STATE6 : (order=2)
STATE8 -[#FF6347,bold]-> STATE9 : [guardVarEquals("forward9")] (order=0)
STATE8 -[#FF6347,bold]-> STATE10 : (order=1)
STATE3 -[#1E90FF,bold]-> STATE_EXTRA_2 : EVENT_1_2
STATE_EXTRA_2 -[#1E90FF,bold]-> STATE_EXTRA_3 : EVENT_1_2
STATE_EXTRA_3 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE1 -[#1E90FF,bold]-> STATE2 <<external>> <<e_Events_EVENT1>> : EVENT1
STATE2 -[#1E90FF,bold]-> STATE3 <<external>> <<e_Events_EVENT2>> : EVENT2
STATE3 -[#1E90FF,bold]-> STATE4 <<external>> <<e_Events_EVENT3>> : EVENT3
STATE4 -[#1E90FF,bold]-> STATE5 <<external>> <<e_Events_EVENT4>> : EVENT4
STATE5 -[#1E90FF,bold]-> STATE6 <<external>> <<e_Events_EVENT5>> : EVENT5
STATE6 -[#1E90FF,bold]-> STATE7 <<external>> <<e_Events_EVENT6>> : EVENT6
STATE7 -[#1E90FF,bold]-> STATE8 <<external>> <<e_Events_EVENT7>> : EVENT7
STATE8 -[#1E90FF,bold]-> STATE9 <<external>> <<e_Events_EVENT8>> : EVENT8
STATE9 -[#1E90FF,bold]-> STATE10 <<external>> <<e_Events_EVENT9>> : EVENT9
STATE1 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE2 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE3 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE5 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> STATEY <<external>> <<e_Events_EVENTY>> : EVENTY
STATEY -[#4682B4,bold]-> STATEX <<choice_color_1>> : [guardVarEquals("value1")] (order=0)
STATEY -[#4682B4,bold]-> STATEZ <<choice_color_1>> : (order=1)
STATE9 -[#32CD32,bold]-> STATE8 <<choice_color_2>> : [guardVarEquals("stepBack")] (order=0)
STATE9 -[#32CD32,bold]-> STATE7 <<choice_color_2>> : [guardVarEquals("stepBackMore")] (order=1)
STATE9 -[#32CD32,bold]-> STATE6 <<choice_color_2>> : (order=2)
STATE8 -[#FF6347,bold]-> STATE9 <<choice_color_0>> : [guardVarEquals("forward9")] (order=0)
STATE8 -[#FF6347,bold]-> STATE10 <<choice_color_0>> : (order=1)
STATE3 -[#1E90FF,bold]-> STATE_EXTRA_2 <<external>> <<e_Events_EVENT_1_2>> : EVENT_1_2
STATE_EXTRA_2 -[#1E90FF,bold]-> STATE_EXTRA_3 <<external>> <<e_Events_EVENT_1_2>> : EVENT_1_2
STATE_EXTRA_3 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
hide <<e_Events_EVENT_CANCEL>> stereotype
hide <<e_Events_EVENT9>> stereotype
hide <<e_Events_EVENTY>> stereotype
hide <<e_Events_EVENT8>> stereotype
hide <<e_Events_EVENT7>> stereotype
hide <<e_Events_EVENT6>> stereotype
hide <<e_Events_EVENT5>> stereotype
hide <<e_Events_EVENT4>> stereotype
hide <<e_Events_EVENT3>> stereotype
hide <<e_Events_EVENT2>> stereotype
hide <<e_Events_EVENT1>> stereotype
hide <<e_Events_EVENT_1_2>> stereotype
STATEZ --> [*]
@enduml

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

View File

@@ -1,7 +1,44 @@
@startuml
skinparam state {
BackgroundColor<<choice>> LightYellow
}
<style>
state {
.choice {
BackgroundColor LightYellow
}
}
arrow {
LineThickness 1
.external { LineColor #1E90FF }
.internal { LineColor #32CD32 }
.local { LineColor #FFA500 }
.junction { LineColor #FF69B4 }
.join { LineColor #8A2BE2 }
.fork { LineColor #20B2AA }
.choice_type { LineColor #000000 }
.choice_color_0 { LineColor #FF6347 }
.choice_color_1 { LineColor #4682B4 }
.choice_color_2 { LineColor #32CD32 }
.choice_color_3 { LineColor #FFD700 }
.choice_color_4 { LineColor #6A5ACD }
.choice_color_5 { LineColor #FF69B4 }
}
/* Example: Highlight all transitions for a specific event */
/* .e_MY_EVENT { LineColor red } */
</style>
hide <<external>> stereotype
hide <<internal>> stereotype
hide <<local>> stereotype
hide <<junction>> stereotype
hide <<join>> stereotype
hide <<fork>> stereotype
hide <<choice_type>> stereotype
hide <<choice_color_0>> stereotype
hide <<choice_color_1>> stereotype
hide <<choice_color_2>> stereotype
hide <<choice_color_3>> stereotype
hide <<choice_color_4>> stereotype
hide <<choice_color_5>> stereotype
[*] --> STATE1
@@ -9,32 +46,45 @@ state STATE8 <<choice>>
state STATEY <<choice>>
state STATE9 <<choice>>
STATE1 -[#1E90FF,bold]-> STATE2 : EVENT1
STATE2 -[#1E90FF,bold]-> STATE3 : EVENT2
STATE3 -[#1E90FF,bold]-> STATE4 : EVENT3
STATE4 -[#1E90FF,bold]-> STATE5 : EVENT4
STATE5 -[#1E90FF,bold]-> STATE6 : EVENT5
STATE6 -[#1E90FF,bold]-> STATE7 : EVENT6
STATE7 -[#1E90FF,bold]-> STATE8 : EVENT7
STATE8 -[#1E90FF,bold]-> STATE9 : EVENT8
STATE9 -[#1E90FF,bold]-> STATE10 : EVENT9
STATE1 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE2 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE3 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE5 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> STATEY : EVENTY
STATEY -[#4682B4,bold]-> STATEX : [guardVarEquals("value1")] (order=0)
STATEY -[#4682B4,bold]-> STATEZ : (order=1)
STATE9 -[#32CD32,bold]-> STATE8 : [guardVarEquals("stepBack")] (order=0)
STATE9 -[#32CD32,bold]-> STATE7 : [guardVarEquals("stepBackMore")] (order=1)
STATE9 -[#32CD32,bold]-> STATE6 : (order=2)
STATE8 -[#FF6347,bold]-> STATE9 : [guardVarEquals("forward9")] (order=0)
STATE8 -[#FF6347,bold]-> STATE10 : (order=1)
STATE3 -[#1E90FF,bold]-> STATE_EXTRA_1 : EVENT_1_2
STATE_EXTRA_1 -[#1E90FF,bold]-> STATE_EXTRA_2 : EVENT_1_3
STATE_EXTRA_1 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE_EXTRA_2 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE1 -[#1E90FF,bold]-> STATE2 <<external>> <<e_Events_EVENT1>> : EVENT1
STATE2 -[#1E90FF,bold]-> STATE3 <<external>> <<e_Events_EVENT2>> : EVENT2
STATE3 -[#1E90FF,bold]-> STATE4 <<external>> <<e_Events_EVENT3>> : EVENT3
STATE4 -[#1E90FF,bold]-> STATE5 <<external>> <<e_Events_EVENT4>> : EVENT4
STATE5 -[#1E90FF,bold]-> STATE6 <<external>> <<e_Events_EVENT5>> : EVENT5
STATE6 -[#1E90FF,bold]-> STATE7 <<external>> <<e_Events_EVENT6>> : EVENT6
STATE7 -[#1E90FF,bold]-> STATE8 <<external>> <<e_Events_EVENT7>> : EVENT7
STATE8 -[#1E90FF,bold]-> STATE9 <<external>> <<e_Events_EVENT8>> : EVENT8
STATE9 -[#1E90FF,bold]-> STATE10 <<external>> <<e_Events_EVENT9>> : EVENT9
STATE1 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE2 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE3 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE5 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> STATEY <<external>> <<e_Events_EVENTY>> : EVENTY
STATEY -[#4682B4,bold]-> STATEX <<choice_color_1>> : [guardVarEquals("value1")] (order=0)
STATEY -[#4682B4,bold]-> STATEZ <<choice_color_1>> : (order=1)
STATE9 -[#32CD32,bold]-> STATE8 <<choice_color_2>> : [guardVarEquals("stepBack")] (order=0)
STATE9 -[#32CD32,bold]-> STATE7 <<choice_color_2>> : [guardVarEquals("stepBackMore")] (order=1)
STATE9 -[#32CD32,bold]-> STATE6 <<choice_color_2>> : (order=2)
STATE8 -[#FF6347,bold]-> STATE9 <<choice_color_0>> : [guardVarEquals("forward9")] (order=0)
STATE8 -[#FF6347,bold]-> STATE10 <<choice_color_0>> : (order=1)
STATE3 -[#1E90FF,bold]-> STATE_EXTRA_1 <<external>> <<e_Events_EVENT_1_2>> : EVENT_1_2
STATE_EXTRA_1 -[#1E90FF,bold]-> STATE_EXTRA_2 <<external>> <<e_Events_EVENT_1_3>> : EVENT_1_3
STATE_EXTRA_1 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE_EXTRA_2 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
hide <<e_Events_EVENT_CANCEL>> stereotype
hide <<e_Events_EVENT9>> stereotype
hide <<e_Events_EVENTY>> stereotype
hide <<e_Events_EVENT8>> stereotype
hide <<e_Events_EVENT7>> stereotype
hide <<e_Events_EVENT6>> stereotype
hide <<e_Events_EVENT5>> stereotype
hide <<e_Events_EVENT4>> stereotype
hide <<e_Events_EVENT3>> stereotype
hide <<e_Events_EVENT2>> stereotype
hide <<e_Events_EVENT_1_3>> stereotype
hide <<e_Events_EVENT1>> stereotype
hide <<e_Events_EVENT_1_2>> stereotype
STATEZ --> [*]
@enduml

View File

@@ -1,25 +1,66 @@
@startuml
skinparam state {
BackgroundColor<<choice>> LightYellow
}
<style>
state {
.choice {
BackgroundColor LightYellow
}
}
arrow {
LineThickness 1
.external { LineColor #1E90FF }
.internal { LineColor #32CD32 }
.local { LineColor #FFA500 }
.junction { LineColor #FF69B4 }
.join { LineColor #8A2BE2 }
.fork { LineColor #20B2AA }
.choice_type { LineColor #000000 }
.choice_color_0 { LineColor #FF6347 }
.choice_color_1 { LineColor #4682B4 }
.choice_color_2 { LineColor #32CD32 }
.choice_color_3 { LineColor #FFD700 }
.choice_color_4 { LineColor #6A5ACD }
.choice_color_5 { LineColor #FF69B4 }
}
/* Example: Highlight all transitions for a specific event */
/* .e_MY_EVENT { LineColor red } */
</style>
hide <<external>> stereotype
hide <<internal>> stereotype
hide <<local>> stereotype
hide <<junction>> stereotype
hide <<join>> stereotype
hide <<fork>> stereotype
hide <<choice_type>> stereotype
hide <<choice_color_0>> stereotype
hide <<choice_color_1>> stereotype
hide <<choice_color_2>> stereotype
hide <<choice_color_3>> stereotype
hide <<choice_color_4>> stereotype
hide <<choice_color_5>> stereotype
[*] --> SUBMITTED
state PAID1 <<choice>>
SUBMITTED -[#1E90FF,bold]-> PAID : PAY
PAID -[#1E90FF,bold]-> FULFILLED : FULFILL
SUBMITTED -[#1E90FF,bold]-> CANCELED : CANCEL [λ]
PAID -[#1E90FF,bold]-> CANCELED : CANCEL
SUBMITTED -[#1E90FF,bold]-> SUBMITTED : ABCD
SUBMITTED -[#1E90FF,bold]-> PAID1 : ABCD
PAID1 -[#FF6347,bold]-> PAID2 : [λ] (order=0)
PAID1 -[#FF6347,bold]-> PAID3 : [guard1] (order=1)
PAID1 -[#FF6347,bold]-> HAPPEN : [λ] (order=2)
PAID1 -[#FF6347,bold]-> CANCELED : (order=3)
PAID2 -[#1E90FF,bold]-> CANCELED
PAID3 -[#1E90FF,bold]-> CANCELED
PAID2 -[#1E90FF,bold]-> PAID2 : ABCD / λ, action2
SUBMITTED -[#1E90FF,bold]-> PAID <<external>> <<e_OrderEvents_PAY>> : PAY
PAID -[#1E90FF,bold]-> FULFILLED <<external>> <<e_OrderEvents_FULFILL>> : FULFILL
SUBMITTED -[#1E90FF,bold]-> CANCELED <<external>> <<e_OrderEvents_CANCEL>> : CANCEL [λ]
PAID -[#1E90FF,bold]-> CANCELED <<external>> <<e_OrderEvents_CANCEL>> : CANCEL
SUBMITTED -[#1E90FF,bold]-> SUBMITTED <<external>> <<e_OrderEvents_ABCD>> : ABCD
SUBMITTED -[#1E90FF,bold]-> PAID1 <<external>> <<e_OrderEvents_ABCD>> : ABCD
PAID1 -[#FF6347,bold]-> PAID2 <<choice_color_0>> : [λ] (order=0)
PAID1 -[#FF6347,bold]-> PAID3 <<choice_color_0>> : [guard1] (order=1)
PAID1 -[#FF6347,bold]-> HAPPEN <<choice_color_0>> : [λ] (order=2)
PAID1 -[#FF6347,bold]-> CANCELED <<choice_color_0>> : (order=3)
PAID2 -[#1E90FF,bold]-> CANCELED <<external>>
PAID3 -[#1E90FF,bold]-> CANCELED <<external>>
PAID2 -[#1E90FF,bold]-> PAID2 <<external>> <<e_OrderEvents_ABCD>> : ABCD / λ, action2
hide <<e_OrderEvents_CANCEL>> stereotype
hide <<e_OrderEvents_FULFILL>> stereotype
hide <<e_OrderEvents_ABCD>> stereotype
hide <<e_OrderEvents_PAY>> stereotype
CANCELED --> [*]
FULFILLED --> [*]

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 KiB

View File

@@ -1,7 +1,44 @@
@startuml
skinparam state {
BackgroundColor<<choice>> LightYellow
}
<style>
state {
.choice {
BackgroundColor LightYellow
}
}
arrow {
LineThickness 1
.external { LineColor #1E90FF }
.internal { LineColor #32CD32 }
.local { LineColor #FFA500 }
.junction { LineColor #FF69B4 }
.join { LineColor #8A2BE2 }
.fork { LineColor #20B2AA }
.choice_type { LineColor #000000 }
.choice_color_0 { LineColor #FF6347 }
.choice_color_1 { LineColor #4682B4 }
.choice_color_2 { LineColor #32CD32 }
.choice_color_3 { LineColor #FFD700 }
.choice_color_4 { LineColor #6A5ACD }
.choice_color_5 { LineColor #FF69B4 }
}
/* Example: Highlight all transitions for a specific event */
/* .e_MY_EVENT { LineColor red } */
</style>
hide <<external>> stereotype
hide <<internal>> stereotype
hide <<local>> stereotype
hide <<junction>> stereotype
hide <<join>> stereotype
hide <<fork>> stereotype
hide <<choice_type>> stereotype
hide <<choice_color_0>> stereotype
hide <<choice_color_1>> stereotype
hide <<choice_color_2>> stereotype
hide <<choice_color_3>> stereotype
hide <<choice_color_4>> stereotype
hide <<choice_color_5>> stereotype
[*] --> STATE1
@@ -17,48 +54,65 @@ state STATE9 <<choice>>
state STATE19 <<choice>>
state STATE18 <<choice>>
STATE1 -[#1E90FF,bold]-> STATE2 : EVENT1
STATE2 -[#1E90FF,bold]-> STATE3 : EVENT2
STATE3 -[#1E90FF,bold]-> STATE4 : EVENT3
STATE4 -[#1E90FF,bold]-> STATE5 : EVENT4
STATE5 -[#1E90FF,bold]-> STATE6 : EVENT5
STATE6 -[#1E90FF,bold]-> STATE7 : EVENT6
STATE7 -[#1E90FF,bold]-> STATE8 : EVENT7
STATE8 -[#1E90FF,bold]-> STATE9 : EVENT8
STATE9 -[#1E90FF,bold]-> STATE10 : EVENT9
STATE10 -[#1E90FF,bold]-> STATE11 : EVENT10
STATE11 -[#1E90FF,bold]-> STATE12 : EVENT11
STATE12 -[#1E90FF,bold]-> STATE13 : EVENT12
STATE13 -[#1E90FF,bold]-> STATE14 : EVENT13
STATE14 -[#1E90FF,bold]-> STATE15 : EVENT14
STATE15 -[#1E90FF,bold]-> STATE16 : EVENT15
STATE4 -[#1E90FF,bold]-> STATEY : EVENTY
STATEY -[#FF6347,bold]-> STATEX : [guardVarEquals("value1")] (order=0)
STATEY -[#FF6347,bold]-> STATEZ : (order=1)
STATE16 -[#4682B4,bold]-> STATE17 : [guardVarEquals("value1")] (order=0)
STATE16 -[#4682B4,bold]-> STATE18 : [guardVarEquals("value2")] (order=1)
STATE16 -[#4682B4,bold]-> STATE19 : (order=2)
STATE17 -[#FF6347,bold]-> STATE20 : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE17 -[#FF6347,bold]-> STATE16 : (order=1)
STATE18 -[#6A5ACD,bold]-> STATE19 : [guardVarEquals("value3")] (order=0)
STATE18 -[#6A5ACD,bold]-> STATE20 : (order=1)
STATE19 -[#FFD700,bold]-> STATE1 : [guardVarEquals("reset")] (order=0)
STATE19 -[#FFD700,bold]-> STATE20 : (order=1)
STATE20 -[#4682B4,bold]-> STATE5 : [guardEventHeaderEquals("header2","bar")] (order=0)
STATE20 -[#4682B4,bold]-> STATE1 : (order=1)
STATE11 -[#6A5ACD,bold]-> STATE13 : [guardVarEquals("goTo13")] (order=0)
STATE11 -[#6A5ACD,bold]-> STATE14 : [guardVarEquals("goTo14")] (order=1)
STATE11 -[#6A5ACD,bold]-> STATE15 : (order=2)
STATE12 -[#FFD700,bold]-> STATE10 : [guardVarEquals("goBack10")] (order=0)
STATE12 -[#FFD700,bold]-> STATE11 : (order=1)
STATE14 -[#32CD32,bold]-> STATE12 : [guardVarEquals("loop12")] (order=0)
STATE14 -[#32CD32,bold]-> STATE16 : (order=1)
STATE9 -[#32CD32,bold]-> STATE8 : [guardVarEquals("stepBack")] (order=0)
STATE9 -[#32CD32,bold]-> STATE7 : [guardVarEquals("stepBackMore")] (order=1)
STATE9 -[#32CD32,bold]-> STATE6 : (order=2)
STATE8 -[#FF69B4,bold]-> STATE9 : [guardVarEquals("forward9")] (order=0)
STATE8 -[#FF69B4,bold]-> STATE10 : (order=1)
STATE5 -[#1E90FF,bold]-> STATE_EXTRA_1 : EVENTX
STATE1 -[#1E90FF,bold]-> STATE2 <<external>> <<e_Events_EVENT1>> : EVENT1
STATE2 -[#1E90FF,bold]-> STATE3 <<external>> <<e_Events_EVENT2>> : EVENT2
STATE3 -[#1E90FF,bold]-> STATE4 <<external>> <<e_Events_EVENT3>> : EVENT3
STATE4 -[#1E90FF,bold]-> STATE5 <<external>> <<e_Events_EVENT4>> : EVENT4
STATE5 -[#1E90FF,bold]-> STATE6 <<external>> <<e_Events_EVENT5>> : EVENT5
STATE6 -[#1E90FF,bold]-> STATE7 <<external>> <<e_Events_EVENT6>> : EVENT6
STATE7 -[#1E90FF,bold]-> STATE8 <<external>> <<e_Events_EVENT7>> : EVENT7
STATE8 -[#1E90FF,bold]-> STATE9 <<external>> <<e_Events_EVENT8>> : EVENT8
STATE9 -[#1E90FF,bold]-> STATE10 <<external>> <<e_Events_EVENT9>> : EVENT9
STATE10 -[#1E90FF,bold]-> STATE11 <<external>> <<e_Events_EVENT10>> : EVENT10
STATE11 -[#1E90FF,bold]-> STATE12 <<external>> <<e_Events_EVENT11>> : EVENT11
STATE12 -[#1E90FF,bold]-> STATE13 <<external>> <<e_Events_EVENT12>> : EVENT12
STATE13 -[#1E90FF,bold]-> STATE14 <<external>> <<e_Events_EVENT13>> : EVENT13
STATE14 -[#1E90FF,bold]-> STATE15 <<external>> <<e_Events_EVENT14>> : EVENT14
STATE15 -[#1E90FF,bold]-> STATE16 <<external>> <<e_Events_EVENT15>> : EVENT15
STATE4 -[#1E90FF,bold]-> STATEY <<external>> <<e_Events_EVENTY>> : EVENTY
STATEY -[#FF6347,bold]-> STATEX <<choice_color_0>> : [guardVarEquals("value1")] (order=0)
STATEY -[#FF6347,bold]-> STATEZ <<choice_color_0>> : (order=1)
STATE16 -[#4682B4,bold]-> STATE17 <<choice_color_1>> : [guardVarEquals("value1")] (order=0)
STATE16 -[#4682B4,bold]-> STATE18 <<choice_color_1>> : [guardVarEquals("value2")] (order=1)
STATE16 -[#4682B4,bold]-> STATE19 <<choice_color_1>> : (order=2)
STATE17 -[#FF6347,bold]-> STATE20 <<choice_color_0>> : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE17 -[#FF6347,bold]-> STATE16 <<choice_color_0>> : (order=1)
STATE18 -[#6A5ACD,bold]-> STATE19 <<choice_color_4>> : [guardVarEquals("value3")] (order=0)
STATE18 -[#6A5ACD,bold]-> STATE20 <<choice_color_4>> : (order=1)
STATE19 -[#FFD700,bold]-> STATE1 <<choice_color_3>> : [guardVarEquals("reset")] (order=0)
STATE19 -[#FFD700,bold]-> STATE20 <<choice_color_3>> : (order=1)
STATE20 -[#4682B4,bold]-> STATE5 <<choice_color_1>> : [guardEventHeaderEquals("header2","bar")] (order=0)
STATE20 -[#4682B4,bold]-> STATE1 <<choice_color_1>> : (order=1)
STATE11 -[#6A5ACD,bold]-> STATE13 <<choice_color_4>> : [guardVarEquals("goTo13")] (order=0)
STATE11 -[#6A5ACD,bold]-> STATE14 <<choice_color_4>> : [guardVarEquals("goTo14")] (order=1)
STATE11 -[#6A5ACD,bold]-> STATE15 <<choice_color_4>> : (order=2)
STATE12 -[#FFD700,bold]-> STATE10 <<choice_color_3>> : [guardVarEquals("goBack10")] (order=0)
STATE12 -[#FFD700,bold]-> STATE11 <<choice_color_3>> : (order=1)
STATE14 -[#32CD32,bold]-> STATE12 <<choice_color_2>> : [guardVarEquals("loop12")] (order=0)
STATE14 -[#32CD32,bold]-> STATE16 <<choice_color_2>> : (order=1)
STATE9 -[#32CD32,bold]-> STATE8 <<choice_color_2>> : [guardVarEquals("stepBack")] (order=0)
STATE9 -[#32CD32,bold]-> STATE7 <<choice_color_2>> : [guardVarEquals("stepBackMore")] (order=1)
STATE9 -[#32CD32,bold]-> STATE6 <<choice_color_2>> : (order=2)
STATE8 -[#FF69B4,bold]-> STATE9 <<choice_color_5>> : [guardVarEquals("forward9")] (order=0)
STATE8 -[#FF69B4,bold]-> STATE10 <<choice_color_5>> : (order=1)
STATE5 -[#1E90FF,bold]-> STATE_EXTRA_1 <<external>> <<e_Events_EVENTX>> : EVENTX
hide <<e_Events_EVENT9>> stereotype
hide <<e_Events_EVENT13>> stereotype
hide <<e_Events_EVENTY>> stereotype
hide <<e_Events_EVENT8>> stereotype
hide <<e_Events_EVENT14>> stereotype
hide <<e_Events_EVENTX>> stereotype
hide <<e_Events_EVENT7>> stereotype
hide <<e_Events_EVENT15>> stereotype
hide <<e_Events_EVENT6>> stereotype
hide <<e_Events_EVENT5>> stereotype
hide <<e_Events_EVENT4>> stereotype
hide <<e_Events_EVENT3>> stereotype
hide <<e_Events_EVENT2>> stereotype
hide <<e_Events_EVENT1>> stereotype
hide <<e_Events_EVENT10>> stereotype
hide <<e_Events_EVENT11>> stereotype
hide <<e_Events_EVENT12>> stereotype
STATEZ --> [*]
@enduml

View File

@@ -1,27 +1,68 @@
@startuml
skinparam state {
BackgroundColor<<choice>> LightYellow
}
<style>
state {
.choice {
BackgroundColor LightYellow
}
}
arrow {
LineThickness 1
.external { LineColor #1E90FF }
.internal { LineColor #32CD32 }
.local { LineColor #FFA500 }
.junction { LineColor #FF69B4 }
.join { LineColor #8A2BE2 }
.fork { LineColor #20B2AA }
.choice_type { LineColor #000000 }
.choice_color_0 { LineColor #FF6347 }
.choice_color_1 { LineColor #4682B4 }
.choice_color_2 { LineColor #32CD32 }
.choice_color_3 { LineColor #FFD700 }
.choice_color_4 { LineColor #6A5ACD }
.choice_color_5 { LineColor #FF69B4 }
}
/* Example: Highlight all transitions for a specific event */
/* .e_MY_EVENT { LineColor red } */
</style>
hide <<external>> stereotype
hide <<internal>> stereotype
hide <<local>> stereotype
hide <<junction>> stereotype
hide <<join>> stereotype
hide <<fork>> stereotype
hide <<choice_type>> stereotype
hide <<choice_color_0>> stereotype
hide <<choice_color_1>> stereotype
hide <<choice_color_2>> stereotype
hide <<choice_color_3>> stereotype
hide <<choice_color_4>> stereotype
hide <<choice_color_5>> stereotype
[*] --> SUBMITTED
state PAID <<choice>>
state SUBMITTED <<choice>>
SUBMITTED -[#1E90FF,bold]-> PAID : PAY
PAID -[#1E90FF,bold]-> FULFILLED : FULFILL
SUBMITTED -[#1E90FF,bold]-> CANCELED : CANCEL [λ]
PAID -[#1E90FF,bold]-> CANCELED : CANCEL
SUBMITTED -[#1E90FF,bold]-> SUBMITTED : ABCD
SUBMITTED -[#4682B4,bold]-> PAID2 : [λ] (order=0)
SUBMITTED -[#4682B4,bold]-> PAID3 : (order=1)
PAID -[#FF6347,bold]-> PAID1 : [λ] (order=0)
PAID -[#FF6347,bold]-> PAID2 : [guard1] (order=1)
PAID -[#FF6347,bold]-> HAPPEN : [λ] (order=2)
PAID -[#FF6347,bold]-> PAID3 : (order=3)
PAID2 -[#1E90FF,bold]-> CANCELED
PAID3 -[#1E90FF,bold]-> CANCELED
PAID1 -[#1E90FF,bold]-> PAID1 : ABCD / λ, action2
SUBMITTED -[#1E90FF,bold]-> PAID <<external>> <<e_OrderEvents_PAY>> : PAY
PAID -[#1E90FF,bold]-> FULFILLED <<external>> <<e_OrderEvents_FULFILL>> : FULFILL
SUBMITTED -[#1E90FF,bold]-> CANCELED <<external>> <<e_OrderEvents_CANCEL>> : CANCEL [λ]
PAID -[#1E90FF,bold]-> CANCELED <<external>> <<e_OrderEvents_CANCEL>> : CANCEL
SUBMITTED -[#1E90FF,bold]-> SUBMITTED <<external>> <<e_OrderEvents_ABCD>> : ABCD
SUBMITTED -[#4682B4,bold]-> PAID2 <<choice_color_1>> : [λ] (order=0)
SUBMITTED -[#4682B4,bold]-> PAID3 <<choice_color_1>> : (order=1)
PAID -[#FF6347,bold]-> PAID1 <<choice_color_0>> : [λ] (order=0)
PAID -[#FF6347,bold]-> PAID2 <<choice_color_0>> : [guard1] (order=1)
PAID -[#FF6347,bold]-> HAPPEN <<choice_color_0>> : [λ] (order=2)
PAID -[#FF6347,bold]-> PAID3 <<choice_color_0>> : (order=3)
PAID2 -[#1E90FF,bold]-> CANCELED <<external>>
PAID3 -[#1E90FF,bold]-> CANCELED <<external>>
PAID1 -[#1E90FF,bold]-> PAID1 <<external>> <<e_OrderEvents_ABCD>> : ABCD / λ, action2
hide <<e_OrderEvents_CANCEL>> stereotype
hide <<e_OrderEvents_FULFILL>> stereotype
hide <<e_OrderEvents_ABCD>> stereotype
hide <<e_OrderEvents_PAY>> stereotype
CANCELED --> [*]
FULFILLED --> [*]

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

View File

@@ -1,7 +1,44 @@
@startuml
skinparam state {
BackgroundColor<<choice>> LightYellow
}
<style>
state {
.choice {
BackgroundColor LightYellow
}
}
arrow {
LineThickness 1
.external { LineColor #1E90FF }
.internal { LineColor #32CD32 }
.local { LineColor #FFA500 }
.junction { LineColor #FF69B4 }
.join { LineColor #8A2BE2 }
.fork { LineColor #20B2AA }
.choice_type { LineColor #000000 }
.choice_color_0 { LineColor #FF6347 }
.choice_color_1 { LineColor #4682B4 }
.choice_color_2 { LineColor #32CD32 }
.choice_color_3 { LineColor #FFD700 }
.choice_color_4 { LineColor #6A5ACD }
.choice_color_5 { LineColor #FF69B4 }
}
/* Example: Highlight all transitions for a specific event */
/* .e_MY_EVENT { LineColor red } */
</style>
hide <<external>> stereotype
hide <<internal>> stereotype
hide <<local>> stereotype
hide <<junction>> stereotype
hide <<join>> stereotype
hide <<fork>> stereotype
hide <<choice_type>> stereotype
hide <<choice_color_0>> stereotype
hide <<choice_color_1>> stereotype
hide <<choice_color_2>> stereotype
hide <<choice_color_3>> stereotype
hide <<choice_color_4>> stereotype
hide <<choice_color_5>> stereotype
[*] --> STATE1
@@ -18,58 +55,77 @@ state STATE9 <<choice>>
state STATE19 <<choice>>
state STATE18 <<choice>>
STATE1 -[#1E90FF,bold]-> STATE2 : EVENT1
STATE2 -[#1E90FF,bold]-> STATE3 : EVENT2
STATE3 -[#1E90FF,bold]-> STATE4 : EVENT3
STATE4 -[#1E90FF,bold]-> STATE5 : EVENT4
STATE5 -[#1E90FF,bold]-> STATE6 : EVENT5
STATE6 -[#1E90FF,bold]-> STATE7 : EVENT6
STATE7 -[#1E90FF,bold]-> STATE8 : EVENT7
STATE8 -[#1E90FF,bold]-> STATE9 : EVENT8
STATE9 -[#1E90FF,bold]-> STATE10 : EVENT9
STATE10 -[#1E90FF,bold]-> STATE11 : EVENT10
STATE11 -[#1E90FF,bold]-> STATE12 : EVENT11
STATE12 -[#1E90FF,bold]-> STATE13 : EVENT12
STATE13 -[#1E90FF,bold]-> STATE14 : EVENT13
STATE14 -[#1E90FF,bold]-> STATE15 : EVENT14
STATE15 -[#1E90FF,bold]-> STATE16 : EVENT15
STATE1 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE2 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE3 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE5 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> STATEY : EVENTY
STATEY -[#4682B4,bold]-> STATEX : [guardVarEquals("value1")] (order=0)
STATEY -[#4682B4,bold]-> STATEZ : (order=1)
STATE16 -[#4682B4,bold]-> STATE17 : [guardVarEquals("value1")] (order=0)
STATE16 -[#4682B4,bold]-> STATE18 : [guardVarEquals("value2")] (order=1)
STATE16 -[#4682B4,bold]-> STATE19 : (order=2)
STATE17 -[#FF6347,bold]-> STATE20 : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE17 -[#FF6347,bold]-> STATE16 : (order=1)
STATE18 -[#FF69B4,bold]-> STATE19 : [guardVarEquals("value3")] (order=0)
STATE18 -[#FF69B4,bold]-> STATE20 : (order=1)
STATE19 -[#6A5ACD,bold]-> STATE1 : [guardVarEquals("reset")] (order=0)
STATE19 -[#6A5ACD,bold]-> STATE20 : (order=1)
STATE20 -[#32CD32,bold]-> STATE5 : [guardEventHeaderEquals("header2","bar")] (order=0)
STATE20 -[#32CD32,bold]-> STATE1 : (order=1)
STATE11 -[#FF69B4,bold]-> STATE13 : [guardVarEquals("goTo13")] (order=0)
STATE11 -[#FF69B4,bold]-> STATE14 : [guardVarEquals("goTo14")] (order=1)
STATE11 -[#FF69B4,bold]-> STATE15 : (order=2)
STATE12 -[#6A5ACD,bold]-> STATE10 : [guardVarEquals("goBack10")] (order=0)
STATE12 -[#6A5ACD,bold]-> STATE11 : (order=1)
STATE14 -[#FFD700,bold]-> STATE12 : [guardVarEquals("loop12")] (order=0)
STATE14 -[#FFD700,bold]-> STATE16 : (order=1)
STATE9 -[#FFD700,bold]-> STATE8 : [guardVarEquals("stepBack")] (order=0)
STATE9 -[#FFD700,bold]-> STATE7 : [guardVarEquals("stepBackMore")] (order=1)
STATE9 -[#FFD700,bold]-> STATE6 : (order=2)
STATE8 -[#FF6347,bold]-> STATE9 : [guardVarEquals("forward9")] (order=0)
STATE8 -[#FF6347,bold]-> STATE10 : (order=1)
STATE2 -[#1E90FF,bold]-> STATE_EXTRA_1 : EVENTX
STATE2 -[#32CD32,bold]-> STATE1 : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE2 -[#32CD32,bold]-> STATE_EXTRA_1 : (order=1)
STATE_EXTRA_1 -[#1E90FF,bold]-> STATE_EXTRA_3 : EVENTY
STATE_EXTRA_1 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL_2
STATE_EXTRA_2 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL_2
STATE1 -[#1E90FF,bold]-> STATE2 <<external>> <<e_Events_EVENT1>> : EVENT1
STATE2 -[#1E90FF,bold]-> STATE3 <<external>> <<e_Events_EVENT2>> : EVENT2
STATE3 -[#1E90FF,bold]-> STATE4 <<external>> <<e_Events_EVENT3>> : EVENT3
STATE4 -[#1E90FF,bold]-> STATE5 <<external>> <<e_Events_EVENT4>> : EVENT4
STATE5 -[#1E90FF,bold]-> STATE6 <<external>> <<e_Events_EVENT5>> : EVENT5
STATE6 -[#1E90FF,bold]-> STATE7 <<external>> <<e_Events_EVENT6>> : EVENT6
STATE7 -[#1E90FF,bold]-> STATE8 <<external>> <<e_Events_EVENT7>> : EVENT7
STATE8 -[#1E90FF,bold]-> STATE9 <<external>> <<e_Events_EVENT8>> : EVENT8
STATE9 -[#1E90FF,bold]-> STATE10 <<external>> <<e_Events_EVENT9>> : EVENT9
STATE10 -[#1E90FF,bold]-> STATE11 <<external>> <<e_Events_EVENT10>> : EVENT10
STATE11 -[#1E90FF,bold]-> STATE12 <<external>> <<e_Events_EVENT11>> : EVENT11
STATE12 -[#1E90FF,bold]-> STATE13 <<external>> <<e_Events_EVENT12>> : EVENT12
STATE13 -[#1E90FF,bold]-> STATE14 <<external>> <<e_Events_EVENT13>> : EVENT13
STATE14 -[#1E90FF,bold]-> STATE15 <<external>> <<e_Events_EVENT14>> : EVENT14
STATE15 -[#1E90FF,bold]-> STATE16 <<external>> <<e_Events_EVENT15>> : EVENT15
STATE1 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE2 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE3 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE5 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> STATEY <<external>> <<e_Events_EVENTY>> : EVENTY
STATEY -[#4682B4,bold]-> STATEX <<choice_color_1>> : [guardVarEquals("value1")] (order=0)
STATEY -[#4682B4,bold]-> STATEZ <<choice_color_1>> : (order=1)
STATE16 -[#4682B4,bold]-> STATE17 <<choice_color_1>> : [guardVarEquals("value1")] (order=0)
STATE16 -[#4682B4,bold]-> STATE18 <<choice_color_1>> : [guardVarEquals("value2")] (order=1)
STATE16 -[#4682B4,bold]-> STATE19 <<choice_color_1>> : (order=2)
STATE17 -[#FF6347,bold]-> STATE20 <<choice_color_0>> : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE17 -[#FF6347,bold]-> STATE16 <<choice_color_0>> : (order=1)
STATE18 -[#FF69B4,bold]-> STATE19 <<choice_color_5>> : [guardVarEquals("value3")] (order=0)
STATE18 -[#FF69B4,bold]-> STATE20 <<choice_color_5>> : (order=1)
STATE19 -[#6A5ACD,bold]-> STATE1 <<choice_color_4>> : [guardVarEquals("reset")] (order=0)
STATE19 -[#6A5ACD,bold]-> STATE20 <<choice_color_4>> : (order=1)
STATE20 -[#32CD32,bold]-> STATE5 <<choice_color_2>> : [guardEventHeaderEquals("header2","bar")] (order=0)
STATE20 -[#32CD32,bold]-> STATE1 <<choice_color_2>> : (order=1)
STATE11 -[#FF69B4,bold]-> STATE13 <<choice_color_5>> : [guardVarEquals("goTo13")] (order=0)
STATE11 -[#FF69B4,bold]-> STATE14 <<choice_color_5>> : [guardVarEquals("goTo14")] (order=1)
STATE11 -[#FF69B4,bold]-> STATE15 <<choice_color_5>> : (order=2)
STATE12 -[#6A5ACD,bold]-> STATE10 <<choice_color_4>> : [guardVarEquals("goBack10")] (order=0)
STATE12 -[#6A5ACD,bold]-> STATE11 <<choice_color_4>> : (order=1)
STATE14 -[#FFD700,bold]-> STATE12 <<choice_color_3>> : [guardVarEquals("loop12")] (order=0)
STATE14 -[#FFD700,bold]-> STATE16 <<choice_color_3>> : (order=1)
STATE9 -[#FFD700,bold]-> STATE8 <<choice_color_3>> : [guardVarEquals("stepBack")] (order=0)
STATE9 -[#FFD700,bold]-> STATE7 <<choice_color_3>> : [guardVarEquals("stepBackMore")] (order=1)
STATE9 -[#FFD700,bold]-> STATE6 <<choice_color_3>> : (order=2)
STATE8 -[#FF6347,bold]-> STATE9 <<choice_color_0>> : [guardVarEquals("forward9")] (order=0)
STATE8 -[#FF6347,bold]-> STATE10 <<choice_color_0>> : (order=1)
STATE2 -[#1E90FF,bold]-> STATE_EXTRA_1 <<external>> <<e_Events_EVENTX>> : EVENTX
STATE2 -[#32CD32,bold]-> STATE1 <<choice_color_2>> : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE2 -[#32CD32,bold]-> STATE_EXTRA_1 <<choice_color_2>> : (order=1)
STATE_EXTRA_1 -[#1E90FF,bold]-> STATE_EXTRA_3 <<external>> <<e_Events_EVENTY>> : EVENTY
STATE_EXTRA_1 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL_2>> : EVENT_CANCEL_2
STATE_EXTRA_2 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL_2>> : EVENT_CANCEL_2
hide <<e_Events_EVENT_CANCEL>> stereotype
hide <<e_Events_EVENT9>> stereotype
hide <<e_Events_EVENT13>> stereotype
hide <<e_Events_EVENTY>> stereotype
hide <<e_Events_EVENT8>> stereotype
hide <<e_Events_EVENT14>> stereotype
hide <<e_Events_EVENTX>> stereotype
hide <<e_Events_EVENT7>> stereotype
hide <<e_Events_EVENT15>> stereotype
hide <<e_Events_EVENT6>> stereotype
hide <<e_Events_EVENT5>> stereotype
hide <<e_Events_EVENT4>> stereotype
hide <<e_Events_EVENT3>> stereotype
hide <<e_Events_EVENT2>> stereotype
hide <<e_Events_EVENT1>> stereotype
hide <<e_Events_EVENT10>> stereotype
hide <<e_Events_EVENT11>> stereotype
hide <<e_Events_EVENT12>> stereotype
hide <<e_Events_EVENT_CANCEL_2>> stereotype
STATEZ --> [*]
@enduml

View File

@@ -1,7 +1,44 @@
@startuml
skinparam state {
BackgroundColor<<choice>> LightYellow
}
<style>
state {
.choice {
BackgroundColor LightYellow
}
}
arrow {
LineThickness 1
.external { LineColor #1E90FF }
.internal { LineColor #32CD32 }
.local { LineColor #FFA500 }
.junction { LineColor #FF69B4 }
.join { LineColor #8A2BE2 }
.fork { LineColor #20B2AA }
.choice_type { LineColor #000000 }
.choice_color_0 { LineColor #FF6347 }
.choice_color_1 { LineColor #4682B4 }
.choice_color_2 { LineColor #32CD32 }
.choice_color_3 { LineColor #FFD700 }
.choice_color_4 { LineColor #6A5ACD }
.choice_color_5 { LineColor #FF69B4 }
}
/* Example: Highlight all transitions for a specific event */
/* .e_MY_EVENT { LineColor red } */
</style>
hide <<external>> stereotype
hide <<internal>> stereotype
hide <<local>> stereotype
hide <<junction>> stereotype
hide <<join>> stereotype
hide <<fork>> stereotype
hide <<choice_type>> stereotype
hide <<choice_color_0>> stereotype
hide <<choice_color_1>> stereotype
hide <<choice_color_2>> stereotype
hide <<choice_color_3>> stereotype
hide <<choice_color_4>> stereotype
hide <<choice_color_5>> stereotype
[*] --> STATE1
@@ -17,55 +54,74 @@ state STATE9 <<choice>>
state STATE19 <<choice>>
state STATE18 <<choice>>
STATE1 -[#1E90FF,bold]-> STATE2 : EVENT1
STATE2 -[#1E90FF,bold]-> STATE3 : EVENT2
STATE3 -[#1E90FF,bold]-> STATE4 : EVENT3
STATE4 -[#1E90FF,bold]-> STATE5 : EVENT4
STATE5 -[#1E90FF,bold]-> STATE6 : EVENT5
STATE6 -[#1E90FF,bold]-> STATE7 : EVENT6
STATE7 -[#1E90FF,bold]-> STATE8 : EVENT7
STATE8 -[#1E90FF,bold]-> STATE9 : EVENT8
STATE9 -[#1E90FF,bold]-> STATE10 : EVENT9
STATE10 -[#1E90FF,bold]-> STATE11 : EVENT10
STATE11 -[#1E90FF,bold]-> STATE12 : EVENT11
STATE12 -[#1E90FF,bold]-> STATE13 : EVENT12
STATE13 -[#1E90FF,bold]-> STATE14 : EVENT13
STATE14 -[#1E90FF,bold]-> STATE15 : EVENT14
STATE15 -[#1E90FF,bold]-> STATE16 : EVENT15
STATE1 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE2 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE3 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE5 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> STATEY : EVENTY
STATEY -[#FF6347,bold]-> STATEX : [guardVarEquals("value1")] (order=0)
STATEY -[#FF6347,bold]-> STATEZ : (order=1)
STATE16 -[#4682B4,bold]-> STATE17 : [guardVarEquals("value1")] (order=0)
STATE16 -[#4682B4,bold]-> STATE18 : [guardVarEquals("value2")] (order=1)
STATE16 -[#4682B4,bold]-> STATE19 : (order=2)
STATE17 -[#FF6347,bold]-> STATE20 : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE17 -[#FF6347,bold]-> STATE16 : (order=1)
STATE18 -[#6A5ACD,bold]-> STATE19 : [guardVarEquals("value3")] (order=0)
STATE18 -[#6A5ACD,bold]-> STATE20 : (order=1)
STATE19 -[#FFD700,bold]-> STATE1 : [guardVarEquals("reset")] (order=0)
STATE19 -[#FFD700,bold]-> STATE20 : (order=1)
STATE20 -[#4682B4,bold]-> STATE5 : [guardEventHeaderEquals("header2","bar")] (order=0)
STATE20 -[#4682B4,bold]-> STATE1 : (order=1)
STATE11 -[#6A5ACD,bold]-> STATE13 : [guardVarEquals("goTo13")] (order=0)
STATE11 -[#6A5ACD,bold]-> STATE14 : [guardVarEquals("goTo14")] (order=1)
STATE11 -[#6A5ACD,bold]-> STATE15 : (order=2)
STATE12 -[#FFD700,bold]-> STATE10 : [guardVarEquals("goBack10")] (order=0)
STATE12 -[#FFD700,bold]-> STATE11 : (order=1)
STATE14 -[#32CD32,bold]-> STATE12 : [guardVarEquals("loop12")] (order=0)
STATE14 -[#32CD32,bold]-> STATE16 : (order=1)
STATE9 -[#32CD32,bold]-> STATE8 : [guardVarEquals("stepBack")] (order=0)
STATE9 -[#32CD32,bold]-> STATE7 : [guardVarEquals("stepBackMore")] (order=1)
STATE9 -[#32CD32,bold]-> STATE6 : (order=2)
STATE8 -[#FF69B4,bold]-> STATE9 : [guardVarEquals("forward9")] (order=0)
STATE8 -[#FF69B4,bold]-> STATE10 : (order=1)
STATE5 -[#1E90FF,bold]-> STATE_EXTRA_1 : EVENTX
STATE_EXTRA_1 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL
STATE_EXTRA_1 -[#1E90FF,bold]-> CANCEL : EVENT_CANCEL_2
STATE1 -[#1E90FF,bold]-> STATE2 <<external>> <<e_Events_EVENT1>> : EVENT1
STATE2 -[#1E90FF,bold]-> STATE3 <<external>> <<e_Events_EVENT2>> : EVENT2
STATE3 -[#1E90FF,bold]-> STATE4 <<external>> <<e_Events_EVENT3>> : EVENT3
STATE4 -[#1E90FF,bold]-> STATE5 <<external>> <<e_Events_EVENT4>> : EVENT4
STATE5 -[#1E90FF,bold]-> STATE6 <<external>> <<e_Events_EVENT5>> : EVENT5
STATE6 -[#1E90FF,bold]-> STATE7 <<external>> <<e_Events_EVENT6>> : EVENT6
STATE7 -[#1E90FF,bold]-> STATE8 <<external>> <<e_Events_EVENT7>> : EVENT7
STATE8 -[#1E90FF,bold]-> STATE9 <<external>> <<e_Events_EVENT8>> : EVENT8
STATE9 -[#1E90FF,bold]-> STATE10 <<external>> <<e_Events_EVENT9>> : EVENT9
STATE10 -[#1E90FF,bold]-> STATE11 <<external>> <<e_Events_EVENT10>> : EVENT10
STATE11 -[#1E90FF,bold]-> STATE12 <<external>> <<e_Events_EVENT11>> : EVENT11
STATE12 -[#1E90FF,bold]-> STATE13 <<external>> <<e_Events_EVENT12>> : EVENT12
STATE13 -[#1E90FF,bold]-> STATE14 <<external>> <<e_Events_EVENT13>> : EVENT13
STATE14 -[#1E90FF,bold]-> STATE15 <<external>> <<e_Events_EVENT14>> : EVENT14
STATE15 -[#1E90FF,bold]-> STATE16 <<external>> <<e_Events_EVENT15>> : EVENT15
STATE1 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE2 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE3 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE5 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE4 -[#1E90FF,bold]-> STATEY <<external>> <<e_Events_EVENTY>> : EVENTY
STATEY -[#FF6347,bold]-> STATEX <<choice_color_0>> : [guardVarEquals("value1")] (order=0)
STATEY -[#FF6347,bold]-> STATEZ <<choice_color_0>> : (order=1)
STATE16 -[#4682B4,bold]-> STATE17 <<choice_color_1>> : [guardVarEquals("value1")] (order=0)
STATE16 -[#4682B4,bold]-> STATE18 <<choice_color_1>> : [guardVarEquals("value2")] (order=1)
STATE16 -[#4682B4,bold]-> STATE19 <<choice_color_1>> : (order=2)
STATE17 -[#FF6347,bold]-> STATE20 <<choice_color_0>> : [guardEventHeaderEquals("header1","foo")] (order=0)
STATE17 -[#FF6347,bold]-> STATE16 <<choice_color_0>> : (order=1)
STATE18 -[#6A5ACD,bold]-> STATE19 <<choice_color_4>> : [guardVarEquals("value3")] (order=0)
STATE18 -[#6A5ACD,bold]-> STATE20 <<choice_color_4>> : (order=1)
STATE19 -[#FFD700,bold]-> STATE1 <<choice_color_3>> : [guardVarEquals("reset")] (order=0)
STATE19 -[#FFD700,bold]-> STATE20 <<choice_color_3>> : (order=1)
STATE20 -[#4682B4,bold]-> STATE5 <<choice_color_1>> : [guardEventHeaderEquals("header2","bar")] (order=0)
STATE20 -[#4682B4,bold]-> STATE1 <<choice_color_1>> : (order=1)
STATE11 -[#6A5ACD,bold]-> STATE13 <<choice_color_4>> : [guardVarEquals("goTo13")] (order=0)
STATE11 -[#6A5ACD,bold]-> STATE14 <<choice_color_4>> : [guardVarEquals("goTo14")] (order=1)
STATE11 -[#6A5ACD,bold]-> STATE15 <<choice_color_4>> : (order=2)
STATE12 -[#FFD700,bold]-> STATE10 <<choice_color_3>> : [guardVarEquals("goBack10")] (order=0)
STATE12 -[#FFD700,bold]-> STATE11 <<choice_color_3>> : (order=1)
STATE14 -[#32CD32,bold]-> STATE12 <<choice_color_2>> : [guardVarEquals("loop12")] (order=0)
STATE14 -[#32CD32,bold]-> STATE16 <<choice_color_2>> : (order=1)
STATE9 -[#32CD32,bold]-> STATE8 <<choice_color_2>> : [guardVarEquals("stepBack")] (order=0)
STATE9 -[#32CD32,bold]-> STATE7 <<choice_color_2>> : [guardVarEquals("stepBackMore")] (order=1)
STATE9 -[#32CD32,bold]-> STATE6 <<choice_color_2>> : (order=2)
STATE8 -[#FF69B4,bold]-> STATE9 <<choice_color_5>> : [guardVarEquals("forward9")] (order=0)
STATE8 -[#FF69B4,bold]-> STATE10 <<choice_color_5>> : (order=1)
STATE5 -[#1E90FF,bold]-> STATE_EXTRA_1 <<external>> <<e_Events_EVENTX>> : EVENTX
STATE_EXTRA_1 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL>> : EVENT_CANCEL
STATE_EXTRA_1 -[#1E90FF,bold]-> CANCEL <<external>> <<e_Events_EVENT_CANCEL_2>> : EVENT_CANCEL_2
hide <<e_Events_EVENT_CANCEL>> stereotype
hide <<e_Events_EVENT9>> stereotype
hide <<e_Events_EVENT13>> stereotype
hide <<e_Events_EVENTY>> stereotype
hide <<e_Events_EVENT8>> stereotype
hide <<e_Events_EVENT14>> stereotype
hide <<e_Events_EVENTX>> stereotype
hide <<e_Events_EVENT7>> stereotype
hide <<e_Events_EVENT15>> stereotype
hide <<e_Events_EVENT6>> stereotype
hide <<e_Events_EVENT5>> stereotype
hide <<e_Events_EVENT4>> stereotype
hide <<e_Events_EVENT3>> stereotype
hide <<e_Events_EVENT2>> stereotype
hide <<e_Events_EVENT1>> stereotype
hide <<e_Events_EVENT10>> stereotype
hide <<e_Events_EVENT11>> stereotype
hide <<e_Events_EVENT12>> stereotype
hide <<e_Events_EVENT_CANCEL_2>> stereotype
STATEZ --> [*]
@enduml