aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2022-09-13 20:39:27 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2022-09-14 12:10:43 +0200
commit748bf89911359bffbfafe354e522f7d656488146 (patch)
tree555fe86e0a068eda1f84538faaca8d6e76fd3bd8
parentchore(deps): bump dependencies (diff)
downloadrefinery-748bf89911359bffbfafe354e522f7d656488146.tar.gz
refinery-748bf89911359bffbfafe354e522f7d656488146.tar.zst
refinery-748bf89911359bffbfafe354e522f7d656488146.zip
refactor(language): clarify containment hierarchy
-rw-r--r--package.json2
-rw-r--r--subprojects/frontend/package.json16
-rw-r--r--subprojects/frontend/src/language/problem.grammar21
-rw-r--r--subprojects/frontend/src/language/problemLanguageSupport.ts3
-rw-r--r--subprojects/frontend/src/theme/ThemeProvider.tsx10
-rw-r--r--subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java7
-rw-r--r--subprojects/language-model/problem.aird240
-rw-r--r--subprojects/language-model/src/main/resources/model/problem.ecore18
-rw-r--r--subprojects/language-model/src/main/resources/model/problem.genmodel16
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/Problem.xtext27
-rw-r--r--subprojects/language/src/main/java/tools/refinery/language/ProblemUtil.java37
-rw-r--r--subprojects/language/src/main/resources/tools/refinery/language/builtin.problem19
-rw-r--r--yarn.lock221
13 files changed, 441 insertions, 196 deletions
diff --git a/package.json b/package.json
index 18f0c821..47902ca6 100644
--- a/package.json
+++ b/package.json
@@ -10,7 +10,7 @@
10 }, 10 },
11 "packageManager": "yarn@3.2.3", 11 "packageManager": "yarn@3.2.3",
12 "devDependencies": { 12 "devDependencies": {
13 "eslint": "^8.23.0", 13 "eslint": "^8.23.1",
14 "typescript": "~4.8.3" 14 "typescript": "~4.8.3"
15 } 15 }
16} 16}
diff --git a/subprojects/frontend/package.json b/subprojects/frontend/package.json
index 4ecf2efb..02c6e026 100644
--- a/subprojects/frontend/package.json
+++ b/subprojects/frontend/package.json
@@ -23,7 +23,7 @@
23 }, 23 },
24 "homepage": "https://refinery.tools", 24 "homepage": "https://refinery.tools",
25 "dependencies": { 25 "dependencies": {
26 "@codemirror/autocomplete": "^6.1.1", 26 "@codemirror/autocomplete": "^6.2.0",
27 "@codemirror/commands": "^6.1.0", 27 "@codemirror/commands": "^6.1.0",
28 "@codemirror/language": "^6.2.1", 28 "@codemirror/language": "^6.2.1",
29 "@codemirror/lint": "^6.0.0", 29 "@codemirror/lint": "^6.0.0",
@@ -39,7 +39,7 @@
39 "@lezer/lr": "^1.2.3", 39 "@lezer/lr": "^1.2.3",
40 "@material-icons/svg": "^1.0.33", 40 "@material-icons/svg": "^1.0.33",
41 "@mui/icons-material": "5.10.3", 41 "@mui/icons-material": "5.10.3",
42 "@mui/material": "5.10.4", 42 "@mui/material": "5.10.5",
43 "ansi-styles": "^6.1.1", 43 "ansi-styles": "^6.1.1",
44 "escape-string-regexp": "^5.0.0", 44 "escape-string-regexp": "^5.0.0",
45 "lodash-es": "^4.17.21", 45 "lodash-es": "^4.17.21",
@@ -53,7 +53,7 @@
53 "react": "^18.2.0", 53 "react": "^18.2.0",
54 "react-dom": "^18.2.0", 54 "react-dom": "^18.2.0",
55 "xstate": "^4.33.6", 55 "xstate": "^4.33.6",
56 "zod": "^3.19.0" 56 "zod": "^3.19.1"
57 }, 57 },
58 "devDependencies": { 58 "devDependencies": {
59 "@lezer/generator": "^1.1.1", 59 "@lezer/generator": "^1.1.1",
@@ -61,16 +61,16 @@
61 "@types/html-minifier-terser": "^7.0.0", 61 "@types/html-minifier-terser": "^7.0.0",
62 "@types/lodash-es": "^4.17.6", 62 "@types/lodash-es": "^4.17.6",
63 "@types/ms": "^0.7.31", 63 "@types/ms": "^0.7.31",
64 "@types/node": "^18.7.16", 64 "@types/node": "^18.7.18",
65 "@types/prettier": "^2.7.0", 65 "@types/prettier": "^2.7.0",
66 "@types/react": "^18.0.19", 66 "@types/react": "^18.0.20",
67 "@types/react-dom": "^18.0.6", 67 "@types/react-dom": "^18.0.6",
68 "@typescript-eslint/eslint-plugin": "^5.36.2", 68 "@typescript-eslint/eslint-plugin": "^5.37.0",
69 "@typescript-eslint/parser": "^5.36.2", 69 "@typescript-eslint/parser": "^5.37.0",
70 "@vitejs/plugin-react": "^2.1.0", 70 "@vitejs/plugin-react": "^2.1.0",
71 "@xstate/cli": "^0.3.3", 71 "@xstate/cli": "^0.3.3",
72 "cross-env": "^7.0.3", 72 "cross-env": "^7.0.3",
73 "eslint": "^8.23.0", 73 "eslint": "^8.23.1",
74 "eslint-config-airbnb": "^19.0.4", 74 "eslint-config-airbnb": "^19.0.4",
75 "eslint-config-airbnb-typescript": "^17.0.0", 75 "eslint-config-airbnb-typescript": "^17.0.0",
76 "eslint-config-prettier": "^8.5.0", 76 "eslint-config-prettier": "^8.5.0",
diff --git a/subprojects/frontend/src/language/problem.grammar b/subprojects/frontend/src/language/problem.grammar
index 95861110..7feb6bfe 100644
--- a/subprojects/frontend/src/language/problem.grammar
+++ b/subprojects/frontend/src/language/problem.grammar
@@ -18,7 +18,10 @@ statement {
18 (EnumBody { "{" sep<",", IndividualNodeName> "}" } | ".") 18 (EnumBody { "{" sep<",", IndividualNodeName> "}" } | ".")
19 } | 19 } |
20 PredicateDefinition { 20 PredicateDefinition {
21 (ckw<"error"> ckw<"pred">? | ckw<"pred">) 21 (
22 (ckw<"error"> | ckw<"contained"> | ckw<"containment">) ckw<"pred">? |
23 ckw<"pred">
24 )
22 RelationName ParameterList<Parameter>? 25 RelationName ParameterList<Parameter>?
23 PredicateBody { ("<->" sep<OrOp, Conjunction>)? "." } 26 PredicateBody { ("<->" sep<OrOp, Conjunction>)? "." }
24 } | 27 } |
@@ -28,23 +31,29 @@ statement {
28 RuleBody { ":" sep<OrOp, Conjunction> "==>" sep<OrOp, Consequent> "." } 31 RuleBody { ":" sep<OrOp, Conjunction> "==>" sep<OrOp, Consequent> "." }
29 } | 32 } |
30 Assertion { 33 Assertion {
31 kw<"default">? (NotOp | UnknownOp)? RelationName 34 ckw<"default">? (NotOp | UnknownOp)? RelationName
32 ParameterList<AssertionArgument> (":" LogicValue)? "." 35 ParameterList<AssertionArgument> (":" LogicValue)? "."
33 } | 36 } |
34 NodeValueAssertion { 37 NodeValueAssertion {
35 IndividualNodeName ":" Constant "." 38 QualifiedName ":" Constant "."
36 } | 39 } |
37 IndividualDeclaration { 40 IndividualDeclaration {
38 ckw<"indiv"> sep<",", IndividualNodeName> "." 41 ckw<"indiv"> sep<",", IndividualNodeName> "."
39 } | 42 } |
40 ScopeDeclaration { 43 ScopeDeclaration {
41 kw<"scope"> sep<",", ScopeElement> "." 44 ckw<"scope"> sep<",", ScopeElement> "."
42 } 45 }
43} 46}
44 47
45ReferenceDeclaration { 48ReferenceDeclaration {
46 (kw<"refers"> | kw<"contains">)? 49 (
47 RelationName 50 ExplicitContainmentReference[@dynamicPrecedence=1] {
51 (ckw<"refers"> | ckw<"contains"> | ckw<"container">) RelationName ~containment
52 } |
53 ImplicitContainmentReference {
54 RelationName ~containment
55 }
56 )
48 ("[" Multiplicity? "]")? 57 ("[" Multiplicity? "]")?
49 RelationName 58 RelationName
50 (kw<"opposite"> RelationName)? 59 (kw<"opposite"> RelationName)?
diff --git a/subprojects/frontend/src/language/problemLanguageSupport.ts b/subprojects/frontend/src/language/problemLanguageSupport.ts
index 07a884e7..03a7c4cc 100644
--- a/subprojects/frontend/src/language/problemLanguageSupport.ts
+++ b/subprojects/frontend/src/language/problemLanguageSupport.ts
@@ -27,7 +27,8 @@ const parserWithMetadata = parser.configure({
27 LineComment: t.lineComment, 27 LineComment: t.lineComment,
28 BlockComment: t.blockComment, 28 BlockComment: t.blockComment,
29 'problem class enum pred rule indiv scope': t.definitionKeyword, 29 'problem class enum pred rule indiv scope': t.definitionKeyword,
30 'abstract extends refers contains opposite error default': t.modifier, 30 'abstract extends refers contains container opposite': t.modifier,
31 'default error contained containment': t.modifier,
31 'true false unknown error': t.operatorKeyword, 32 'true false unknown error': t.operatorKeyword,
32 'may must current count': t.operatorKeyword, 33 'may must current count': t.operatorKeyword,
33 'new delete': t.keyword, 34 'new delete': t.keyword,
diff --git a/subprojects/frontend/src/theme/ThemeProvider.tsx b/subprojects/frontend/src/theme/ThemeProvider.tsx
index ffb18a06..550b3b30 100644
--- a/subprojects/frontend/src/theme/ThemeProvider.tsx
+++ b/subprojects/frontend/src/theme/ThemeProvider.tsx
@@ -70,8 +70,8 @@ const typography: TypographyVariantsOptions = {
70 fontFamily: 70 fontFamily:
71 '"InterVariable", "Inter", "Roboto", "Helvetica", "Arial", sans-serif', 71 '"InterVariable", "Inter", "Roboto", "Helvetica", "Arial", sans-serif',
72 fontWeightMedium: 600, 72 fontWeightMedium: 600,
73 fontWeightEditorNormal: 450, 73 fontWeightEditorNormal: 400,
74 fontWeightEditorBold: 650, 74 fontWeightEditorBold: 700,
75 editor: { 75 editor: {
76 fontFamily: 76 fontFamily:
77 '"JetBrains MonoVariable", "JetBrains Mono", "Cascadia Code", "Fira Code", monospace', 77 '"JetBrains MonoVariable", "JetBrains Mono", "Cascadia Code", "Fira Code", monospace',
@@ -173,7 +173,7 @@ const lightTheme = createResponsiveTheme({
173 divider: alpha('#19202b', 0.16), 173 divider: alpha('#19202b', 0.16),
174 outer: { 174 outer: {
175 background: '#f5f5f5', 175 background: '#f5f5f5',
176 border: '#d6d7d9', 176 border: '#c8c8c8',
177 }, 177 },
178 highlight: { 178 highlight: {
179 number: '#0084bc', 179 number: '#0084bc',
@@ -200,8 +200,8 @@ const lightTheme = createResponsiveTheme({
200const darkTheme = createResponsiveTheme({ 200const darkTheme = createResponsiveTheme({
201 typography: { 201 typography: {
202 ...typography, 202 ...typography,
203 fontWeightEditorNormal: 400, 203 fontWeightEditorNormal: 350,
204 fontWeightEditorBold: 600, 204 fontWeightEditorBold: 650,
205 }, 205 },
206 components: { 206 components: {
207 ...components, 207 ...components,
diff --git a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java
index 9c061c8f..477940aa 100644
--- a/subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java
+++ b/subprojects/language-ide/src/main/java/tools/refinery/language/ide/syntaxcoloring/ProblemSemanticHighlightingCalculator.java
@@ -20,6 +20,7 @@ import tools.refinery.language.model.problem.ClassDeclaration;
20import tools.refinery.language.model.problem.NamedElement; 20import tools.refinery.language.model.problem.NamedElement;
21import tools.refinery.language.model.problem.Node; 21import tools.refinery.language.model.problem.Node;
22import tools.refinery.language.model.problem.PredicateDefinition; 22import tools.refinery.language.model.problem.PredicateDefinition;
23import tools.refinery.language.model.problem.PredicateKind;
23import tools.refinery.language.model.problem.ProblemPackage; 24import tools.refinery.language.model.problem.ProblemPackage;
24import tools.refinery.language.model.problem.ReferenceDeclaration; 25import tools.refinery.language.model.problem.ReferenceDeclaration;
25 26
@@ -99,10 +100,12 @@ public class ProblemSemanticHighlightingCalculator extends DefaultSemanticHighli
99 if (eObject instanceof ClassDeclaration classDeclaration && classDeclaration.isAbstract()) { 100 if (eObject instanceof ClassDeclaration classDeclaration && classDeclaration.isAbstract()) {
100 classesBuilder.add(ABSTRACT_CLASS); 101 classesBuilder.add(ABSTRACT_CLASS);
101 } 102 }
102 if (eObject instanceof ReferenceDeclaration referenceDeclaration && referenceDeclaration.isContainment()) { 103 if (eObject instanceof ReferenceDeclaration referenceDeclaration
104 && ProblemUtil.isContainmentReference(referenceDeclaration)) {
103 classesBuilder.add(CONTAINMENT_CLASS); 105 classesBuilder.add(CONTAINMENT_CLASS);
104 } 106 }
105 if (eObject instanceof PredicateDefinition predicateDefinition && predicateDefinition.isError()) { 107 if (eObject instanceof PredicateDefinition predicateDefinition
108 && predicateDefinition.getKind() == PredicateKind.ERROR) {
106 classesBuilder.add(ERROR_CLASS); 109 classesBuilder.add(ERROR_CLASS);
107 } 110 }
108 if (eObject instanceof Node node) { 111 if (eObject instanceof Node node) {
diff --git a/subprojects/language-model/problem.aird b/subprojects/language-model/problem.aird
index 9bd76766..60d52cc4 100644
--- a/subprojects/language-model/problem.aird
+++ b/subprojects/language-model/problem.aird
@@ -7,7 +7,7 @@
7 <semanticResources>build/resources/main/model/problem.genmodel</semanticResources> 7 <semanticResources>build/resources/main/model/problem.genmodel</semanticResources>
8 <ownedViews xmi:type="viewpoint:DView" uid="_CsAAYKA4EeuqkpDnuik1sg"> 8 <ownedViews xmi:type="viewpoint:DView" uid="_CsAAYKA4EeuqkpDnuik1sg">
9 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/> 9 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
10 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_CsYa4KA4EeuqkpDnuik1sg" name="problem" repPath="#_CsUwgKA4EeuqkpDnuik1sg" changeId="e743d94a-193b-4553-83d6-610f55227616"> 10 <ownedRepresentationDescriptors xmi:type="viewpoint:DRepresentationDescriptor" uid="_CsYa4KA4EeuqkpDnuik1sg" name="problem" repPath="#_CsUwgKA4EeuqkpDnuik1sg" changeId="dcbd311b-404e-4566-9e24-dcd52dba4c23">
11 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> 11 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
12 <target xmi:type="ecore:EPackage" href="src/main/resources/model/problem.ecore#/"/> 12 <target xmi:type="ecore:EPackage" href="src/main/resources/model/problem.ecore#/"/>
13 </ownedRepresentationDescriptors> 13 </ownedRepresentationDescriptors>
@@ -50,9 +50,9 @@
50 <children xmi:type="notation:Node" xmi:id="_c-HCQKA4EeuqkpDnuik1sg" type="2003" element="_c-A7oKA4EeuqkpDnuik1sg"> 50 <children xmi:type="notation:Node" xmi:id="_c-HCQKA4EeuqkpDnuik1sg" type="2003" element="_c-A7oKA4EeuqkpDnuik1sg">
51 <children xmi:type="notation:Node" xmi:id="_c-HCQ6A4EeuqkpDnuik1sg" type="5007"/> 51 <children xmi:type="notation:Node" xmi:id="_c-HCQ6A4EeuqkpDnuik1sg" type="5007"/>
52 <children xmi:type="notation:Node" xmi:id="_c-HCRKA4EeuqkpDnuik1sg" type="7004"> 52 <children xmi:type="notation:Node" xmi:id="_c-HCRKA4EeuqkpDnuik1sg" type="7004">
53 <children xmi:type="notation:Node" xmi:id="_HjIR8KA5EeuqkpDnuik1sg" type="3010" element="_HjDZcKA5EeuqkpDnuik1sg"> 53 <children xmi:type="notation:Node" xmi:id="_91XrMDNlEe2fD4dIhR_vzA" type="3010" element="_902GwDNlEe2fD4dIhR_vzA">
54 <styles xmi:type="notation:FontStyle" xmi:id="_HjIR8aA5EeuqkpDnuik1sg" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/> 54 <styles xmi:type="notation:FontStyle" xmi:id="_91XrMTNlEe2fD4dIhR_vzA" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
55 <layoutConstraint xmi:type="notation:Location" xmi:id="_HjIR8qA5EeuqkpDnuik1sg"/> 55 <layoutConstraint xmi:type="notation:Location" xmi:id="_91XrMjNlEe2fD4dIhR_vzA"/>
56 </children> 56 </children>
57 <styles xmi:type="notation:SortingStyle" xmi:id="_c-HCRaA4EeuqkpDnuik1sg"/> 57 <styles xmi:type="notation:SortingStyle" xmi:id="_c-HCRaA4EeuqkpDnuik1sg"/>
58 <styles xmi:type="notation:FilteringStyle" xmi:id="_c-HCRqA4EeuqkpDnuik1sg"/> 58 <styles xmi:type="notation:FilteringStyle" xmi:id="_c-HCRqA4EeuqkpDnuik1sg"/>
@@ -76,9 +76,9 @@
76 <children xmi:type="notation:Node" xmi:id="_fit3kKA5EeuqkpDnuik1sg" type="2003" element="_fihqUKA5EeuqkpDnuik1sg"> 76 <children xmi:type="notation:Node" xmi:id="_fit3kKA5EeuqkpDnuik1sg" type="2003" element="_fihqUKA5EeuqkpDnuik1sg">
77 <children xmi:type="notation:Node" xmi:id="_fit3k6A5EeuqkpDnuik1sg" type="5007"/> 77 <children xmi:type="notation:Node" xmi:id="_fit3k6A5EeuqkpDnuik1sg" type="5007"/>
78 <children xmi:type="notation:Node" xmi:id="_fit3lKA5EeuqkpDnuik1sg" type="7004"> 78 <children xmi:type="notation:Node" xmi:id="_fit3lKA5EeuqkpDnuik1sg" type="7004">
79 <children xmi:type="notation:Node" xmi:id="_sv1ZIKA5EeuqkpDnuik1sg" type="3010" element="_svs2QKA5EeuqkpDnuik1sg"> 79 <children xmi:type="notation:Node" xmi:id="_id6DcDNoEe2fD4dIhR_vzA" type="3010" element="_ida7QDNoEe2fD4dIhR_vzA">
80 <styles xmi:type="notation:FontStyle" xmi:id="_sv1ZIaA5EeuqkpDnuik1sg" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/> 80 <styles xmi:type="notation:FontStyle" xmi:id="_id6DcTNoEe2fD4dIhR_vzA" fontColor="2697711" fontName="Noto Sans" fontHeight="8"/>
81 <layoutConstraint xmi:type="notation:Location" xmi:id="_sv1ZIqA5EeuqkpDnuik1sg"/> 81 <layoutConstraint xmi:type="notation:Location" xmi:id="_id6DcjNoEe2fD4dIhR_vzA"/>
82 </children> 82 </children>
83 <styles xmi:type="notation:SortingStyle" xmi:id="_fit3laA5EeuqkpDnuik1sg"/> 83 <styles xmi:type="notation:SortingStyle" xmi:id="_fit3laA5EeuqkpDnuik1sg"/>
84 <styles xmi:type="notation:FilteringStyle" xmi:id="_fit3lqA5EeuqkpDnuik1sg"/> 84 <styles xmi:type="notation:FilteringStyle" xmi:id="_fit3lqA5EeuqkpDnuik1sg"/>
@@ -219,7 +219,7 @@
219 <styles xmi:type="notation:FilteringStyle" xmi:id="_BMfjNqA9EeuqkpDnuik1sg"/> 219 <styles xmi:type="notation:FilteringStyle" xmi:id="_BMfjNqA9EeuqkpDnuik1sg"/>
220 </children> 220 </children>
221 <styles xmi:type="notation:ShapeStyle" xmi:id="_BMfjMaA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/> 221 <styles xmi:type="notation:ShapeStyle" xmi:id="_BMfjMaA9EeuqkpDnuik1sg" fontName="Noto Sans" fontHeight="8"/>
222 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BMfjMqA9EeuqkpDnuik1sg" x="1917" y="180" width="120" height="100"/> 222 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_BMfjMqA9EeuqkpDnuik1sg" x="1921" y="60" width="120" height="100"/>
223 </children> 223 </children>
224 <children xmi:type="notation:Node" xmi:id="_QUDYMKA9EeuqkpDnuik1sg" type="2003" element="_QTzgkKA9EeuqkpDnuik1sg"> 224 <children xmi:type="notation:Node" xmi:id="_QUDYMKA9EeuqkpDnuik1sg" type="2003" element="_QTzgkKA9EeuqkpDnuik1sg">
225 <children xmi:type="notation:Node" xmi:id="_QUDYM6A9EeuqkpDnuik1sg" type="5007"/> 225 <children xmi:type="notation:Node" xmi:id="_QUDYM6A9EeuqkpDnuik1sg" type="5007"/>
@@ -550,7 +550,7 @@
550 <styles xmi:type="notation:FilteringStyle" xmi:id="_eKwNAxEKEe2AArBmfNpEZA"/> 550 <styles xmi:type="notation:FilteringStyle" xmi:id="_eKwNAxEKEe2AArBmfNpEZA"/>
551 </children> 551 </children>
552 <styles xmi:type="notation:ShapeStyle" xmi:id="_eKvl8REKEe2AArBmfNpEZA" fontName="Noto Sans" fontHeight="8"/> 552 <styles xmi:type="notation:ShapeStyle" xmi:id="_eKvl8REKEe2AArBmfNpEZA" fontName="Noto Sans" fontHeight="8"/>
553 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKvl8hEKEe2AArBmfNpEZA" x="2072" y="180" width="120" height="100"/> 553 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_eKvl8hEKEe2AArBmfNpEZA" x="2076" y="60" width="120" height="100"/>
554 </children> 554 </children>
555 <children xmi:type="notation:Node" xmi:id="_BnoHYBg0Ee2_erjsEmF9GQ" type="2003" element="_BmVG4Bg0Ee2_erjsEmF9GQ"> 555 <children xmi:type="notation:Node" xmi:id="_BnoHYBg0Ee2_erjsEmF9GQ" type="2003" element="_BmVG4Bg0Ee2_erjsEmF9GQ">
556 <children xmi:type="notation:Node" xmi:id="_BnrxwBg0Ee2_erjsEmF9GQ" type="5007"/> 556 <children xmi:type="notation:Node" xmi:id="_BnrxwBg0Ee2_erjsEmF9GQ" type="5007"/>
@@ -605,7 +605,57 @@
605 <styles xmi:type="notation:FilteringStyle" xmi:id="_LinJ1hg0Ee2_erjsEmF9GQ"/> 605 <styles xmi:type="notation:FilteringStyle" xmi:id="_LinJ1hg0Ee2_erjsEmF9GQ"/>
606 </children> 606 </children>
607 <styles xmi:type="notation:ShapeStyle" xmi:id="_LinJ0Rg0Ee2_erjsEmF9GQ" fontName="Noto Sans" fontHeight="8"/> 607 <styles xmi:type="notation:ShapeStyle" xmi:id="_LinJ0Rg0Ee2_erjsEmF9GQ" fontName="Noto Sans" fontHeight="8"/>
608 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LinJ0hg0Ee2_erjsEmF9GQ" x="2223" y="180" width="120" height="111"/> 608 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LinJ0hg0Ee2_erjsEmF9GQ" x="2232" y="60" width="120" height="111"/>
609 </children>
610 <children xmi:type="notation:Node" xmi:id="_xp1icDNlEe2fD4dIhR_vzA" type="2003" element="_xpDfUDNlEe2fD4dIhR_vzA">
611 <children xmi:type="notation:Node" xmi:id="_xp2JgDNlEe2fD4dIhR_vzA" type="5007"/>
612 <children xmi:type="notation:Node" xmi:id="_xp2JgTNlEe2fD4dIhR_vzA" type="7004">
613 <children xmi:type="notation:Node" xmi:id="_2OW2gDNlEe2fD4dIhR_vzA" type="3010" element="_2N3HQDNlEe2fD4dIhR_vzA">
614 <styles xmi:type="notation:FontStyle" xmi:id="_2OW2gTNlEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/>
615 <layoutConstraint xmi:type="notation:Location" xmi:id="_2OW2gjNlEe2fD4dIhR_vzA"/>
616 </children>
617 <children xmi:type="notation:Node" xmi:id="_20SOEDNlEe2fD4dIhR_vzA" type="3010" element="_2zSIgDNlEe2fD4dIhR_vzA">
618 <styles xmi:type="notation:FontStyle" xmi:id="_20SOETNlEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/>
619 <layoutConstraint xmi:type="notation:Location" xmi:id="_20SOEjNlEe2fD4dIhR_vzA"/>
620 </children>
621 <children xmi:type="notation:Node" xmi:id="_4LeqgDNlEe2fD4dIhR_vzA" type="3010" element="_4K8fADNlEe2fD4dIhR_vzA">
622 <styles xmi:type="notation:FontStyle" xmi:id="_4LeqgTNlEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/>
623 <layoutConstraint xmi:type="notation:Location" xmi:id="_4LeqgjNlEe2fD4dIhR_vzA"/>
624 </children>
625 <children xmi:type="notation:Node" xmi:id="_5M7gcDNlEe2fD4dIhR_vzA" type="3010" element="_5MhQwDNlEe2fD4dIhR_vzA">
626 <styles xmi:type="notation:FontStyle" xmi:id="_5M7gcTNlEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/>
627 <layoutConstraint xmi:type="notation:Location" xmi:id="_5M7gcjNlEe2fD4dIhR_vzA"/>
628 </children>
629 <styles xmi:type="notation:SortingStyle" xmi:id="_xp2JgjNlEe2fD4dIhR_vzA"/>
630 <styles xmi:type="notation:FilteringStyle" xmi:id="_xp2JgzNlEe2fD4dIhR_vzA"/>
631 </children>
632 <styles xmi:type="notation:ShapeStyle" xmi:id="_xp1icTNlEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/>
633 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_xp1icjNlEe2fD4dIhR_vzA" x="2076" y="204" width="120" height="100"/>
634 </children>
635 <children xmi:type="notation:Node" xmi:id="_DFHboDNoEe2fD4dIhR_vzA" type="2003" element="_DD1pQDNoEe2fD4dIhR_vzA">
636 <children xmi:type="notation:Node" xmi:id="_DFICsDNoEe2fD4dIhR_vzA" type="5007"/>
637 <children xmi:type="notation:Node" xmi:id="_DFICsTNoEe2fD4dIhR_vzA" type="7004">
638 <children xmi:type="notation:Node" xmi:id="_FDz88DNoEe2fD4dIhR_vzA" type="3010" element="_FDOuIDNoEe2fD4dIhR_vzA">
639 <styles xmi:type="notation:FontStyle" xmi:id="_FDz88TNoEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/>
640 <layoutConstraint xmi:type="notation:Location" xmi:id="_FDz88jNoEe2fD4dIhR_vzA"/>
641 </children>
642 <children xmi:type="notation:Node" xmi:id="_F3CwsDNoEe2fD4dIhR_vzA" type="3010" element="_F2glMDNoEe2fD4dIhR_vzA">
643 <styles xmi:type="notation:FontStyle" xmi:id="_F3CwsTNoEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/>
644 <layoutConstraint xmi:type="notation:Location" xmi:id="_F3CwsjNoEe2fD4dIhR_vzA"/>
645 </children>
646 <children xmi:type="notation:Node" xmi:id="_GTcY0DNoEe2fD4dIhR_vzA" type="3010" element="_GS7bcDNoEe2fD4dIhR_vzA">
647 <styles xmi:type="notation:FontStyle" xmi:id="_GTcY0TNoEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/>
648 <layoutConstraint xmi:type="notation:Location" xmi:id="_GTcY0jNoEe2fD4dIhR_vzA"/>
649 </children>
650 <children xmi:type="notation:Node" xmi:id="_GyKVIDNoEe2fD4dIhR_vzA" type="3010" element="_Gx7EkDNoEe2fD4dIhR_vzA">
651 <styles xmi:type="notation:FontStyle" xmi:id="_GyKVITNoEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/>
652 <layoutConstraint xmi:type="notation:Location" xmi:id="_GyKVIjNoEe2fD4dIhR_vzA"/>
653 </children>
654 <styles xmi:type="notation:SortingStyle" xmi:id="_DFICsjNoEe2fD4dIhR_vzA"/>
655 <styles xmi:type="notation:FilteringStyle" xmi:id="_DFICszNoEe2fD4dIhR_vzA"/>
656 </children>
657 <styles xmi:type="notation:ShapeStyle" xmi:id="_DFHboTNoEe2fD4dIhR_vzA" fontName="Noto Sans" fontHeight="8"/>
658 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DFHbojNoEe2fD4dIhR_vzA" x="1921" y="204" width="120" height="100"/>
609 </children> 659 </children>
610 <styles xmi:type="notation:DiagramStyle" xmi:id="_CsZB8qA4EeuqkpDnuik1sg"/> 660 <styles xmi:type="notation:DiagramStyle" xmi:id="_CsZB8qA4EeuqkpDnuik1sg"/>
611 <edges xmi:type="notation:Edge" xmi:id="_4eaYwKA8EeuqkpDnuik1sg" type="4001" element="_4eU5TqA8EeuqkpDnuik1sg" source="_D1D6MKA4EeuqkpDnuik1sg" target="_xsq_MKA8EeuqkpDnuik1sg"> 661 <edges xmi:type="notation:Edge" xmi:id="_4eaYwKA8EeuqkpDnuik1sg" type="4001" element="_4eU5TqA8EeuqkpDnuik1sg" source="_D1D6MKA4EeuqkpDnuik1sg" target="_xsq_MKA8EeuqkpDnuik1sg">
@@ -722,17 +772,17 @@
722 </edges> 772 </edges>
723 <edges xmi:type="notation:Edge" xmi:id="_Vj1sQKA8EeuqkpDnuik1sg" type="4001" element="_VjwMzqA8EeuqkpDnuik1sg" source="_6KEUMKA6EeuqkpDnuik1sg" target="_EfWNUKA4EeuqkpDnuik1sg"> 773 <edges xmi:type="notation:Edge" xmi:id="_Vj1sQKA8EeuqkpDnuik1sg" type="4001" element="_VjwMzqA8EeuqkpDnuik1sg" source="_6KEUMKA6EeuqkpDnuik1sg" target="_EfWNUKA4EeuqkpDnuik1sg">
724 <children xmi:type="notation:Node" xmi:id="_Vj1sRKA8EeuqkpDnuik1sg" type="6001"> 774 <children xmi:type="notation:Node" xmi:id="_Vj1sRKA8EeuqkpDnuik1sg" type="6001">
725 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj1sRaA8EeuqkpDnuik1sg" x="-42" y="526"/> 775 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj1sRaA8EeuqkpDnuik1sg" x="-37" y="526"/>
726 </children> 776 </children>
727 <children xmi:type="notation:Node" xmi:id="_Vj1sRqA8EeuqkpDnuik1sg" type="6002"> 777 <children xmi:type="notation:Node" xmi:id="_Vj1sRqA8EeuqkpDnuik1sg" type="6002">
728 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj1sR6A8EeuqkpDnuik1sg" x="174" y="-10"/> 778 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj1sR6A8EeuqkpDnuik1sg" x="176" y="-10"/>
729 </children> 779 </children>
730 <children xmi:type="notation:Node" xmi:id="_Vj1sSKA8EeuqkpDnuik1sg" type="6003"> 780 <children xmi:type="notation:Node" xmi:id="_Vj1sSKA8EeuqkpDnuik1sg" type="6003">
731 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj1sSaA8EeuqkpDnuik1sg" x="-51" y="10"/> 781 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Vj1sSaA8EeuqkpDnuik1sg" x="-41" y="10"/>
732 </children> 782 </children>
733 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Vj1sQaA8EeuqkpDnuik1sg" routing="Rectilinear"/> 783 <styles xmi:type="notation:ConnectorStyle" xmi:id="_Vj1sQaA8EeuqkpDnuik1sg" routing="Rectilinear"/>
734 <styles xmi:type="notation:FontStyle" xmi:id="_Vj1sQqA8EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/> 784 <styles xmi:type="notation:FontStyle" xmi:id="_Vj1sQqA8EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
735 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Vj1sQ6A8EeuqkpDnuik1sg" points="[-48, 24, 553, 682]$[-720, 24, -119, 682]$[-720, -708, -119, -50]$[-660, -708, -59, -50]"/> 785 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_Vj1sQ6A8EeuqkpDnuik1sg" points="[-48, 24, 553, 682]$[-720, 24, -119, 682]$[-720, -696, -119, -38]$[-660, -696, -59, -38]"/>
736 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Vj1sSqA8EeuqkpDnuik1sg" id="(0.4067796610169492,0.0)"/> 786 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Vj1sSqA8EeuqkpDnuik1sg" id="(0.4067796610169492,0.0)"/>
737 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Vj1sS6A8EeuqkpDnuik1sg" id="(0.5,1.0)"/> 787 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_Vj1sS6A8EeuqkpDnuik1sg" id="(0.5,1.0)"/>
738 </edges> 788 </edges>
@@ -864,22 +914,6 @@
864 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-YCtQNawEeuymriYTNxK2g" id="(1.0,0.12244897959183673)"/> 914 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-YCtQNawEeuymriYTNxK2g" id="(1.0,0.12244897959183673)"/>
865 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-YCtQdawEeuymriYTNxK2g" id="(0.0,0.6122448979591837)"/> 915 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-YCtQdawEeuymriYTNxK2g" id="(0.0,0.6122448979591837)"/>
866 </edges> 916 </edges>
867 <edges xmi:type="notation:Edge" xmi:id="_2ko-QKA9EeuqkpDnuik1sg" type="4001" element="_2kWqbKA9EeuqkpDnuik1sg" source="_zaq8oKA9EeuqkpDnuik1sg" target="_JT0o8KA4EeuqkpDnuik1sg">
868 <children xmi:type="notation:Node" xmi:id="_2ko-RKA9EeuqkpDnuik1sg" type="6001">
869 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2ko-RaA9EeuqkpDnuik1sg" x="-53" y="-17"/>
870 </children>
871 <children xmi:type="notation:Node" xmi:id="_2ko-RqA9EeuqkpDnuik1sg" type="6002">
872 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2ko-R6A9EeuqkpDnuik1sg" x="21" y="10"/>
873 </children>
874 <children xmi:type="notation:Node" xmi:id="_2ko-SKA9EeuqkpDnuik1sg" type="6003">
875 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_2ko-SaA9EeuqkpDnuik1sg" x="3" y="10"/>
876 </children>
877 <styles xmi:type="notation:ConnectorStyle" xmi:id="_2ko-QaA9EeuqkpDnuik1sg" routing="Rectilinear"/>
878 <styles xmi:type="notation:FontStyle" xmi:id="_2ko-QqA9EeuqkpDnuik1sg" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
879 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_2ko-Q6A9EeuqkpDnuik1sg" points="[0, 36, -218, 36]$[218, 36, 0, 36]"/>
880 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2ko-SqA9EeuqkpDnuik1sg" id="(1.0,0.24742268041237114)"/>
881 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_2ko-S6A9EeuqkpDnuik1sg" id="(0.0,0.24489795918367346)"/>
882 </edges>
883 <edges xmi:type="notation:Edge" xmi:id="_0V8EUKA4EeuqkpDnuik1sg" type="4001" element="_0V3L1qA4EeuqkpDnuik1sg" source="_c-HCQKA4EeuqkpDnuik1sg" target="_c-HCQKA4EeuqkpDnuik1sg"> 917 <edges xmi:type="notation:Edge" xmi:id="_0V8EUKA4EeuqkpDnuik1sg" type="4001" element="_0V3L1qA4EeuqkpDnuik1sg" source="_c-HCQKA4EeuqkpDnuik1sg" target="_c-HCQKA4EeuqkpDnuik1sg">
884 <children xmi:type="notation:Node" xmi:id="_0V8rYKA4EeuqkpDnuik1sg" type="6001"> 918 <children xmi:type="notation:Node" xmi:id="_0V8rYKA4EeuqkpDnuik1sg" type="6001">
885 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0V8rYaA4EeuqkpDnuik1sg" x="30" y="11"/> 919 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_0V8rYaA4EeuqkpDnuik1sg" x="30" y="11"/>
@@ -1854,6 +1888,22 @@
1854 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JYvTRBg0Ee2_erjsEmF9GQ" id="(0.3813559322033898,0.0)"/> 1888 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JYvTRBg0Ee2_erjsEmF9GQ" id="(0.3813559322033898,0.0)"/>
1855 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JYvTRRg0Ee2_erjsEmF9GQ" id="(0.5,0.5)"/> 1889 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_JYvTRRg0Ee2_erjsEmF9GQ" id="(0.5,0.5)"/>
1856 </edges> 1890 </edges>
1891 <edges xmi:type="notation:Edge" xmi:id="_lhC68DOBEe2fD4dIhR_vzA" type="4001" element="_2kWqbKA9EeuqkpDnuik1sg" source="_zaq8oKA9EeuqkpDnuik1sg" target="_EfWNUKA4EeuqkpDnuik1sg">
1892 <children xmi:type="notation:Node" xmi:id="_lhC69DOBEe2fD4dIhR_vzA" type="6001">
1893 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lhDiADOBEe2fD4dIhR_vzA" x="-115" y="-29"/>
1894 </children>
1895 <children xmi:type="notation:Node" xmi:id="_lhDiATOBEe2fD4dIhR_vzA" type="6002">
1896 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lhDiAjOBEe2fD4dIhR_vzA" x="-2" y="10"/>
1897 </children>
1898 <children xmi:type="notation:Node" xmi:id="_lhDiAzOBEe2fD4dIhR_vzA" type="6003">
1899 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_lhDiBDOBEe2fD4dIhR_vzA" x="2" y="10"/>
1900 </children>
1901 <styles xmi:type="notation:ConnectorStyle" xmi:id="_lhC68TOBEe2fD4dIhR_vzA" routing="Rectilinear"/>
1902 <styles xmi:type="notation:FontStyle" xmi:id="_lhC68jOBEe2fD4dIhR_vzA" fontColor="7490599" fontName="Noto Sans" fontHeight="8"/>
1903 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_lhC68zOBEe2fD4dIhR_vzA" points="[0, 24, -175, 219]$[85, 24, -90, 219]$[85, -180, -90, 15]$[170, -180, -5, 15]"/>
1904 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lhGlUDOBEe2fD4dIhR_vzA" id="(1.0,0.24742268041237114)"/>
1905 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_lhGlUTOBEe2fD4dIhR_vzA" id="(0.0423728813559322,0.21428571428571427)"/>
1906 </edges>
1857 </data> 1907 </data>
1858 </ownedAnnotationEntries> 1908 </ownedAnnotationEntries>
1859 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_Csiy8KA4EeuqkpDnuik1sg" source="DANNOTATION_CUSTOMIZATION_KEY"> 1909 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" uid="_Csiy8KA4EeuqkpDnuik1sg" source="DANNOTATION_CUSTOMIZATION_KEY">
@@ -1880,7 +1930,7 @@
1880 </ownedStyle> 1930 </ownedStyle>
1881 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 1931 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1882 </ownedDiagramElements> 1932 </ownedDiagramElements>
1883 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_EfNqcKA4EeuqkpDnuik1sg" name="Relation" tooltipText="" outgoingEdges="_XWbypqA5EeuqkpDnuik1sg" incomingEdges="_ODPlcKA4EeuqkpDnuik1sg _gRoBcKA4EeuqkpDnuik1sg _rUgDkKA5EeuqkpDnuik1sg _VjwMzqA8EeuqkpDnuik1sg _w-iG36A8EeuqkpDnuik1sg _Z7FrQKA6EeuqkpDnuik1sg _ufJ3IKA4EeuqkpDnuik1sg _VtPctqA4EeuqkpDnuik1sg _UwbfHtbGEeuymriYTNxK2g" width="12" height="10"> 1933 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_EfNqcKA4EeuqkpDnuik1sg" name="Relation" tooltipText="" outgoingEdges="_XWbypqA5EeuqkpDnuik1sg" incomingEdges="_ODPlcKA4EeuqkpDnuik1sg _gRoBcKA4EeuqkpDnuik1sg _rUgDkKA5EeuqkpDnuik1sg _VjwMzqA8EeuqkpDnuik1sg _w-iG36A8EeuqkpDnuik1sg _Z7FrQKA6EeuqkpDnuik1sg _ufJ3IKA4EeuqkpDnuik1sg _VtPctqA4EeuqkpDnuik1sg _UwbfHtbGEeuymriYTNxK2g _2kWqbKA9EeuqkpDnuik1sg" width="12" height="10">
1884 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Relation"/> 1934 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Relation"/>
1885 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Relation"/> 1935 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//Relation"/>
1886 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 1936 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1892,7 +1942,7 @@
1892 </ownedStyle> 1942 </ownedStyle>
1893 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 1943 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1894 </ownedDiagramElements> 1944 </ownedDiagramElements>
1895 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_JTstIKA4EeuqkpDnuik1sg" name="ClassDeclaration" tooltipText="" outgoingEdges="_ODPlcKA4EeuqkpDnuik1sg _VtPctqA4EeuqkpDnuik1sg _jk6-PKA4EeuqkpDnuik1sg _plK3JqA9EeuqkpDnuik1sg _-XLKltawEeuymriYTNxK2g" incomingEdges="_2kWqbKA9EeuqkpDnuik1sg" width="12" height="10"> 1945 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_JTstIKA4EeuqkpDnuik1sg" name="ClassDeclaration" tooltipText="" outgoingEdges="_ODPlcKA4EeuqkpDnuik1sg _VtPctqA4EeuqkpDnuik1sg _jk6-PKA4EeuqkpDnuik1sg _plK3JqA9EeuqkpDnuik1sg _-XLKltawEeuymriYTNxK2g" width="12" height="10">
1896 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ClassDeclaration"/> 1946 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ClassDeclaration"/>
1897 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ClassDeclaration"/> 1947 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ClassDeclaration"/>
1898 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 1948 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
@@ -1943,14 +1993,14 @@
1943 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 1993 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
1944 <arrangeConstraints>KEEP_SIZE</arrangeConstraints> 1994 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
1945 <arrangeConstraints>KEEP_RATIO</arrangeConstraints> 1995 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
1946 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_IMjpcqA5EeuqkpDnuik1sg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> 1996 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="__Bk_ojNlEe2fD4dIhR_vzA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
1947 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> 1997 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
1948 </ownedStyle> 1998 </ownedStyle>
1949 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 1999 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
1950 <ownedElements xmi:type="diagram:DNodeListElement" uid="_HjDZcKA5EeuqkpDnuik1sg" name="containment : EBoolean = false" tooltipText=""> 2000 <ownedElements xmi:type="diagram:DNodeListElement" uid="_902GwDNlEe2fD4dIhR_vzA" name="kind : ReferenceKind = DEFAULT" tooltipText="">
1951 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration/containment"/> 2001 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration/kind"/>
1952 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration/containment"/> 2002 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration/kind"/>
1953 <ownedStyle xmi:type="diagram:BundledImage" uid="_IMmswaA5EeuqkpDnuik1sg" labelAlignment="LEFT"> 2003 <ownedStyle xmi:type="diagram:BundledImage" uid="__BoC8jNlEe2fD4dIhR_vzA" labelAlignment="LEFT">
1954 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> 2004 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
1955 </ownedStyle> 2005 </ownedStyle>
1956 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> 2006 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
@@ -1959,12 +2009,12 @@
1959 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_gRoBcKA4EeuqkpDnuik1sg" sourceNode="_c-A7oKA4EeuqkpDnuik1sg" targetNode="_EfNqcKA4EeuqkpDnuik1sg"> 2009 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_gRoBcKA4EeuqkpDnuik1sg" sourceNode="_c-A7oKA4EeuqkpDnuik1sg" targetNode="_EfNqcKA4EeuqkpDnuik1sg">
1960 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration"/> 2010 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration"/>
1961 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration"/> 2011 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//ReferenceDeclaration"/>
1962 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_IMsMUKA5EeuqkpDnuik1sg" targetArrow="InputClosedArrow" routingStyle="tree"> 2012 <ownedStyle xmi:type="diagram:EdgeStyle" uid="__Bwl6DNlEe2fD4dIhR_vzA" targetArrow="InputClosedArrow" routingStyle="tree">
1963 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> 2013 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
1964 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_IMsMUaA5EeuqkpDnuik1sg" showIcon="false"> 2014 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="__Bwl6TNlEe2fD4dIhR_vzA" showIcon="false">
1965 <labelFormat>italic</labelFormat> 2015 <labelFormat>italic</labelFormat>
1966 </beginLabelStyle> 2016 </beginLabelStyle>
1967 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_IMsMUqA5EeuqkpDnuik1sg" showIcon="false"/> 2017 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="__Bwl6jNlEe2fD4dIhR_vzA" showIcon="false"/>
1968 </ownedStyle> 2018 </ownedStyle>
1969 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> 2019 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
1970 </ownedDiagramElements> 2020 </ownedDiagramElements>
@@ -2047,14 +2097,14 @@
2047 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints> 2097 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
2048 <arrangeConstraints>KEEP_SIZE</arrangeConstraints> 2098 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
2049 <arrangeConstraints>KEEP_RATIO</arrangeConstraints> 2099 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
2050 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_OHh2exEJEe2AArBmfNpEZA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216"> 2100 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_jX0uAjNoEe2fD4dIhR_vzA" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
2051 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/> 2101 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@style"/>
2052 </ownedStyle> 2102 </ownedStyle>
2053 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/> 2103 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']"/>
2054 <ownedElements xmi:type="diagram:DNodeListElement" uid="_svs2QKA5EeuqkpDnuik1sg" name="error : EBoolean = false" tooltipText=""> 2104 <ownedElements xmi:type="diagram:DNodeListElement" uid="_ida7QDNoEe2fD4dIhR_vzA" name="kind : PredicateKind = DEFAULT" tooltipText="">
2055 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//PredicateDefinition/error"/> 2105 <target xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//PredicateDefinition/kind"/>
2056 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//PredicateDefinition/error"/> 2106 <semanticElements xmi:type="ecore:EAttribute" href="src/main/resources/model/problem.ecore#//PredicateDefinition/kind"/>
2057 <ownedStyle xmi:type="diagram:BundledImage" uid="_tWLAYaA5EeuqkpDnuik1sg" labelAlignment="LEFT"> 2107 <ownedStyle xmi:type="diagram:BundledImage" uid="_jX18JDNoEe2fD4dIhR_vzA" labelAlignment="LEFT">
2058 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/> 2108 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']/@style"/>
2059 </ownedStyle> 2109 </ownedStyle>
2060 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> 2110 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
@@ -2063,12 +2113,12 @@
2063 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_rUgDkKA5EeuqkpDnuik1sg" sourceNode="_fihqUKA5EeuqkpDnuik1sg" targetNode="_EfNqcKA4EeuqkpDnuik1sg"> 2113 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_rUgDkKA5EeuqkpDnuik1sg" sourceNode="_fihqUKA5EeuqkpDnuik1sg" targetNode="_EfNqcKA4EeuqkpDnuik1sg">
2064 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//PredicateDefinition"/> 2114 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//PredicateDefinition"/>
2065 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//PredicateDefinition"/> 2115 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//PredicateDefinition"/>
2066 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_OHuDzhEJEe2AArBmfNpEZA" targetArrow="InputClosedArrow" routingStyle="tree"> 2116 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_jX7bzjNoEe2fD4dIhR_vzA" targetArrow="InputClosedArrow" routingStyle="tree">
2067 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/> 2117 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@style"/>
2068 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_OHuDzxEJEe2AArBmfNpEZA" showIcon="false"> 2118 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_jX7bzzNoEe2fD4dIhR_vzA" showIcon="false">
2069 <labelFormat>italic</labelFormat> 2119 <labelFormat>italic</labelFormat>
2070 </beginLabelStyle> 2120 </beginLabelStyle>
2071 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_OHuD0BEJEe2AArBmfNpEZA" showIcon="false"/> 2121 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_jX7b0DNoEe2fD4dIhR_vzA" showIcon="false"/>
2072 </ownedStyle> 2122 </ownedStyle>
2073 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> 2123 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
2074 </ownedDiagramElements> 2124 </ownedDiagramElements>
@@ -2551,7 +2601,7 @@
2551 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/> 2601 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EClass']/@subNodeMappings[name='EC%20EAttribute']"/>
2552 </ownedElements> 2602 </ownedElements>
2553 </ownedDiagramElements> 2603 </ownedDiagramElements>
2554 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_2kWqbKA9EeuqkpDnuik1sg" name="[0..1] targetType" sourceNode="_zac6MKA9EeuqkpDnuik1sg" targetNode="_JTstIKA4EeuqkpDnuik1sg"> 2604 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_2kWqbKA9EeuqkpDnuik1sg" name="[0..1] targetType" sourceNode="_zac6MKA9EeuqkpDnuik1sg" targetNode="_EfNqcKA4EeuqkpDnuik1sg">
2555 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//TypeScope/targetType"/> 2605 <target xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//TypeScope/targetType"/>
2556 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//TypeScope/targetType"/> 2606 <semanticElements xmi:type="ecore:EReference" href="src/main/resources/model/problem.ecore#//TypeScope/targetType"/>
2557 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_2kXRcKA9EeuqkpDnuik1sg" routingStyle="manhattan" strokeColor="0,0,0"> 2607 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_2kXRcKA9EeuqkpDnuik1sg" routingStyle="manhattan" strokeColor="0,0,0">
@@ -3288,12 +3338,12 @@
3288 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ddmjcCrZEeyyC-O0_LlY9w" sourceNode="_fihqUKA5EeuqkpDnuik1sg" targetNode="_A8hIkCrZEeyyC-O0_LlY9w"> 3338 <ownedDiagramElements xmi:type="diagram:DEdge" uid="_ddmjcCrZEeyyC-O0_LlY9w" sourceNode="_fihqUKA5EeuqkpDnuik1sg" targetNode="_A8hIkCrZEeyyC-O0_LlY9w">
3289 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//PredicateDefinition"/> 3339 <target xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//PredicateDefinition"/>
3290 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//PredicateDefinition"/> 3340 <semanticElements xmi:type="ecore:EClass" href="src/main/resources/model/problem.ecore#//PredicateDefinition"/>
3291 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_OHuD1BEJEe2AArBmfNpEZA" lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="tree"> 3341 <ownedStyle xmi:type="diagram:EdgeStyle" uid="_jX7b1DNoEe2fD4dIhR_vzA" lineStyle="dash" targetArrow="InputClosedArrow" routingStyle="tree">
3292 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.0/@style"/> 3342 <description xmi:type="style:EdgeStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']/@conditionnalStyles.0/@style"/>
3293 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_OHuD1REJEe2AArBmfNpEZA" showIcon="false"> 3343 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" uid="_jX7b1TNoEe2fD4dIhR_vzA" showIcon="false">
3294 <labelFormat>italic</labelFormat> 3344 <labelFormat>italic</labelFormat>
3295 </beginLabelStyle> 3345 </beginLabelStyle>
3296 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_OHuD1hEJEe2AArBmfNpEZA" showIcon="false"/> 3346 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" uid="_jX7b1jNoEe2fD4dIhR_vzA" showIcon="false"/>
3297 </ownedStyle> 3347 </ownedStyle>
3298 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/> 3348 <actualMapping xmi:type="description_1:EdgeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@edgeMappings[name='EC%20ESupertypes']"/>
3299 </ownedDiagramElements> 3349 </ownedDiagramElements>
@@ -3689,6 +3739,92 @@
3689 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/> 3739 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
3690 </ownedElements> 3740 </ownedElements>
3691 </ownedDiagramElements> 3741 </ownedDiagramElements>
3742 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_xpDfUDNlEe2fD4dIhR_vzA" name="ReferenceKind" tooltipText="" width="12" height="10">
3743 <target xmi:type="ecore:EEnum" href="src/main/resources/model/problem.ecore#//ReferenceKind"/>
3744 <semanticElements xmi:type="ecore:EEnum" href="src/main/resources/model/problem.ecore#//ReferenceKind"/>
3745 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
3746 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
3747 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
3748 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_xpDfUTNlEe2fD4dIhR_vzA" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202">
3749 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/>
3750 </ownedStyle>
3751 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/>
3752 <ownedElements xmi:type="diagram:DNodeListElement" uid="_2N3HQDNlEe2fD4dIhR_vzA" name="DEFAULT" tooltipText="">
3753 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ReferenceKind/DEFAULT"/>
3754 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ReferenceKind/DEFAULT"/>
3755 <ownedStyle xmi:type="diagram:BundledImage" uid="_2N3HQTNlEe2fD4dIhR_vzA" labelAlignment="LEFT">
3756 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
3757 </ownedStyle>
3758 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
3759 </ownedElements>
3760 <ownedElements xmi:type="diagram:DNodeListElement" uid="_2zSIgDNlEe2fD4dIhR_vzA" name="REFERENCE" tooltipText="">
3761 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ReferenceKind/REFERENCE"/>
3762 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ReferenceKind/REFERENCE"/>
3763 <ownedStyle xmi:type="diagram:BundledImage" uid="_2zSvkDNlEe2fD4dIhR_vzA" labelAlignment="LEFT">
3764 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
3765 </ownedStyle>
3766 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
3767 </ownedElements>
3768 <ownedElements xmi:type="diagram:DNodeListElement" uid="_4K8fADNlEe2fD4dIhR_vzA" name="CONTAINMENT" tooltipText="">
3769 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ReferenceKind/CONTAINMENT"/>
3770 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ReferenceKind/CONTAINMENT"/>
3771 <ownedStyle xmi:type="diagram:BundledImage" uid="_4K8fATNlEe2fD4dIhR_vzA" labelAlignment="LEFT">
3772 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
3773 </ownedStyle>
3774 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
3775 </ownedElements>
3776 <ownedElements xmi:type="diagram:DNodeListElement" uid="_5MhQwDNlEe2fD4dIhR_vzA" name="CONTAINER" tooltipText="">
3777 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ReferenceKind/CONTAINER"/>
3778 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//ReferenceKind/CONTAINER"/>
3779 <ownedStyle xmi:type="diagram:BundledImage" uid="_5MhQwTNlEe2fD4dIhR_vzA" labelAlignment="LEFT">
3780 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
3781 </ownedStyle>
3782 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
3783 </ownedElements>
3784 </ownedDiagramElements>
3785 <ownedDiagramElements xmi:type="diagram:DNodeList" uid="_DD1pQDNoEe2fD4dIhR_vzA" name="PredicateKind" tooltipText="" width="12" height="10">
3786 <target xmi:type="ecore:EEnum" href="src/main/resources/model/problem.ecore#//PredicateKind"/>
3787 <semanticElements xmi:type="ecore:EEnum" href="src/main/resources/model/problem.ecore#//PredicateKind"/>
3788 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
3789 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
3790 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
3791 <ownedStyle xmi:type="diagram:FlatContainerStyle" uid="_DD1pQTNoEe2fD4dIhR_vzA" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="221,236,202">
3792 <description xmi:type="style:FlatContainerStyleDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@style"/>
3793 </ownedStyle>
3794 <actualMapping xmi:type="description_1:ContainerMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']"/>
3795 <ownedElements xmi:type="diagram:DNodeListElement" uid="_FDOuIDNoEe2fD4dIhR_vzA" name="DEFAULT" tooltipText="">
3796 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//PredicateKind/DEFAULT"/>
3797 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//PredicateKind/DEFAULT"/>
3798 <ownedStyle xmi:type="diagram:BundledImage" uid="_FDPVMDNoEe2fD4dIhR_vzA" labelAlignment="LEFT">
3799 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
3800 </ownedStyle>
3801 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
3802 </ownedElements>
3803 <ownedElements xmi:type="diagram:DNodeListElement" uid="_F2glMDNoEe2fD4dIhR_vzA" name="ERROR" tooltipText="">
3804 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//PredicateKind/ERROR"/>
3805 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//PredicateKind/ERROR"/>
3806 <ownedStyle xmi:type="diagram:BundledImage" uid="_F2hMQDNoEe2fD4dIhR_vzA" labelAlignment="LEFT">
3807 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
3808 </ownedStyle>
3809 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
3810 </ownedElements>
3811 <ownedElements xmi:type="diagram:DNodeListElement" uid="_GS7bcDNoEe2fD4dIhR_vzA" name="CONTAINED" tooltipText="">
3812 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//PredicateKind/CONTAINED"/>
3813 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//PredicateKind/CONTAINED"/>
3814 <ownedStyle xmi:type="diagram:BundledImage" uid="_GS7bcTNoEe2fD4dIhR_vzA" labelAlignment="LEFT">
3815 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
3816 </ownedStyle>
3817 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
3818 </ownedElements>
3819 <ownedElements xmi:type="diagram:DNodeListElement" uid="_Gx7EkDNoEe2fD4dIhR_vzA" name="CONTAINMENT" tooltipText="">
3820 <target xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//PredicateKind/CONTAINMENT"/>
3821 <semanticElements xmi:type="ecore:EEnumLiteral" href="src/main/resources/model/problem.ecore#//PredicateKind/CONTAINMENT"/>
3822 <ownedStyle xmi:type="diagram:BundledImage" uid="_Gx7roDNoEe2fD4dIhR_vzA" labelAlignment="LEFT">
3823 <description xmi:type="style:BundledImageDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']/@style"/>
3824 </ownedStyle>
3825 <actualMapping xmi:type="description_1:NodeMapping" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@containerMappings[name='EC%20EEnum']/@subNodeMappings[name='EC%20EEnumLiteral']"/>
3826 </ownedElements>
3827 </ownedDiagramElements>
3692 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/> 3828 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
3693 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_CsWlsKA4EeuqkpDnuik1sg"/> 3829 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" uid="_CsWlsKA4EeuqkpDnuik1sg"/>
3694 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/> 3830 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
diff --git a/subprojects/language-model/src/main/resources/model/problem.ecore b/subprojects/language-model/src/main/resources/model/problem.ecore
index 571d52f3..58f26eae 100644
--- a/subprojects/language-model/src/main/resources/model/problem.ecore
+++ b/subprojects/language-model/src/main/resources/model/problem.ecore
@@ -20,15 +20,15 @@
20 <eClassifiers xsi:type="ecore:EClass" name="ReferenceDeclaration" eSuperTypes="#//Relation"> 20 <eClassifiers xsi:type="ecore:EClass" name="ReferenceDeclaration" eSuperTypes="#//Relation">
21 <eStructuralFeatures xsi:type="ecore:EReference" name="referenceType" eType="#//Relation"/> 21 <eStructuralFeatures xsi:type="ecore:EReference" name="referenceType" eType="#//Relation"/>
22 <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//ReferenceDeclaration"/> 22 <eStructuralFeatures xsi:type="ecore:EReference" name="opposite" eType="#//ReferenceDeclaration"/>
23 <eStructuralFeatures xsi:type="ecore:EAttribute" name="containment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
24 <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity" 23 <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity"
25 containment="true"/> 24 containment="true"/>
25 <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//ReferenceKind"/>
26 </eClassifiers> 26 </eClassifiers>
27 <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true"> 27 <eClassifiers xsi:type="ecore:EClass" name="NamedElement" abstract="true">
28 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> 28 <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
29 </eClassifiers> 29 </eClassifiers>
30 <eClassifiers xsi:type="ecore:EClass" name="PredicateDefinition" eSuperTypes="#//Relation #//ParametricDefinition"> 30 <eClassifiers xsi:type="ecore:EClass" name="PredicateDefinition" eSuperTypes="#//Relation #//ParametricDefinition">
31 <eStructuralFeatures xsi:type="ecore:EAttribute" name="error" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> 31 <eStructuralFeatures xsi:type="ecore:EAttribute" name="kind" eType="#//PredicateKind"/>
32 </eClassifiers> 32 </eClassifiers>
33 <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//Variable"> 33 <eClassifiers xsi:type="ecore:EClass" name="Parameter" eSuperTypes="#//Variable">
34 <eStructuralFeatures xsi:type="ecore:EReference" name="parameterType" eType="#//Relation"/> 34 <eStructuralFeatures xsi:type="ecore:EReference" name="parameterType" eType="#//Relation"/>
@@ -78,7 +78,7 @@
78 </eClassifiers> 78 </eClassifiers>
79 <eClassifiers xsi:type="ecore:EClass" name="Statement" abstract="true" interface="true"/> 79 <eClassifiers xsi:type="ecore:EClass" name="Statement" abstract="true" interface="true"/>
80 <eClassifiers xsi:type="ecore:EClass" name="TypeScope"> 80 <eClassifiers xsi:type="ecore:EClass" name="TypeScope">
81 <eStructuralFeatures xsi:type="ecore:EReference" name="targetType" eType="#//ClassDeclaration"/> 81 <eStructuralFeatures xsi:type="ecore:EReference" name="targetType" eType="#//Relation"/>
82 <eStructuralFeatures xsi:type="ecore:EAttribute" name="increment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/> 82 <eStructuralFeatures xsi:type="ecore:EAttribute" name="increment" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"/>
83 <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity" 83 <eStructuralFeatures xsi:type="ecore:EReference" name="multiplicity" eType="#//Multiplicity"
84 containment="true"/> 84 containment="true"/>
@@ -191,4 +191,16 @@
191 <eLiterals name="GREATER_EQ" value="3"/> 191 <eLiterals name="GREATER_EQ" value="3"/>
192 <eLiterals name="EQ" value="4"/> 192 <eLiterals name="EQ" value="4"/>
193 </eClassifiers> 193 </eClassifiers>
194 <eClassifiers xsi:type="ecore:EEnum" name="ReferenceKind">
195 <eLiterals name="DEFAULT"/>
196 <eLiterals name="REFERENCE" value="1"/>
197 <eLiterals name="CONTAINMENT" value="2"/>
198 <eLiterals name="CONTAINER" value="3"/>
199 </eClassifiers>
200 <eClassifiers xsi:type="ecore:EEnum" name="PredicateKind">
201 <eLiterals name="DEFAULT"/>
202 <eLiterals name="ERROR" value="1"/>
203 <eLiterals name="CONTAINED" value="2"/>
204 <eLiterals name="CONTAINMENT" value="3"/>
205 </eClassifiers>
194</ecore:EPackage> 206</ecore:EPackage>
diff --git a/subprojects/language-model/src/main/resources/model/problem.genmodel b/subprojects/language-model/src/main/resources/model/problem.genmodel
index 1b72ecfd..5442d29d 100644
--- a/subprojects/language-model/src/main/resources/model/problem.genmodel
+++ b/subprojects/language-model/src/main/resources/model/problem.genmodel
@@ -29,6 +29,18 @@
29 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/GREATER_EQ"/> 29 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/GREATER_EQ"/>
30 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/EQ"/> 30 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ComparisonOp/EQ"/>
31 </genEnums> 31 </genEnums>
32 <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//ReferenceKind">
33 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/DEFAULT"/>
34 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/REFERENCE"/>
35 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/CONTAINMENT"/>
36 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//ReferenceKind/CONTAINER"/>
37 </genEnums>
38 <genEnums typeSafeEnumCompatible="false" ecoreEnum="problem.ecore#//PredicateKind">
39 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PredicateKind/DEFAULT"/>
40 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PredicateKind/ERROR"/>
41 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PredicateKind/CONTAINED"/>
42 <genEnumLiterals ecoreEnumLiteral="problem.ecore#//PredicateKind/CONTAINMENT"/>
43 </genEnums>
32 <genClasses ecoreClass="problem.ecore#//Problem"> 44 <genClasses ecoreClass="problem.ecore#//Problem">
33 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/nodes"/> 45 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/nodes"/>
34 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/statements"/> 46 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//Problem/statements"/>
@@ -43,14 +55,14 @@
43 <genClasses ecoreClass="problem.ecore#//ReferenceDeclaration"> 55 <genClasses ecoreClass="problem.ecore#//ReferenceDeclaration">
44 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/referenceType"/> 56 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/referenceType"/>
45 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/opposite"/> 57 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/opposite"/>
46 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ReferenceDeclaration/containment"/>
47 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/multiplicity"/> 58 <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference problem.ecore#//ReferenceDeclaration/multiplicity"/>
59 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//ReferenceDeclaration/kind"/>
48 </genClasses> 60 </genClasses>
49 <genClasses ecoreClass="problem.ecore#//NamedElement"> 61 <genClasses ecoreClass="problem.ecore#//NamedElement">
50 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//NamedElement/name"/> 62 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//NamedElement/name"/>
51 </genClasses> 63 </genClasses>
52 <genClasses ecoreClass="problem.ecore#//PredicateDefinition"> 64 <genClasses ecoreClass="problem.ecore#//PredicateDefinition">
53 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//PredicateDefinition/error"/> 65 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute problem.ecore#//PredicateDefinition/kind"/>
54 </genClasses> 66 </genClasses>
55 <genClasses ecoreClass="problem.ecore#//Parameter"> 67 <genClasses ecoreClass="problem.ecore#//Parameter">
56 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Parameter/parameterType"/> 68 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference problem.ecore#//Parameter/parameterType"/>
diff --git a/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext b/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext
index f7b86dca..2a5af628 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext
+++ b/subprojects/language/src/main/java/tools/refinery/language/Problem.xtext
@@ -26,15 +26,23 @@ EnumDeclaration:
26EnumLiteral returns Node: 26EnumLiteral returns Node:
27 name=Identifier; 27 name=Identifier;
28 28
29enum ReferenceKind:
30 REFERENCE="refers" | CONTAINMENT="contains" | CONTAINER="container";
31
29ReferenceDeclaration: 32ReferenceDeclaration:
30 (containment?="contains" | "refers")? 33 (
31 referenceType=[Relation|QualifiedName] 34 kind=ReferenceKind referenceType=[Relation|QualifiedName] |
35 referenceType=[Relation|NonRelationKindQualifiedName]
36 )
32 ("[" multiplicity=Multiplicity "]")? 37 ("[" multiplicity=Multiplicity "]")?
33 name=Identifier 38 name=Identifier
34 ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?; 39 ("opposite" opposite=[ReferenceDeclaration|QualifiedName])?;
35 40
41enum PredicateKind:
42 ERROR="error" | CONTAINED="contained" | CONTAINMENT="containment";
43
36PredicateDefinition: 44PredicateDefinition:
37 (error?="error" "pred"? | "pred") 45 (kind=PredicateKind "pred"? | "pred")
38 name=Identifier 46 name=Identifier
39 "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")" 47 "(" (parameters+=Parameter ("," parameters+=Parameter)*)? ")"
40 ("<->" bodies+=Conjunction (";" bodies+=Conjunction)*)? 48 ("<->" bodies+=Conjunction (";" bodies+=Conjunction)*)?
@@ -150,7 +158,7 @@ ScopeDeclaration:
150 "scope" typeScopes+=TypeScope ("," typeScopes+=TypeScope)* "."; 158 "scope" typeScopes+=TypeScope ("," typeScopes+=TypeScope)* ".";
151 159
152TypeScope: 160TypeScope:
153 targetType=[ClassDeclaration|QualifiedName] 161 targetType=[Relation|QualifiedName]
154 (increment?="+=" | "=") 162 (increment?="+=" | "=")
155 multiplicity=DefiniteMultiplicity; 163 multiplicity=DefiniteMultiplicity;
156 164
@@ -175,12 +183,19 @@ IndividualDeclaration:
175UpperBound returns ecore::EInt: 183UpperBound returns ecore::EInt:
176 INT | "*"; 184 INT | "*";
177 185
186NonRelationKindQualifiedName hidden():
187 NonRelationKindIdentifier ("::" Identifier)*;
188
178QualifiedName hidden(): 189QualifiedName hidden():
179 Identifier ("::" Identifier)*; 190 Identifier ("::" Identifier)*;
180 191
192NonRelationKindIdentifier:
193 ID | "true" | "false" | "unknown" | "error" | "class" | "abstract" | "extends" | "enum" |
194 "pred" | "indiv" | "problem" | "new" | "delete" | "rule" | "may" | "must" | "current" |
195 "count" | "default" | "scope" | "contained" | "containment";
196
181Identifier: 197Identifier:
182 ID | "true" | "false" | "unknown" | "error" | "class" | "abstract" | "extends" | "enum" | "pred" | 198 NonRelationKindIdentifier | "refers" | "contains" | "container";
183 "indiv" | "problem" | "new" | "delete" | "rule" | "may" | "must" | "current" | "count";
184 199
185Integer returns ecore::EInt hidden(): 200Integer returns ecore::EInt hidden():
186 "-"? INT; 201 "-"? INT;
diff --git a/subprojects/language/src/main/java/tools/refinery/language/ProblemUtil.java b/subprojects/language/src/main/java/tools/refinery/language/ProblemUtil.java
index b1e39176..0be296fd 100644
--- a/subprojects/language/src/main/java/tools/refinery/language/ProblemUtil.java
+++ b/subprojects/language/src/main/java/tools/refinery/language/ProblemUtil.java
@@ -27,6 +27,10 @@ public final class ProblemUtil {
27 27
28 public static final String NODE_CLASS_NAME = "node"; 28 public static final String NODE_CLASS_NAME = "node";
29 29
30 public static final String DOMAIN_CLASS_NAME = "domain";
31
32 public static final String DATA_CLASS_NAME = "data";
33
30 private ProblemUtil() { 34 private ProblemUtil() {
31 throw new IllegalStateException("This is a static utility class and should not be instantiated directly"); 35 throw new IllegalStateException("This is a static utility class and should not be instantiated directly");
32 } 36 }
@@ -80,15 +84,15 @@ public final class ProblemUtil {
80 return false; 84 return false;
81 } 85 }
82 86
83 public static Optional<ClassDeclaration> getNodeClassDeclaration(EObject context) { 87 public static Optional<ClassDeclaration> getBuiltinClassDeclaration(EObject context, String name) {
84 return getBuiltInLibrary(context).flatMap(problem -> problem.getStatements().stream() 88 return getBuiltInLibrary(context).flatMap(problem -> problem.getStatements().stream()
85 .filter(ClassDeclaration.class::isInstance).map(ClassDeclaration.class::cast) 89 .filter(ClassDeclaration.class::isInstance).map(ClassDeclaration.class::cast)
86 .filter(declaration -> NODE_CLASS_NAME.equals(declaration.getName())).findFirst()); 90 .filter(declaration -> name.equals(declaration.getName())).findFirst());
87 } 91 }
88 92
89 public static Collection<ClassDeclaration> getSuperclassesAndSelf(ClassDeclaration classDeclaration) { 93 public static Collection<ClassDeclaration> getSuperclassesAndSelf(ClassDeclaration classDeclaration) {
90 Set<ClassDeclaration> found = new HashSet<>(); 94 Set<ClassDeclaration> found = new HashSet<>();
91 getNodeClassDeclaration(classDeclaration).ifPresent(found::add); 95 getBuiltinClassDeclaration(classDeclaration, NODE_CLASS_NAME).ifPresent(found::add);
92 Deque<ClassDeclaration> queue = new ArrayDeque<>(); 96 Deque<ClassDeclaration> queue = new ArrayDeque<>();
93 queue.addLast(classDeclaration); 97 queue.addLast(classDeclaration);
94 while (!queue.isEmpty()) { 98 while (!queue.isEmpty()) {
@@ -102,6 +106,11 @@ public final class ProblemUtil {
102 } 106 }
103 } 107 }
104 } 108 }
109 getBuiltinClassDeclaration(classDeclaration, DATA_CLASS_NAME).ifPresent((dataClassDelcaration) -> {
110 if (!found.contains(dataClassDelcaration)) {
111 getBuiltinClassDeclaration(classDeclaration, DOMAIN_CLASS_NAME).ifPresent(found::add);
112 }
113 });
105 return found; 114 return found;
106 } 115 }
107 116
@@ -113,6 +122,28 @@ public final class ProblemUtil {
113 return referenceDeclarations; 122 return referenceDeclarations;
114 } 123 }
115 124
125 public static boolean isDataClass(Relation relation) {
126 if (relation instanceof ClassDeclaration classDeclaration) {
127 var supertypes = getSuperclassesAndSelf(classDeclaration);
128 return getBuiltinClassDeclaration(classDeclaration, DATA_CLASS_NAME).map(supertypes::contains)
129 .orElse(false);
130 }
131 return false;
132 }
133
134 public static boolean isContainmentReference(ReferenceDeclaration referenceDeclaration) {
135 switch (referenceDeclaration.getKind()) {
136 case REFERENCE, CONTAINER:
137 return false;
138 case CONTAINMENT:
139 return true;
140 case DEFAULT:
141 return isDataClass(referenceDeclaration.getReferenceType());
142 default:
143 throw new IllegalArgumentException("Unknown reference kind " + referenceDeclaration.getKind());
144 }
145 }
146
116 private static URI getLibraryUri(String libraryName) { 147 private static URI getLibraryUri(String libraryName) {
117 return URI.createURI(ProblemUtil.class.getClassLoader() 148 return URI.createURI(ProblemUtil.class.getClassLoader()
118 .getResource("tools/refinery/language/%s.problem".formatted(libraryName)).toString()); 149 .getResource("tools/refinery/language/%s.problem".formatted(libraryName)).toString());
diff --git a/subprojects/language/src/main/resources/tools/refinery/language/builtin.problem b/subprojects/language/src/main/resources/tools/refinery/language/builtin.problem
index 323e03f1..e39ff1a3 100644
--- a/subprojects/language/src/main/resources/tools/refinery/language/builtin.problem
+++ b/subprojects/language/src/main/resources/tools/refinery/language/builtin.problem
@@ -19,3 +19,22 @@ class real extends data.
19class int extends data. 19class int extends data.
20 20
21class string extends data. 21class string extends data.
22
23pred contained(node node).
24
25pred contains(node container, node contained).
26
27pred root(node node).
28
29% error missingContainer(contained node) <->
30% !contains(node, _), !root(node).
31%
32% error tooManyContainers(contained node) <->
33% count contains(_, node) > 1
34% ;
35% contains(_, node), root(node)
36% ;
37% contains(_, node), !contained(node).
38%
39% error containmentCycle(node node) <->
40% contains+(node, node).
diff --git a/yarn.lock b/yarn.lock
index e8104d02..8ddbe213 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1335,9 +1335,9 @@ __metadata:
1335 languageName: node 1335 languageName: node
1336 linkType: hard 1336 linkType: hard
1337 1337
1338"@codemirror/autocomplete@npm:^6.1.1": 1338"@codemirror/autocomplete@npm:^6.2.0":
1339 version: 6.1.1 1339 version: 6.2.0
1340 resolution: "@codemirror/autocomplete@npm:6.1.1" 1340 resolution: "@codemirror/autocomplete@npm:6.2.0"
1341 dependencies: 1341 dependencies:
1342 "@codemirror/language": ^6.0.0 1342 "@codemirror/language": ^6.0.0
1343 "@codemirror/state": ^6.0.0 1343 "@codemirror/state": ^6.0.0
@@ -1348,7 +1348,7 @@ __metadata:
1348 "@codemirror/state": ^6.0.0 1348 "@codemirror/state": ^6.0.0
1349 "@codemirror/view": ^6.0.0 1349 "@codemirror/view": ^6.0.0
1350 "@lezer/common": ^1.0.0 1350 "@lezer/common": ^1.0.0
1351 checksum: d5dc9f0394d52ed891845f077e3ab5f0b337b1dd6e9735d18dddaafef634ceb4fa0f272b7bcf824a720666af0bc721a0c7b5a3c7cefcd18f1235753f27d4b86c 1351 checksum: fc20334d54b8e59abb48f0a813b0c409804a87eb918b6e46aa098fcb7125a7e1902cfa1628d4dc92ee3a535b3bebce4f8ce778fbc7b339cb796ca05b10150b37
1352 languageName: node 1352 languageName: node
1353 linkType: hard 1353 linkType: hard
1354 1354
@@ -1580,9 +1580,9 @@ __metadata:
1580 languageName: node 1580 languageName: node
1581 linkType: hard 1581 linkType: hard
1582 1582
1583"@eslint/eslintrc@npm:^1.3.1": 1583"@eslint/eslintrc@npm:^1.3.2":
1584 version: 1.3.1 1584 version: 1.3.2
1585 resolution: "@eslint/eslintrc@npm:1.3.1" 1585 resolution: "@eslint/eslintrc@npm:1.3.2"
1586 dependencies: 1586 dependencies:
1587 ajv: ^6.12.4 1587 ajv: ^6.12.4
1588 debug: ^4.3.2 1588 debug: ^4.3.2
@@ -1593,7 +1593,7 @@ __metadata:
1593 js-yaml: ^4.1.0 1593 js-yaml: ^4.1.0
1594 minimatch: ^3.1.2 1594 minimatch: ^3.1.2
1595 strip-json-comments: ^3.1.1 1595 strip-json-comments: ^3.1.1
1596 checksum: 9844dcc58a44399649926d5a17a2d53d529b80d3e8c3e9d0964ae198bac77ee6bb1cf44940f30cd9c2e300f7568ec82500be42ace6cacefb08aebf9905fe208e 1596 checksum: 2074dca47d7e1c5c6323ff353f690f4b25d3ab53fe7d27337e2592d37a894cf60ca0e85ca66b50ff2db0bc7e630cc1e9c7347d65bb185b61416565584c38999c
1597 languageName: node 1597 languageName: node
1598 linkType: hard 1598 linkType: hard
1599 1599
@@ -1756,9 +1756,9 @@ __metadata:
1756 languageName: node 1756 languageName: node
1757 linkType: hard 1757 linkType: hard
1758 1758
1759"@mui/base@npm:5.0.0-alpha.96": 1759"@mui/base@npm:5.0.0-alpha.97":
1760 version: 5.0.0-alpha.96 1760 version: 5.0.0-alpha.97
1761 resolution: "@mui/base@npm:5.0.0-alpha.96" 1761 resolution: "@mui/base@npm:5.0.0-alpha.97"
1762 dependencies: 1762 dependencies:
1763 "@babel/runtime": ^7.18.9 1763 "@babel/runtime": ^7.18.9
1764 "@emotion/is-prop-valid": ^1.2.0 1764 "@emotion/is-prop-valid": ^1.2.0
@@ -1775,14 +1775,14 @@ __metadata:
1775 peerDependenciesMeta: 1775 peerDependenciesMeta:
1776 "@types/react": 1776 "@types/react":
1777 optional: true 1777 optional: true
1778 checksum: 5e35d2c0d5777ea7085f65e45955262ee2d213d62c5a2c2776a234d0c446cbf1f1ed9d19a571359f8ef9b0f9f983c17772041eb5f947b6d9abd06ed9b1dccef0 1778 checksum: 89e395c0cabfe749eff72b61cb07124f7928f6fa40e0924330a76699538f0ef185f7387b278781f62f09131d2618877813a1988e86adf017fda368896a90dcce
1779 languageName: node 1779 languageName: node
1780 linkType: hard 1780 linkType: hard
1781 1781
1782"@mui/core-downloads-tracker@npm:^5.10.4": 1782"@mui/core-downloads-tracker@npm:^5.10.5":
1783 version: 5.10.4 1783 version: 5.10.5
1784 resolution: "@mui/core-downloads-tracker@npm:5.10.4" 1784 resolution: "@mui/core-downloads-tracker@npm:5.10.5"
1785 checksum: a4249d4cd02a50f353e7718d14becc9e03b0b5438420d840b49ea4a177b62f90a1953df17ed4126f729b3b180cd853f50d4343a37013631d72e7578cc1b9bc60 1785 checksum: 9320bfe44cb761215efed768250f8e57aaf63ee1465d760cbc767f7bd149d8cebcc6461bc6a39d2e00329a26aa24e6984233dfcfccd0c03666b8189ceb6876f7
1786 languageName: node 1786 languageName: node
1787 linkType: hard 1787 linkType: hard
1788 1788
@@ -1802,14 +1802,14 @@ __metadata:
1802 languageName: node 1802 languageName: node
1803 linkType: hard 1803 linkType: hard
1804 1804
1805"@mui/material@npm:5.10.4": 1805"@mui/material@npm:5.10.5":
1806 version: 5.10.4 1806 version: 5.10.5
1807 resolution: "@mui/material@npm:5.10.4" 1807 resolution: "@mui/material@npm:5.10.5"
1808 dependencies: 1808 dependencies:
1809 "@babel/runtime": ^7.18.9 1809 "@babel/runtime": ^7.18.9
1810 "@mui/base": 5.0.0-alpha.96 1810 "@mui/base": 5.0.0-alpha.97
1811 "@mui/core-downloads-tracker": ^5.10.4 1811 "@mui/core-downloads-tracker": ^5.10.5
1812 "@mui/system": ^5.10.4 1812 "@mui/system": ^5.10.5
1813 "@mui/types": ^7.2.0 1813 "@mui/types": ^7.2.0
1814 "@mui/utils": ^5.10.3 1814 "@mui/utils": ^5.10.3
1815 "@types/react-transition-group": ^4.4.5 1815 "@types/react-transition-group": ^4.4.5
@@ -1831,7 +1831,7 @@ __metadata:
1831 optional: true 1831 optional: true
1832 "@types/react": 1832 "@types/react":
1833 optional: true 1833 optional: true
1834 checksum: dfee653ca623608c32d78c4281b2be3bc07eaa3dea3198d0e6cdd03fdfad1296053d02078e27202c5e88a133298438253aa68196dc9ef7d4760121753cd135fb 1834 checksum: 6d412d94676a38a87acff2646f6bce883aec11d85893e1a6b42a3cfac6d4d372223c4b14f0eaa9838202ecf56c7029f264b7a8db7e083edb8913f585a3e9b39d
1835 languageName: node 1835 languageName: node
1836 linkType: hard 1836 linkType: hard
1837 1837
@@ -1852,9 +1852,9 @@ __metadata:
1852 languageName: node 1852 languageName: node
1853 linkType: hard 1853 linkType: hard
1854 1854
1855"@mui/styled-engine@npm:^5.10.4": 1855"@mui/styled-engine@npm:^5.10.5":
1856 version: 5.10.4 1856 version: 5.10.5
1857 resolution: "@mui/styled-engine@npm:5.10.4" 1857 resolution: "@mui/styled-engine@npm:5.10.5"
1858 dependencies: 1858 dependencies:
1859 "@babel/runtime": ^7.18.9 1859 "@babel/runtime": ^7.18.9
1860 "@emotion/cache": ^11.10.3 1860 "@emotion/cache": ^11.10.3
@@ -1869,17 +1869,17 @@ __metadata:
1869 optional: true 1869 optional: true
1870 "@emotion/styled": 1870 "@emotion/styled":
1871 optional: true 1871 optional: true
1872 checksum: d9bbb38c4bef00e214d5eb5ccdce1cc98935292e4dff94315c81d77fc36d673fc69b128fa234a702fc5822a22b55ce880bb0e0da10849727df4b54a55587e650 1872 checksum: a509f37d395afeb8a9630897ef20094a6f1cc167e9a3b3d1f0d7ac46c4c92a5884cb1912adc94e4840051fe2e1554bc05d7490ad3addbe2faef65fdfdc767bfc
1873 languageName: node 1873 languageName: node
1874 linkType: hard 1874 linkType: hard
1875 1875
1876"@mui/system@npm:^5.10.4": 1876"@mui/system@npm:^5.10.5":
1877 version: 5.10.4 1877 version: 5.10.5
1878 resolution: "@mui/system@npm:5.10.4" 1878 resolution: "@mui/system@npm:5.10.5"
1879 dependencies: 1879 dependencies:
1880 "@babel/runtime": ^7.18.9 1880 "@babel/runtime": ^7.18.9
1881 "@mui/private-theming": ^5.10.3 1881 "@mui/private-theming": ^5.10.3
1882 "@mui/styled-engine": ^5.10.4 1882 "@mui/styled-engine": ^5.10.5
1883 "@mui/types": ^7.2.0 1883 "@mui/types": ^7.2.0
1884 "@mui/utils": ^5.10.3 1884 "@mui/utils": ^5.10.3
1885 clsx: ^1.2.1 1885 clsx: ^1.2.1
@@ -1897,7 +1897,7 @@ __metadata:
1897 optional: true 1897 optional: true
1898 "@types/react": 1898 "@types/react":
1899 optional: true 1899 optional: true
1900 checksum: ae14f4d05c45fba5e5c52e79d9e2a02c002fa03a8ea7636800a3715fe6c598c24db52c9e60206c0e0ffc0aaa76054598e15d8a547370d23e89bedb54c136dcee 1900 checksum: 1f4f2b15309eda177889523f73b9f140cac56105e787b366e2aeab3ffda2bcbecce64ccbe151486a18e4979ce8a418c16e5699b635bbe33d58b74091a3c3707f
1901 languageName: node 1901 languageName: node
1902 linkType: hard 1902 linkType: hard
1903 1903
@@ -2000,7 +2000,7 @@ __metadata:
2000 version: 0.0.0-use.local 2000 version: 0.0.0-use.local
2001 resolution: "@refinery/frontend@workspace:subprojects/frontend" 2001 resolution: "@refinery/frontend@workspace:subprojects/frontend"
2002 dependencies: 2002 dependencies:
2003 "@codemirror/autocomplete": ^6.1.1 2003 "@codemirror/autocomplete": ^6.2.0
2004 "@codemirror/commands": ^6.1.0 2004 "@codemirror/commands": ^6.1.0
2005 "@codemirror/language": ^6.2.1 2005 "@codemirror/language": ^6.2.1
2006 "@codemirror/lint": ^6.0.0 2006 "@codemirror/lint": ^6.0.0
@@ -2017,23 +2017,23 @@ __metadata:
2017 "@lezer/lr": ^1.2.3 2017 "@lezer/lr": ^1.2.3
2018 "@material-icons/svg": ^1.0.33 2018 "@material-icons/svg": ^1.0.33
2019 "@mui/icons-material": 5.10.3 2019 "@mui/icons-material": 5.10.3
2020 "@mui/material": 5.10.4 2020 "@mui/material": 5.10.5
2021 "@types/eslint": ^8.4.6 2021 "@types/eslint": ^8.4.6
2022 "@types/html-minifier-terser": ^7.0.0 2022 "@types/html-minifier-terser": ^7.0.0
2023 "@types/lodash-es": ^4.17.6 2023 "@types/lodash-es": ^4.17.6
2024 "@types/ms": ^0.7.31 2024 "@types/ms": ^0.7.31
2025 "@types/node": ^18.7.16 2025 "@types/node": ^18.7.18
2026 "@types/prettier": ^2.7.0 2026 "@types/prettier": ^2.7.0
2027 "@types/react": ^18.0.19 2027 "@types/react": ^18.0.20
2028 "@types/react-dom": ^18.0.6 2028 "@types/react-dom": ^18.0.6
2029 "@typescript-eslint/eslint-plugin": ^5.36.2 2029 "@typescript-eslint/eslint-plugin": ^5.37.0
2030 "@typescript-eslint/parser": ^5.36.2 2030 "@typescript-eslint/parser": ^5.37.0
2031 "@vitejs/plugin-react": ^2.1.0 2031 "@vitejs/plugin-react": ^2.1.0
2032 "@xstate/cli": ^0.3.3 2032 "@xstate/cli": ^0.3.3
2033 ansi-styles: ^6.1.1 2033 ansi-styles: ^6.1.1
2034 cross-env: ^7.0.3 2034 cross-env: ^7.0.3
2035 escape-string-regexp: ^5.0.0 2035 escape-string-regexp: ^5.0.0
2036 eslint: ^8.23.0 2036 eslint: ^8.23.1
2037 eslint-config-airbnb: ^19.0.4 2037 eslint-config-airbnb: ^19.0.4
2038 eslint-config-airbnb-typescript: ^17.0.0 2038 eslint-config-airbnb-typescript: ^17.0.0
2039 eslint-config-prettier: ^8.5.0 2039 eslint-config-prettier: ^8.5.0
@@ -2062,7 +2062,7 @@ __metadata:
2062 vite-plugin-pwa: ^0.12.7 2062 vite-plugin-pwa: ^0.12.7
2063 workbox-window: ^6.5.4 2063 workbox-window: ^6.5.4
2064 xstate: ^4.33.6 2064 xstate: ^4.33.6
2065 zod: ^3.19.0 2065 zod: ^3.19.1
2066 languageName: unknown 2066 languageName: unknown
2067 linkType: soft 2067 linkType: soft
2068 2068
@@ -2070,7 +2070,7 @@ __metadata:
2070 version: 0.0.0-use.local 2070 version: 0.0.0-use.local
2071 resolution: "@refinery/root@workspace:." 2071 resolution: "@refinery/root@workspace:."
2072 dependencies: 2072 dependencies:
2073 eslint: ^8.23.0 2073 eslint: ^8.23.1
2074 typescript: ~4.8.3 2074 typescript: ~4.8.3
2075 languageName: unknown 2075 languageName: unknown
2076 linkType: soft 2076 linkType: soft
@@ -2220,10 +2220,10 @@ __metadata:
2220 languageName: node 2220 languageName: node
2221 linkType: hard 2221 linkType: hard
2222 2222
2223"@types/node@npm:*, @types/node@npm:^18.7.16": 2223"@types/node@npm:*, @types/node@npm:^18.7.18":
2224 version: 18.7.16 2224 version: 18.7.18
2225 resolution: "@types/node@npm:18.7.16" 2225 resolution: "@types/node@npm:18.7.18"
2226 checksum: 01a3d35c764a3f0e7370b56e1ad4203731131883c65784e020009014171b3f53c4649cde6c7aa4f1026b907ee87ef6ae6ece2bc518151dc7b81100fe8b1db3ad 2226 checksum: 8aec61f0f96e2a69ce51f1f40f949ca578bbb4fe05d7c0b8ce3aeeb848e90f755837f17f6ac132ca404d974fe9b2974150ad3b4984fc9dc7c3ceddb10bae0167
2227 languageName: node 2227 languageName: node
2228 linkType: hard 2228 linkType: hard
2229 2229
@@ -2275,14 +2275,14 @@ __metadata:
2275 languageName: node 2275 languageName: node
2276 linkType: hard 2276 linkType: hard
2277 2277
2278"@types/react@npm:*, @types/react@npm:^18.0.19": 2278"@types/react@npm:*, @types/react@npm:^18.0.20":
2279 version: 18.0.19 2279 version: 18.0.20
2280 resolution: "@types/react@npm:18.0.19" 2280 resolution: "@types/react@npm:18.0.20"
2281 dependencies: 2281 dependencies:
2282 "@types/prop-types": "*" 2282 "@types/prop-types": "*"
2283 "@types/scheduler": "*" 2283 "@types/scheduler": "*"
2284 csstype: ^3.0.2 2284 csstype: ^3.0.2
2285 checksum: 7dc048f9a6a38176c4c64ecf7f4c24c732df118402d7f34a4ff1702984c06f040fae1457b1b98b7f447ca2a3392dea7d027a05782dfe1b350475606f82ce6d63 2285 checksum: f67f5b16efd89e237bf0e40d133218c398cf2a2f81166ce1e9fa32d0df6b869106740983396c51df9708a1b79b2a9d725eda1230cc3064c92d86d9ea6a4b714c
2286 languageName: node 2286 languageName: node
2287 linkType: hard 2287 linkType: hard
2288 2288
@@ -2309,13 +2309,13 @@ __metadata:
2309 languageName: node 2309 languageName: node
2310 linkType: hard 2310 linkType: hard
2311 2311
2312"@typescript-eslint/eslint-plugin@npm:^5.36.2": 2312"@typescript-eslint/eslint-plugin@npm:^5.37.0":
2313 version: 5.36.2 2313 version: 5.37.0
2314 resolution: "@typescript-eslint/eslint-plugin@npm:5.36.2" 2314 resolution: "@typescript-eslint/eslint-plugin@npm:5.37.0"
2315 dependencies: 2315 dependencies:
2316 "@typescript-eslint/scope-manager": 5.36.2 2316 "@typescript-eslint/scope-manager": 5.37.0
2317 "@typescript-eslint/type-utils": 5.36.2 2317 "@typescript-eslint/type-utils": 5.37.0
2318 "@typescript-eslint/utils": 5.36.2 2318 "@typescript-eslint/utils": 5.37.0
2319 debug: ^4.3.4 2319 debug: ^4.3.4
2320 functional-red-black-tree: ^1.0.1 2320 functional-red-black-tree: ^1.0.1
2321 ignore: ^5.2.0 2321 ignore: ^5.2.0
@@ -2328,43 +2328,43 @@ __metadata:
2328 peerDependenciesMeta: 2328 peerDependenciesMeta:
2329 typescript: 2329 typescript:
2330 optional: true 2330 optional: true
2331 checksum: edcd9fcecdeb22a689b421cafe3b7adc859bf2fd6227aecdd7412c319c808e7bab063c8f94af32116cfc971962f9780d181cb0a4aa999951c2d2be1f84c6c376 2331 checksum: 9ef75628fcd6f5425002d0172514ad27e51c6ca438aba65ad445be3c63187de3cb294bcc994bd2859dff4fc0221a22da497b34990e8165dcfd1fec33d7d17fb3
2332 languageName: node 2332 languageName: node
2333 linkType: hard 2333 linkType: hard
2334 2334
2335"@typescript-eslint/parser@npm:^5.36.2": 2335"@typescript-eslint/parser@npm:^5.37.0":
2336 version: 5.36.2 2336 version: 5.37.0
2337 resolution: "@typescript-eslint/parser@npm:5.36.2" 2337 resolution: "@typescript-eslint/parser@npm:5.37.0"
2338 dependencies: 2338 dependencies:
2339 "@typescript-eslint/scope-manager": 5.36.2 2339 "@typescript-eslint/scope-manager": 5.37.0
2340 "@typescript-eslint/types": 5.36.2 2340 "@typescript-eslint/types": 5.37.0
2341 "@typescript-eslint/typescript-estree": 5.36.2 2341 "@typescript-eslint/typescript-estree": 5.37.0
2342 debug: ^4.3.4 2342 debug: ^4.3.4
2343 peerDependencies: 2343 peerDependencies:
2344 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 2344 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
2345 peerDependenciesMeta: 2345 peerDependenciesMeta:
2346 typescript: 2346 typescript:
2347 optional: true 2347 optional: true
2348 checksum: d6cc22cbc7aacb5ecebf55eb1d681cb6b964b108e147b418295c3e48701a77768cff128c16da421ae50eabb9f1296ecec7fa3cc5f2ccb63a3febf79f98b4195f 2348 checksum: 33343e27c9602820d43ee12de9797365d97a5cf3f716e750fa44de760f2a2c6800f3bc4fa54931ac70c0e0ede77a92224f8151da7f30fed3bf692a029d6659af
2349 languageName: node 2349 languageName: node
2350 linkType: hard 2350 linkType: hard
2351 2351
2352"@typescript-eslint/scope-manager@npm:5.36.2": 2352"@typescript-eslint/scope-manager@npm:5.37.0":
2353 version: 5.36.2 2353 version: 5.37.0
2354 resolution: "@typescript-eslint/scope-manager@npm:5.36.2" 2354 resolution: "@typescript-eslint/scope-manager@npm:5.37.0"
2355 dependencies: 2355 dependencies:
2356 "@typescript-eslint/types": 5.36.2 2356 "@typescript-eslint/types": 5.37.0
2357 "@typescript-eslint/visitor-keys": 5.36.2 2357 "@typescript-eslint/visitor-keys": 5.37.0
2358 checksum: 93ff655f7c237c88ec6dc5911202dd8f81bd8909b27f1a758a9d77e9791040f1ee6fe2891314bde75c808ce586246e98003a1b1396937b0312f2440016dea751 2358 checksum: 1c439e21ffa63ebaadb8c8363e9d668132a835a28203e5b779366bfa56772f332e5dedb50d63dffb836839b9d9c4e66aa9e3ea47b8c59465b18a0cbd063ec7a3
2359 languageName: node 2359 languageName: node
2360 linkType: hard 2360 linkType: hard
2361 2361
2362"@typescript-eslint/type-utils@npm:5.36.2": 2362"@typescript-eslint/type-utils@npm:5.37.0":
2363 version: 5.36.2 2363 version: 5.37.0
2364 resolution: "@typescript-eslint/type-utils@npm:5.36.2" 2364 resolution: "@typescript-eslint/type-utils@npm:5.37.0"
2365 dependencies: 2365 dependencies:
2366 "@typescript-eslint/typescript-estree": 5.36.2 2366 "@typescript-eslint/typescript-estree": 5.37.0
2367 "@typescript-eslint/utils": 5.36.2 2367 "@typescript-eslint/utils": 5.37.0
2368 debug: ^4.3.4 2368 debug: ^4.3.4
2369 tsutils: ^3.21.0 2369 tsutils: ^3.21.0
2370 peerDependencies: 2370 peerDependencies:
@@ -2372,23 +2372,23 @@ __metadata:
2372 peerDependenciesMeta: 2372 peerDependenciesMeta:
2373 typescript: 2373 typescript:
2374 optional: true 2374 optional: true
2375 checksum: c202b7d2cd08ed7f7d1ad7e430e9e1596478e147f0d485d02babfda0211c55fa950de1dc4d1c950008a8a047a31c1e982e97fe5558f93d496830eb9d9532bc71 2375 checksum: 79dac78eefdbdb3c168da6b303381461af3523e2b45fdeb821eb05e6a5cac797a8850e1dd9e1b6cd1a7c22408acfa2a09854a0f85ff038518c312db8eae9aa4f
2376 languageName: node 2376 languageName: node
2377 linkType: hard 2377 linkType: hard
2378 2378
2379"@typescript-eslint/types@npm:5.36.2": 2379"@typescript-eslint/types@npm:5.37.0":
2380 version: 5.36.2 2380 version: 5.37.0
2381 resolution: "@typescript-eslint/types@npm:5.36.2" 2381 resolution: "@typescript-eslint/types@npm:5.37.0"
2382 checksum: 736cb8a76b58f2f9a7d066933094c5510ffe31479ea8b804a829ec85942420f1b55e0eb2688fbdaaaa9c0e5b3b590fb8f14bbd745353696b4fd33fda620d417b 2382 checksum: 899e59e7775fa95c2d9fcac5cc02cc49d83af5f1ffc706df495046c3b3733f79d5489568b01bfaf8c9ae4636e057056866adc783113036f774580086d0189f21
2383 languageName: node 2383 languageName: node
2384 linkType: hard 2384 linkType: hard
2385 2385
2386"@typescript-eslint/typescript-estree@npm:5.36.2": 2386"@typescript-eslint/typescript-estree@npm:5.37.0":
2387 version: 5.36.2 2387 version: 5.37.0
2388 resolution: "@typescript-eslint/typescript-estree@npm:5.36.2" 2388 resolution: "@typescript-eslint/typescript-estree@npm:5.37.0"
2389 dependencies: 2389 dependencies:
2390 "@typescript-eslint/types": 5.36.2 2390 "@typescript-eslint/types": 5.37.0
2391 "@typescript-eslint/visitor-keys": 5.36.2 2391 "@typescript-eslint/visitor-keys": 5.37.0
2392 debug: ^4.3.4 2392 debug: ^4.3.4
2393 globby: ^11.1.0 2393 globby: ^11.1.0
2394 is-glob: ^4.0.3 2394 is-glob: ^4.0.3
@@ -2397,33 +2397,33 @@ __metadata:
2397 peerDependenciesMeta: 2397 peerDependenciesMeta:
2398 typescript: 2398 typescript:
2399 optional: true 2399 optional: true
2400 checksum: 2827ff57a114b6107ea6d555f3855007133b08a7c2bafba0cfa0c935d8b99fd7b49e982d48cccc1c5ba550d95748d0239f5e2109893f12a165d76ed64a0d261b 2400 checksum: 80365a50fa11ed39bf54d9ef06e264fbbf3bdbcc55b7d7d555ef0be915edae40ec30e98d08b3f6ef048e1874450cbcb1e7d9f429d4f420dacbbde45d3376a7bc
2401 languageName: node 2401 languageName: node
2402 linkType: hard 2402 linkType: hard
2403 2403
2404"@typescript-eslint/utils@npm:5.36.2": 2404"@typescript-eslint/utils@npm:5.37.0":
2405 version: 5.36.2 2405 version: 5.37.0
2406 resolution: "@typescript-eslint/utils@npm:5.36.2" 2406 resolution: "@typescript-eslint/utils@npm:5.37.0"
2407 dependencies: 2407 dependencies:
2408 "@types/json-schema": ^7.0.9 2408 "@types/json-schema": ^7.0.9
2409 "@typescript-eslint/scope-manager": 5.36.2 2409 "@typescript-eslint/scope-manager": 5.37.0
2410 "@typescript-eslint/types": 5.36.2 2410 "@typescript-eslint/types": 5.37.0
2411 "@typescript-eslint/typescript-estree": 5.36.2 2411 "@typescript-eslint/typescript-estree": 5.37.0
2412 eslint-scope: ^5.1.1 2412 eslint-scope: ^5.1.1
2413 eslint-utils: ^3.0.0 2413 eslint-utils: ^3.0.0
2414 peerDependencies: 2414 peerDependencies:
2415 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 2415 eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
2416 checksum: 45356cf55a8733e3ab1f2c3c19cdaefdb79857e35eb1433c29b81f3df071e9cef8a286bc407abe243889a21d9e793e999f92f03b9c727a0fac1c17a48e64c42a 2416 checksum: dc6c19ab07b50113f6fa3722518b2f31ce04036ec018855587d4c467108cb4e3c2866e54ed2e18ce61d1e7d0eaab24f94ee39574031b7d8e1c05e4b83ff84ef2
2417 languageName: node 2417 languageName: node
2418 linkType: hard 2418 linkType: hard
2419 2419
2420"@typescript-eslint/visitor-keys@npm:5.36.2": 2420"@typescript-eslint/visitor-keys@npm:5.37.0":
2421 version: 5.36.2 2421 version: 5.37.0
2422 resolution: "@typescript-eslint/visitor-keys@npm:5.36.2" 2422 resolution: "@typescript-eslint/visitor-keys@npm:5.37.0"
2423 dependencies: 2423 dependencies:
2424 "@typescript-eslint/types": 5.36.2 2424 "@typescript-eslint/types": 5.37.0
2425 eslint-visitor-keys: ^3.3.0 2425 eslint-visitor-keys: ^3.3.0
2426 checksum: 87ccdcfa5cdedaa3a1aac30d656969f4f5910b62bcaacdf80a514dbf0cbbd8e79b55f8e987eab34cc79ece8ce4b8c19d5caf8b0afb74e0b0d7ab39fb29aa8eba 2426 checksum: d6193550f77413aead0cb267e058df80b80a488c8fb4e39beb5f0a70b971c41682a6391903fbc5f3dd859a872016288c434d631b8efc3ac5a04edbdb7b63b5f6
2427 languageName: node 2427 languageName: node
2428 linkType: hard 2428 linkType: hard
2429 2429
@@ -3890,11 +3890,11 @@ __metadata:
3890 languageName: node 3890 languageName: node
3891 linkType: hard 3891 linkType: hard
3892 3892
3893"eslint@npm:^8.23.0": 3893"eslint@npm:^8.23.1":
3894 version: 8.23.0 3894 version: 8.23.1
3895 resolution: "eslint@npm:8.23.0" 3895 resolution: "eslint@npm:8.23.1"
3896 dependencies: 3896 dependencies:
3897 "@eslint/eslintrc": ^1.3.1 3897 "@eslint/eslintrc": ^1.3.2
3898 "@humanwhocodes/config-array": ^0.10.4 3898 "@humanwhocodes/config-array": ^0.10.4
3899 "@humanwhocodes/gitignore-to-minimatch": ^1.0.2 3899 "@humanwhocodes/gitignore-to-minimatch": ^1.0.2
3900 "@humanwhocodes/module-importer": ^1.0.1 3900 "@humanwhocodes/module-importer": ^1.0.1
@@ -3913,7 +3913,6 @@ __metadata:
3913 fast-deep-equal: ^3.1.3 3913 fast-deep-equal: ^3.1.3
3914 file-entry-cache: ^6.0.1 3914 file-entry-cache: ^6.0.1
3915 find-up: ^5.0.0 3915 find-up: ^5.0.0
3916 functional-red-black-tree: ^1.0.1
3917 glob-parent: ^6.0.1 3916 glob-parent: ^6.0.1
3918 globals: ^13.15.0 3917 globals: ^13.15.0
3919 globby: ^11.1.0 3918 globby: ^11.1.0
@@ -3922,6 +3921,7 @@ __metadata:
3922 import-fresh: ^3.0.0 3921 import-fresh: ^3.0.0
3923 imurmurhash: ^0.1.4 3922 imurmurhash: ^0.1.4
3924 is-glob: ^4.0.0 3923 is-glob: ^4.0.0
3924 js-sdsl: ^4.1.4
3925 js-yaml: ^4.1.0 3925 js-yaml: ^4.1.0
3926 json-stable-stringify-without-jsonify: ^1.0.1 3926 json-stable-stringify-without-jsonify: ^1.0.1
3927 levn: ^0.4.1 3927 levn: ^0.4.1
@@ -3935,7 +3935,7 @@ __metadata:
3935 text-table: ^0.2.0 3935 text-table: ^0.2.0
3936 bin: 3936 bin:
3937 eslint: bin/eslint.js 3937 eslint: bin/eslint.js
3938 checksum: ff6075daa28d817a7ac4508f31bc108a04d9ab5056608c8651b5bf9cfea5d708ca16dea6cdab2c3c0ae99b0bf0e726af8504eaa8e17c8e12e242cb68237ead64 3938 checksum: a727e15492786a03b438bcf021db49f715680679846a7b8d79b98ad34576f2a570404ffe882d3c3e26f6359bff7277ef11fae5614bfe8629adb653f20d018c71
3939 languageName: node 3939 languageName: node
3940 linkType: hard 3940 linkType: hard
3941 3941
@@ -4809,6 +4809,13 @@ __metadata:
4809 languageName: node 4809 languageName: node
4810 linkType: hard 4810 linkType: hard
4811 4811
4812"js-sdsl@npm:^4.1.4":
4813 version: 4.1.4
4814 resolution: "js-sdsl@npm:4.1.4"
4815 checksum: 1977cea4ab18e0e03e28bdf0371d8b443fad65ca0988e0faa216406faf6bb943714fe8f7cc7a5bfe5f35ba3d94ddae399f4d10200f547f2c3320688b0670d726
4816 languageName: node
4817 linkType: hard
4818
4812"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": 4819"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0":
4813 version: 4.0.0 4820 version: 4.0.0
4814 resolution: "js-tokens@npm:4.0.0" 4821 resolution: "js-tokens@npm:4.0.0"
@@ -7060,9 +7067,9 @@ __metadata:
7060 languageName: node 7067 languageName: node
7061 linkType: hard 7068 linkType: hard
7062 7069
7063"zod@npm:^3.19.0": 7070"zod@npm:^3.19.1":
7064 version: 3.19.0 7071 version: 3.19.1
7065 resolution: "zod@npm:3.19.0" 7072 resolution: "zod@npm:3.19.1"
7066 checksum: 35b9270ba73ff15e1cc3e529cdd49b78ceb5f9204770b974ffa5d1728ad1be8429315aa25263d088edecaa99ecc3631339fe79313435154060951706294f47e5 7073 checksum: 56e420ea5845912324a8fc61833714a2aec84954e418b52660d76502183c6e62fef9447cbfa64349640c5ce190cf2c24267e006bb80f066183e2f3fa9fe11864
7067 languageName: node 7074 languageName: node
7068 linkType: hard 7075 linkType: hard