aboutsummaryrefslogtreecommitdiffstats
path: root/subprojects/frontend/src/persistence/initialValue.ts
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2023-09-26 03:29:51 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2023-09-26 16:11:32 +0200
commit3ba6f8fba9dbd6e479f4297a5a05b51273e461a3 (patch)
tree66c0d598fdcf93db51cf988547c4417bf80906a7 /subprojects/frontend/src/persistence/initialValue.ts
parentfix(query-interpreter): functional dependencies (diff)
downloadrefinery-3ba6f8fba9dbd6e479f4297a5a05b51273e461a3.tar.gz
refinery-3ba6f8fba9dbd6e479f4297a5a05b51273e461a3.tar.zst
refinery-3ba6f8fba9dbd6e479f4297a5a05b51273e461a3.zip
feat(frontend): save in URL fragment
Diffstat (limited to 'subprojects/frontend/src/persistence/initialValue.ts')
-rw-r--r--subprojects/frontend/src/persistence/initialValue.ts103
1 files changed, 103 insertions, 0 deletions
diff --git a/subprojects/frontend/src/persistence/initialValue.ts b/subprojects/frontend/src/persistence/initialValue.ts
new file mode 100644
index 00000000..25b24813
--- /dev/null
+++ b/subprojects/frontend/src/persistence/initialValue.ts
@@ -0,0 +1,103 @@
1/*
2 * SPDX-FileCopyrightText: 2023 The Refinery Authors <https://refinery.tools/>
3 *
4 * SPDX-License-Identifier: EPL-2.0
5 */
6
7export default `% Metamodel
8
9abstract class CompositeElement {
10 contains Region[] regions
11}
12
13class Region {
14 contains Vertex[] vertices opposite region
15}
16
17abstract class Vertex {
18 container Region region opposite vertices
19 contains Transition[] outgoingTransition opposite source
20 Transition[] incomingTransition opposite target
21}
22
23class Transition {
24 container Vertex source opposite outgoingTransition
25 Vertex[1] target opposite incomingTransition
26}
27
28abstract class Pseudostate extends Vertex.
29
30abstract class RegularState extends Vertex.
31
32class Entry extends Pseudostate.
33
34class Exit extends Pseudostate.
35
36class Choice extends Pseudostate.
37
38class FinalState extends RegularState.
39
40class State extends RegularState, CompositeElement.
41
42class Statechart extends CompositeElement.
43
44% Constraints
45
46%% Entry
47
48pred entryInRegion(Region r, Entry e) <->
49 vertices(r, e).
50
51error noEntryInRegion(Region r) <->
52 !entryInRegion(r, _).
53
54error multipleEntryInRegion(Region r) <->
55 entryInRegion(r, e1),
56 entryInRegion(r, e2),
57 e1 != e2.
58
59error incomingToEntry(Transition t, Entry e) <->
60 target(t, e).
61
62error noOutgoingTransitionFromEntry(Entry e) <->
63 !source(_, e).
64
65error multipleTransitionFromEntry(Entry e, Transition t1, Transition t2) <->
66 outgoingTransition(e, t1),
67 outgoingTransition(e, t2),
68 t1 != t2.
69
70%% Exit
71
72error outgoingFromExit(Transition t, Exit e) <->
73 source(t, e).
74
75%% Final
76
77error outgoingFromFinal(Transition t, FinalState e) <->
78 source(t, e).
79
80%% State vs Region
81
82pred stateInRegion(Region r, State s) <->
83 vertices(r, s).
84
85error noStateInRegion(Region r) <->
86 !stateInRegion(r, _).
87
88%% Choice
89
90error choiceHasNoOutgoing(Choice c) <->
91 !source(_, c).
92
93error choiceHasNoIncoming(Choice c) <->
94 !target(_, c).
95
96% Instance model
97
98Statechart(sct).
99
100% Scope
101
102scope node = 20..30, Region = 2..*, Choice = 1..*, Statechart += 0.
103`;