aboutsummaryrefslogtreecommitdiffstats
path: root/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <oszka@152.66.252.189>2017-06-10 19:05:05 +0200
committerLibravatar OszkarSemerath <oszka@152.66.252.189>2017-06-10 19:05:05 +0200
commit60f01f46ba232ed6416054f0a6115cb2a9b70b4e (patch)
tree5edf8aeb07abc51f3fec63bbd15c926e1de09552 /Framework/hu.bme.mit.inf.dslreasoner.ecore2logic
parentInitial commit, migrating from SVN (diff)
downloadVIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.tar.gz
VIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.tar.zst
VIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.zip
Migrating Additional projects
Diffstat (limited to 'Framework/hu.bme.mit.inf.dslreasoner.ecore2logic')
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.classpath9
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.gitignore4
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.project34
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.settings/org.eclipse.core.resources.prefs2
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.settings/org.eclipse.jdt.core.prefs7
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/META-INF/MANIFEST.MF23
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/build.properties10
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/Ecore2logicannotationsFactory.java69
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/Ecore2logicannotationsPackage.java473
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/InverseRelationAssertion.java79
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/LowerMultiplicityAssertion.java49
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/MultiplicityAssertion.java51
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/UpperMultiplicityAssertion.java49
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/Ecore2logicannotationsFactoryImpl.java128
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/Ecore2logicannotationsPackageImpl.java301
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/InverseRelationAssertionImpl.java216
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/LowerMultiplicityAssertionImpl.java162
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/MultiplicityAssertionImpl.java156
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/UpperMultiplicityAssertionImpl.java162
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/util/Ecore2logicannotationsAdapterFactory.java213
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/util/Ecore2logicannotationsSwitch.java216
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/model/ecore2logicannotations.aird527
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/model/ecore2logicannotations.ecore21
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/model/ecore2logicannotations.genmodel22
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/plugin.properties4
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/plugin.xml17
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/AttributeMapper.xtend119
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/ContainmentMapper.xtend133
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EClassMapper.xtend53
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EEnumMapper.xtend60
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EReferenceMapper.xtend154
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/Ecore2Logic.xtend98
32 files changed, 3621 insertions, 0 deletions
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.classpath b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.classpath
new file mode 100644
index 00000000..a7a95045
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.classpath
@@ -0,0 +1,9 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<classpath>
3 <classpathentry kind="src" path="ecore-gen"/>
4 <classpathentry kind="src" path="xtend-gen"/>
5 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
6 <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
7 <classpathentry kind="src" path="src"/>
8 <classpathentry kind="output" path="bin"/>
9</classpath>
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.gitignore b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.gitignore
new file mode 100644
index 00000000..8ae4e44d
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.gitignore
@@ -0,0 +1,4 @@
1/bin/
2/src-gen/
3/vql-gen/
4/xtend-gen/
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.project b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.project
new file mode 100644
index 00000000..94e33330
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.project
@@ -0,0 +1,34 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<projectDescription>
3 <name>hu.bme.mit.inf.dslreasoner.ecore2logic</name>
4 <comment></comment>
5 <projects>
6 </projects>
7 <buildSpec>
8 <buildCommand>
9 <name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
10 <arguments>
11 </arguments>
12 </buildCommand>
13 <buildCommand>
14 <name>org.eclipse.jdt.core.javabuilder</name>
15 <arguments>
16 </arguments>
17 </buildCommand>
18 <buildCommand>
19 <name>org.eclipse.pde.ManifestBuilder</name>
20 <arguments>
21 </arguments>
22 </buildCommand>
23 <buildCommand>
24 <name>org.eclipse.pde.SchemaBuilder</name>
25 <arguments>
26 </arguments>
27 </buildCommand>
28 </buildSpec>
29 <natures>
30 <nature>org.eclipse.pde.PluginNature</nature>
31 <nature>org.eclipse.jdt.core.javanature</nature>
32 <nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
33 </natures>
34</projectDescription>
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.settings/org.eclipse.core.resources.prefs b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000..4824b802
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
1eclipse.preferences.version=1
2encoding/<project>=UTF-8
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.settings/org.eclipse.jdt.core.prefs b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000..295926d9
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,7 @@
1eclipse.preferences.version=1
2org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
3org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
4org.eclipse.jdt.core.compiler.compliance=1.8
5org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
6org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
7org.eclipse.jdt.core.compiler.source=1.8
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/META-INF/MANIFEST.MF b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/META-INF/MANIFEST.MF
new file mode 100644
index 00000000..f38f6fee
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/META-INF/MANIFEST.MF
@@ -0,0 +1,23 @@
1Manifest-Version: 1.0
2Bundle-ManifestVersion: 2
3Bundle-Name: %pluginName
4Bundle-SymbolicName: hu.bme.mit.inf.dslreasoner.ecore2logic;singleton:=true
5Bundle-Version: 1.0.0.qualifier
6Bundle-ClassPath: .
7Bundle-Vendor: %providerName
8Bundle-Localization: plugin
9Bundle-RequiredExecutionEnvironment: JavaSE-1.8
10Require-Bundle: com.google.guava,
11 org.eclipse.xtext.xbase.lib,
12 org.eclipse.xtend.lib,
13 org.eclipse.xtend.lib.macro,
14 org.eclipse.core.runtime,
15 org.eclipse.emf.ecore;visibility:=reexport,
16 hu.bme.mit.inf.dslreasoner.logic.model;bundle-version="1.0.0";visibility:=reexport,
17 org.eclipse.emf;bundle-version="2.6.0"
18Bundle-ActivationPolicy: lazy
19Export-Package: hu.bme.mit.inf.dslreasoner.ecore2logic,
20 hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations,
21 hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl,
22 hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.util
23
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/build.properties b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/build.properties
new file mode 100644
index 00000000..72399047
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/build.properties
@@ -0,0 +1,10 @@
1#
2
3bin.includes = .,\
4 model/,\
5 META-INF/,\
6 plugin.xml,\
7 plugin.properties
8jars.compile.order = .
9source.. = ecore-gen/
10output.. = bin/
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/Ecore2logicannotationsFactory.java b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/Ecore2logicannotationsFactory.java
new file mode 100644
index 00000000..d2781936
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/Ecore2logicannotationsFactory.java
@@ -0,0 +1,69 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations;
4
5import org.eclipse.emf.ecore.EFactory;
6
7/**
8 * <!-- begin-user-doc -->
9 * The <b>Factory</b> for the model.
10 * It provides a create method for each non-abstract class of the model.
11 * <!-- end-user-doc -->
12 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage
13 * @generated
14 */
15public interface Ecore2logicannotationsFactory extends EFactory {
16 /**
17 * The singleton instance of the factory.
18 * <!-- begin-user-doc -->
19 * <!-- end-user-doc -->
20 * @generated
21 */
22 Ecore2logicannotationsFactory eINSTANCE = hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.Ecore2logicannotationsFactoryImpl.init();
23
24 /**
25 * Returns a new object of class '<em>Multiplicity Assertion</em>'.
26 * <!-- begin-user-doc -->
27 * <!-- end-user-doc -->
28 * @return a new object of class '<em>Multiplicity Assertion</em>'.
29 * @generated
30 */
31 MultiplicityAssertion createMultiplicityAssertion();
32
33 /**
34 * Returns a new object of class '<em>Inverse Relation Assertion</em>'.
35 * <!-- begin-user-doc -->
36 * <!-- end-user-doc -->
37 * @return a new object of class '<em>Inverse Relation Assertion</em>'.
38 * @generated
39 */
40 InverseRelationAssertion createInverseRelationAssertion();
41
42 /**
43 * Returns a new object of class '<em>Lower Multiplicity Assertion</em>'.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @return a new object of class '<em>Lower Multiplicity Assertion</em>'.
47 * @generated
48 */
49 LowerMultiplicityAssertion createLowerMultiplicityAssertion();
50
51 /**
52 * Returns a new object of class '<em>Upper Multiplicity Assertion</em>'.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @return a new object of class '<em>Upper Multiplicity Assertion</em>'.
56 * @generated
57 */
58 UpperMultiplicityAssertion createUpperMultiplicityAssertion();
59
60 /**
61 * Returns the package supported by this factory.
62 * <!-- begin-user-doc -->
63 * <!-- end-user-doc -->
64 * @return the package supported by this factory.
65 * @generated
66 */
67 Ecore2logicannotationsPackage getEcore2logicannotationsPackage();
68
69} //Ecore2logicannotationsFactory
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/Ecore2logicannotationsPackage.java b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/Ecore2logicannotationsPackage.java
new file mode 100644
index 00000000..b53edc84
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/Ecore2logicannotationsPackage.java
@@ -0,0 +1,473 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations;
4
5import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage;
6
7import org.eclipse.emf.ecore.EAttribute;
8import org.eclipse.emf.ecore.EClass;
9import org.eclipse.emf.ecore.EPackage;
10import org.eclipse.emf.ecore.EReference;
11
12/**
13 * <!-- begin-user-doc -->
14 * The <b>Package</b> for the model.
15 * It contains accessors for the meta objects to represent
16 * <ul>
17 * <li>each class,</li>
18 * <li>each feature of each class,</li>
19 * <li>each operation of each class,</li>
20 * <li>each enum,</li>
21 * <li>and each data type</li>
22 * </ul>
23 * <!-- end-user-doc -->
24 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsFactory
25 * @model kind="package"
26 * @generated
27 */
28public interface Ecore2logicannotationsPackage extends EPackage {
29 /**
30 * The package name.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 String eNAME = "ecore2logicannotations";
36
37 /**
38 * The package namespace URI.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @generated
42 */
43 String eNS_URI = "http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation";
44
45 /**
46 * The package namespace name.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @generated
50 */
51 String eNS_PREFIX = "ecore2logicannotations";
52
53 /**
54 * The singleton instance of the package.
55 * <!-- begin-user-doc -->
56 * <!-- end-user-doc -->
57 * @generated
58 */
59 Ecore2logicannotationsPackage eINSTANCE = hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.Ecore2logicannotationsPackageImpl.init();
60
61 /**
62 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.MultiplicityAssertionImpl <em>Multiplicity Assertion</em>}' class.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.MultiplicityAssertionImpl
66 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.Ecore2logicannotationsPackageImpl#getMultiplicityAssertion()
67 * @generated
68 */
69 int MULTIPLICITY_ASSERTION = 0;
70
71 /**
72 * The feature id for the '<em><b>Target</b></em>' reference.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @generated
76 * @ordered
77 */
78 int MULTIPLICITY_ASSERTION__TARGET = LogicproblemPackage.ASSERTION_ANNOTATION__TARGET;
79
80 /**
81 * The feature id for the '<em><b>Relation</b></em>' reference.
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 * @ordered
86 */
87 int MULTIPLICITY_ASSERTION__RELATION = LogicproblemPackage.ASSERTION_ANNOTATION_FEATURE_COUNT + 0;
88
89 /**
90 * The number of structural features of the '<em>Multiplicity Assertion</em>' class.
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 * @ordered
95 */
96 int MULTIPLICITY_ASSERTION_FEATURE_COUNT = LogicproblemPackage.ASSERTION_ANNOTATION_FEATURE_COUNT + 1;
97
98 /**
99 * The number of operations of the '<em>Multiplicity Assertion</em>' class.
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 * @ordered
104 */
105 int MULTIPLICITY_ASSERTION_OPERATION_COUNT = LogicproblemPackage.ASSERTION_ANNOTATION_OPERATION_COUNT + 0;
106
107 /**
108 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.InverseRelationAssertionImpl <em>Inverse Relation Assertion</em>}' class.
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.InverseRelationAssertionImpl
112 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.Ecore2logicannotationsPackageImpl#getInverseRelationAssertion()
113 * @generated
114 */
115 int INVERSE_RELATION_ASSERTION = 1;
116
117 /**
118 * The feature id for the '<em><b>Target</b></em>' reference.
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 * @ordered
123 */
124 int INVERSE_RELATION_ASSERTION__TARGET = LogicproblemPackage.ASSERTION_ANNOTATION__TARGET;
125
126 /**
127 * The feature id for the '<em><b>Inverse A</b></em>' reference.
128 * <!-- begin-user-doc -->
129 * <!-- end-user-doc -->
130 * @generated
131 * @ordered
132 */
133 int INVERSE_RELATION_ASSERTION__INVERSE_A = LogicproblemPackage.ASSERTION_ANNOTATION_FEATURE_COUNT + 0;
134
135 /**
136 * The feature id for the '<em><b>Inverse B</b></em>' reference.
137 * <!-- begin-user-doc -->
138 * <!-- end-user-doc -->
139 * @generated
140 * @ordered
141 */
142 int INVERSE_RELATION_ASSERTION__INVERSE_B = LogicproblemPackage.ASSERTION_ANNOTATION_FEATURE_COUNT + 1;
143
144 /**
145 * The number of structural features of the '<em>Inverse Relation Assertion</em>' class.
146 * <!-- begin-user-doc -->
147 * <!-- end-user-doc -->
148 * @generated
149 * @ordered
150 */
151 int INVERSE_RELATION_ASSERTION_FEATURE_COUNT = LogicproblemPackage.ASSERTION_ANNOTATION_FEATURE_COUNT + 2;
152
153 /**
154 * The number of operations of the '<em>Inverse Relation Assertion</em>' class.
155 * <!-- begin-user-doc -->
156 * <!-- end-user-doc -->
157 * @generated
158 * @ordered
159 */
160 int INVERSE_RELATION_ASSERTION_OPERATION_COUNT = LogicproblemPackage.ASSERTION_ANNOTATION_OPERATION_COUNT + 0;
161
162 /**
163 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.LowerMultiplicityAssertionImpl <em>Lower Multiplicity Assertion</em>}' class.
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.LowerMultiplicityAssertionImpl
167 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.Ecore2logicannotationsPackageImpl#getLowerMultiplicityAssertion()
168 * @generated
169 */
170 int LOWER_MULTIPLICITY_ASSERTION = 2;
171
172 /**
173 * The feature id for the '<em><b>Target</b></em>' reference.
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 * @ordered
178 */
179 int LOWER_MULTIPLICITY_ASSERTION__TARGET = MULTIPLICITY_ASSERTION__TARGET;
180
181 /**
182 * The feature id for the '<em><b>Relation</b></em>' reference.
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @generated
186 * @ordered
187 */
188 int LOWER_MULTIPLICITY_ASSERTION__RELATION = MULTIPLICITY_ASSERTION__RELATION;
189
190 /**
191 * The feature id for the '<em><b>Lower</b></em>' attribute.
192 * <!-- begin-user-doc -->
193 * <!-- end-user-doc -->
194 * @generated
195 * @ordered
196 */
197 int LOWER_MULTIPLICITY_ASSERTION__LOWER = MULTIPLICITY_ASSERTION_FEATURE_COUNT + 0;
198
199 /**
200 * The number of structural features of the '<em>Lower Multiplicity Assertion</em>' class.
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 * @ordered
205 */
206 int LOWER_MULTIPLICITY_ASSERTION_FEATURE_COUNT = MULTIPLICITY_ASSERTION_FEATURE_COUNT + 1;
207
208 /**
209 * The number of operations of the '<em>Lower Multiplicity Assertion</em>' class.
210 * <!-- begin-user-doc -->
211 * <!-- end-user-doc -->
212 * @generated
213 * @ordered
214 */
215 int LOWER_MULTIPLICITY_ASSERTION_OPERATION_COUNT = MULTIPLICITY_ASSERTION_OPERATION_COUNT + 0;
216
217 /**
218 * The meta object id for the '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.UpperMultiplicityAssertionImpl <em>Upper Multiplicity Assertion</em>}' class.
219 * <!-- begin-user-doc -->
220 * <!-- end-user-doc -->
221 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.UpperMultiplicityAssertionImpl
222 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.Ecore2logicannotationsPackageImpl#getUpperMultiplicityAssertion()
223 * @generated
224 */
225 int UPPER_MULTIPLICITY_ASSERTION = 3;
226
227 /**
228 * The feature id for the '<em><b>Target</b></em>' reference.
229 * <!-- begin-user-doc -->
230 * <!-- end-user-doc -->
231 * @generated
232 * @ordered
233 */
234 int UPPER_MULTIPLICITY_ASSERTION__TARGET = MULTIPLICITY_ASSERTION__TARGET;
235
236 /**
237 * The feature id for the '<em><b>Relation</b></em>' reference.
238 * <!-- begin-user-doc -->
239 * <!-- end-user-doc -->
240 * @generated
241 * @ordered
242 */
243 int UPPER_MULTIPLICITY_ASSERTION__RELATION = MULTIPLICITY_ASSERTION__RELATION;
244
245 /**
246 * The feature id for the '<em><b>Upper</b></em>' attribute.
247 * <!-- begin-user-doc -->
248 * <!-- end-user-doc -->
249 * @generated
250 * @ordered
251 */
252 int UPPER_MULTIPLICITY_ASSERTION__UPPER = MULTIPLICITY_ASSERTION_FEATURE_COUNT + 0;
253
254 /**
255 * The number of structural features of the '<em>Upper Multiplicity Assertion</em>' class.
256 * <!-- begin-user-doc -->
257 * <!-- end-user-doc -->
258 * @generated
259 * @ordered
260 */
261 int UPPER_MULTIPLICITY_ASSERTION_FEATURE_COUNT = MULTIPLICITY_ASSERTION_FEATURE_COUNT + 1;
262
263 /**
264 * The number of operations of the '<em>Upper Multiplicity Assertion</em>' class.
265 * <!-- begin-user-doc -->
266 * <!-- end-user-doc -->
267 * @generated
268 * @ordered
269 */
270 int UPPER_MULTIPLICITY_ASSERTION_OPERATION_COUNT = MULTIPLICITY_ASSERTION_OPERATION_COUNT + 0;
271
272
273 /**
274 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.MultiplicityAssertion <em>Multiplicity Assertion</em>}'.
275 * <!-- begin-user-doc -->
276 * <!-- end-user-doc -->
277 * @return the meta object for class '<em>Multiplicity Assertion</em>'.
278 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.MultiplicityAssertion
279 * @generated
280 */
281 EClass getMultiplicityAssertion();
282
283 /**
284 * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.MultiplicityAssertion#getRelation <em>Relation</em>}'.
285 * <!-- begin-user-doc -->
286 * <!-- end-user-doc -->
287 * @return the meta object for the reference '<em>Relation</em>'.
288 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.MultiplicityAssertion#getRelation()
289 * @see #getMultiplicityAssertion()
290 * @generated
291 */
292 EReference getMultiplicityAssertion_Relation();
293
294 /**
295 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.InverseRelationAssertion <em>Inverse Relation Assertion</em>}'.
296 * <!-- begin-user-doc -->
297 * <!-- end-user-doc -->
298 * @return the meta object for class '<em>Inverse Relation Assertion</em>'.
299 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.InverseRelationAssertion
300 * @generated
301 */
302 EClass getInverseRelationAssertion();
303
304 /**
305 * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.InverseRelationAssertion#getInverseA <em>Inverse A</em>}'.
306 * <!-- begin-user-doc -->
307 * <!-- end-user-doc -->
308 * @return the meta object for the reference '<em>Inverse A</em>'.
309 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.InverseRelationAssertion#getInverseA()
310 * @see #getInverseRelationAssertion()
311 * @generated
312 */
313 EReference getInverseRelationAssertion_InverseA();
314
315 /**
316 * Returns the meta object for the reference '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.InverseRelationAssertion#getInverseB <em>Inverse B</em>}'.
317 * <!-- begin-user-doc -->
318 * <!-- end-user-doc -->
319 * @return the meta object for the reference '<em>Inverse B</em>'.
320 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.InverseRelationAssertion#getInverseB()
321 * @see #getInverseRelationAssertion()
322 * @generated
323 */
324 EReference getInverseRelationAssertion_InverseB();
325
326 /**
327 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.LowerMultiplicityAssertion <em>Lower Multiplicity Assertion</em>}'.
328 * <!-- begin-user-doc -->
329 * <!-- end-user-doc -->
330 * @return the meta object for class '<em>Lower Multiplicity Assertion</em>'.
331 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.LowerMultiplicityAssertion
332 * @generated
333 */
334 EClass getLowerMultiplicityAssertion();
335
336 /**
337 * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.LowerMultiplicityAssertion#getLower <em>Lower</em>}'.
338 * <!-- begin-user-doc -->
339 * <!-- end-user-doc -->
340 * @return the meta object for the attribute '<em>Lower</em>'.
341 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.LowerMultiplicityAssertion#getLower()
342 * @see #getLowerMultiplicityAssertion()
343 * @generated
344 */
345 EAttribute getLowerMultiplicityAssertion_Lower();
346
347 /**
348 * Returns the meta object for class '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.UpperMultiplicityAssertion <em>Upper Multiplicity Assertion</em>}'.
349 * <!-- begin-user-doc -->
350 * <!-- end-user-doc -->
351 * @return the meta object for class '<em>Upper Multiplicity Assertion</em>'.
352 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.UpperMultiplicityAssertion
353 * @generated
354 */
355 EClass getUpperMultiplicityAssertion();
356
357 /**
358 * Returns the meta object for the attribute '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.UpperMultiplicityAssertion#getUpper <em>Upper</em>}'.
359 * <!-- begin-user-doc -->
360 * <!-- end-user-doc -->
361 * @return the meta object for the attribute '<em>Upper</em>'.
362 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.UpperMultiplicityAssertion#getUpper()
363 * @see #getUpperMultiplicityAssertion()
364 * @generated
365 */
366 EAttribute getUpperMultiplicityAssertion_Upper();
367
368 /**
369 * Returns the factory that creates the instances of the model.
370 * <!-- begin-user-doc -->
371 * <!-- end-user-doc -->
372 * @return the factory that creates the instances of the model.
373 * @generated
374 */
375 Ecore2logicannotationsFactory getEcore2logicannotationsFactory();
376
377 /**
378 * <!-- begin-user-doc -->
379 * Defines literals for the meta objects that represent
380 * <ul>
381 * <li>each class,</li>
382 * <li>each feature of each class,</li>
383 * <li>each operation of each class,</li>
384 * <li>each enum,</li>
385 * <li>and each data type</li>
386 * </ul>
387 * <!-- end-user-doc -->
388 * @generated
389 */
390 interface Literals {
391 /**
392 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.MultiplicityAssertionImpl <em>Multiplicity Assertion</em>}' class.
393 * <!-- begin-user-doc -->
394 * <!-- end-user-doc -->
395 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.MultiplicityAssertionImpl
396 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.Ecore2logicannotationsPackageImpl#getMultiplicityAssertion()
397 * @generated
398 */
399 EClass MULTIPLICITY_ASSERTION = eINSTANCE.getMultiplicityAssertion();
400
401 /**
402 * The meta object literal for the '<em><b>Relation</b></em>' reference feature.
403 * <!-- begin-user-doc -->
404 * <!-- end-user-doc -->
405 * @generated
406 */
407 EReference MULTIPLICITY_ASSERTION__RELATION = eINSTANCE.getMultiplicityAssertion_Relation();
408
409 /**
410 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.InverseRelationAssertionImpl <em>Inverse Relation Assertion</em>}' class.
411 * <!-- begin-user-doc -->
412 * <!-- end-user-doc -->
413 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.InverseRelationAssertionImpl
414 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.Ecore2logicannotationsPackageImpl#getInverseRelationAssertion()
415 * @generated
416 */
417 EClass INVERSE_RELATION_ASSERTION = eINSTANCE.getInverseRelationAssertion();
418
419 /**
420 * The meta object literal for the '<em><b>Inverse A</b></em>' reference feature.
421 * <!-- begin-user-doc -->
422 * <!-- end-user-doc -->
423 * @generated
424 */
425 EReference INVERSE_RELATION_ASSERTION__INVERSE_A = eINSTANCE.getInverseRelationAssertion_InverseA();
426
427 /**
428 * The meta object literal for the '<em><b>Inverse B</b></em>' reference feature.
429 * <!-- begin-user-doc -->
430 * <!-- end-user-doc -->
431 * @generated
432 */
433 EReference INVERSE_RELATION_ASSERTION__INVERSE_B = eINSTANCE.getInverseRelationAssertion_InverseB();
434
435 /**
436 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.LowerMultiplicityAssertionImpl <em>Lower Multiplicity Assertion</em>}' class.
437 * <!-- begin-user-doc -->
438 * <!-- end-user-doc -->
439 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.LowerMultiplicityAssertionImpl
440 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.Ecore2logicannotationsPackageImpl#getLowerMultiplicityAssertion()
441 * @generated
442 */
443 EClass LOWER_MULTIPLICITY_ASSERTION = eINSTANCE.getLowerMultiplicityAssertion();
444
445 /**
446 * The meta object literal for the '<em><b>Lower</b></em>' attribute feature.
447 * <!-- begin-user-doc -->
448 * <!-- end-user-doc -->
449 * @generated
450 */
451 EAttribute LOWER_MULTIPLICITY_ASSERTION__LOWER = eINSTANCE.getLowerMultiplicityAssertion_Lower();
452
453 /**
454 * The meta object literal for the '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.UpperMultiplicityAssertionImpl <em>Upper Multiplicity Assertion</em>}' class.
455 * <!-- begin-user-doc -->
456 * <!-- end-user-doc -->
457 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.UpperMultiplicityAssertionImpl
458 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.Ecore2logicannotationsPackageImpl#getUpperMultiplicityAssertion()
459 * @generated
460 */
461 EClass UPPER_MULTIPLICITY_ASSERTION = eINSTANCE.getUpperMultiplicityAssertion();
462
463 /**
464 * The meta object literal for the '<em><b>Upper</b></em>' attribute feature.
465 * <!-- begin-user-doc -->
466 * <!-- end-user-doc -->
467 * @generated
468 */
469 EAttribute UPPER_MULTIPLICITY_ASSERTION__UPPER = eINSTANCE.getUpperMultiplicityAssertion_Upper();
470
471 }
472
473} //Ecore2logicannotationsPackage
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/InverseRelationAssertion.java b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/InverseRelationAssertion.java
new file mode 100644
index 00000000..cbe8deef
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/InverseRelationAssertion.java
@@ -0,0 +1,79 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations;
4
5import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation;
6
7import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.AssertionAnnotation;
8
9/**
10 * <!-- begin-user-doc -->
11 * A representation of the model object '<em><b>Inverse Relation Assertion</b></em>'.
12 * <!-- end-user-doc -->
13 *
14 * <p>
15 * The following features are supported:
16 * </p>
17 * <ul>
18 * <li>{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.InverseRelationAssertion#getInverseA <em>Inverse A</em>}</li>
19 * <li>{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.InverseRelationAssertion#getInverseB <em>Inverse B</em>}</li>
20 * </ul>
21 *
22 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage#getInverseRelationAssertion()
23 * @model
24 * @generated
25 */
26public interface InverseRelationAssertion extends AssertionAnnotation {
27 /**
28 * Returns the value of the '<em><b>Inverse A</b></em>' reference.
29 * <!-- begin-user-doc -->
30 * <p>
31 * If the meaning of the '<em>Inverse A</em>' reference isn't clear,
32 * there really should be more of a description here...
33 * </p>
34 * <!-- end-user-doc -->
35 * @return the value of the '<em>Inverse A</em>' reference.
36 * @see #setInverseA(Relation)
37 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage#getInverseRelationAssertion_InverseA()
38 * @model required="true"
39 * @generated
40 */
41 Relation getInverseA();
42
43 /**
44 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.InverseRelationAssertion#getInverseA <em>Inverse A</em>}' reference.
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @param value the new value of the '<em>Inverse A</em>' reference.
48 * @see #getInverseA()
49 * @generated
50 */
51 void setInverseA(Relation value);
52
53 /**
54 * Returns the value of the '<em><b>Inverse B</b></em>' reference.
55 * <!-- begin-user-doc -->
56 * <p>
57 * If the meaning of the '<em>Inverse B</em>' reference isn't clear,
58 * there really should be more of a description here...
59 * </p>
60 * <!-- end-user-doc -->
61 * @return the value of the '<em>Inverse B</em>' reference.
62 * @see #setInverseB(Relation)
63 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage#getInverseRelationAssertion_InverseB()
64 * @model required="true"
65 * @generated
66 */
67 Relation getInverseB();
68
69 /**
70 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.InverseRelationAssertion#getInverseB <em>Inverse B</em>}' reference.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @param value the new value of the '<em>Inverse B</em>' reference.
74 * @see #getInverseB()
75 * @generated
76 */
77 void setInverseB(Relation value);
78
79} // InverseRelationAssertion
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/LowerMultiplicityAssertion.java b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/LowerMultiplicityAssertion.java
new file mode 100644
index 00000000..d9a06c64
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/LowerMultiplicityAssertion.java
@@ -0,0 +1,49 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Lower Multiplicity Assertion</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.LowerMultiplicityAssertion#getLower <em>Lower</em>}</li>
16 * </ul>
17 *
18 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage#getLowerMultiplicityAssertion()
19 * @model
20 * @generated
21 */
22public interface LowerMultiplicityAssertion extends MultiplicityAssertion {
23 /**
24 * Returns the value of the '<em><b>Lower</b></em>' attribute.
25 * <!-- begin-user-doc -->
26 * <p>
27 * If the meaning of the '<em>Lower</em>' attribute isn't clear,
28 * there really should be more of a description here...
29 * </p>
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Lower</em>' attribute.
32 * @see #setLower(int)
33 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage#getLowerMultiplicityAssertion_Lower()
34 * @model required="true"
35 * @generated
36 */
37 int getLower();
38
39 /**
40 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.LowerMultiplicityAssertion#getLower <em>Lower</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @param value the new value of the '<em>Lower</em>' attribute.
44 * @see #getLower()
45 * @generated
46 */
47 void setLower(int value);
48
49} // LowerMultiplicityAssertion
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/MultiplicityAssertion.java b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/MultiplicityAssertion.java
new file mode 100644
index 00000000..d937a97c
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/MultiplicityAssertion.java
@@ -0,0 +1,51 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations;
4
5import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation;
6import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.AssertionAnnotation;
7
8/**
9 * <!-- begin-user-doc -->
10 * A representation of the model object '<em><b>Multiplicity Assertion</b></em>'.
11 * <!-- end-user-doc -->
12 *
13 * <p>
14 * The following features are supported:
15 * </p>
16 * <ul>
17 * <li>{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.MultiplicityAssertion#getRelation <em>Relation</em>}</li>
18 * </ul>
19 *
20 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage#getMultiplicityAssertion()
21 * @model
22 * @generated
23 */
24public interface MultiplicityAssertion extends AssertionAnnotation {
25
26 /**
27 * Returns the value of the '<em><b>Relation</b></em>' reference.
28 * <!-- begin-user-doc -->
29 * <p>
30 * If the meaning of the '<em>Relation</em>' reference isn't clear,
31 * there really should be more of a description here...
32 * </p>
33 * <!-- end-user-doc -->
34 * @return the value of the '<em>Relation</em>' reference.
35 * @see #setRelation(Relation)
36 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage#getMultiplicityAssertion_Relation()
37 * @model required="true"
38 * @generated
39 */
40 Relation getRelation();
41
42 /**
43 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.MultiplicityAssertion#getRelation <em>Relation</em>}' reference.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @param value the new value of the '<em>Relation</em>' reference.
47 * @see #getRelation()
48 * @generated
49 */
50 void setRelation(Relation value);
51} // MultiplicityAssertion
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/UpperMultiplicityAssertion.java b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/UpperMultiplicityAssertion.java
new file mode 100644
index 00000000..095ab187
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/UpperMultiplicityAssertion.java
@@ -0,0 +1,49 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations;
4
5
6/**
7 * <!-- begin-user-doc -->
8 * A representation of the model object '<em><b>Upper Multiplicity Assertion</b></em>'.
9 * <!-- end-user-doc -->
10 *
11 * <p>
12 * The following features are supported:
13 * </p>
14 * <ul>
15 * <li>{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.UpperMultiplicityAssertion#getUpper <em>Upper</em>}</li>
16 * </ul>
17 *
18 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage#getUpperMultiplicityAssertion()
19 * @model
20 * @generated
21 */
22public interface UpperMultiplicityAssertion extends MultiplicityAssertion {
23 /**
24 * Returns the value of the '<em><b>Upper</b></em>' attribute.
25 * <!-- begin-user-doc -->
26 * <p>
27 * If the meaning of the '<em>Upper</em>' attribute isn't clear,
28 * there really should be more of a description here...
29 * </p>
30 * <!-- end-user-doc -->
31 * @return the value of the '<em>Upper</em>' attribute.
32 * @see #setUpper(int)
33 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage#getUpperMultiplicityAssertion_Upper()
34 * @model required="true"
35 * @generated
36 */
37 int getUpper();
38
39 /**
40 * Sets the value of the '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.UpperMultiplicityAssertion#getUpper <em>Upper</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @param value the new value of the '<em>Upper</em>' attribute.
44 * @see #getUpper()
45 * @generated
46 */
47 void setUpper(int value);
48
49} // UpperMultiplicityAssertion
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/Ecore2logicannotationsFactoryImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/Ecore2logicannotationsFactoryImpl.java
new file mode 100644
index 00000000..1693c2aa
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/Ecore2logicannotationsFactoryImpl.java
@@ -0,0 +1,128 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl;
4
5import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.*;
6
7import org.eclipse.emf.ecore.EClass;
8import org.eclipse.emf.ecore.EObject;
9import org.eclipse.emf.ecore.EPackage;
10
11import org.eclipse.emf.ecore.impl.EFactoryImpl;
12
13import org.eclipse.emf.ecore.plugin.EcorePlugin;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model <b>Factory</b>.
18 * <!-- end-user-doc -->
19 * @generated
20 */
21public class Ecore2logicannotationsFactoryImpl extends EFactoryImpl implements Ecore2logicannotationsFactory {
22 /**
23 * Creates the default factory implementation.
24 * <!-- begin-user-doc -->
25 * <!-- end-user-doc -->
26 * @generated
27 */
28 public static Ecore2logicannotationsFactory init() {
29 try {
30 Ecore2logicannotationsFactory theEcore2logicannotationsFactory = (Ecore2logicannotationsFactory)EPackage.Registry.INSTANCE.getEFactory(Ecore2logicannotationsPackage.eNS_URI);
31 if (theEcore2logicannotationsFactory != null) {
32 return theEcore2logicannotationsFactory;
33 }
34 }
35 catch (Exception exception) {
36 EcorePlugin.INSTANCE.log(exception);
37 }
38 return new Ecore2logicannotationsFactoryImpl();
39 }
40
41 /**
42 * Creates an instance of the factory.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @generated
46 */
47 public Ecore2logicannotationsFactoryImpl() {
48 super();
49 }
50
51 /**
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @generated
55 */
56 @Override
57 public EObject create(EClass eClass) {
58 switch (eClass.getClassifierID()) {
59 case Ecore2logicannotationsPackage.MULTIPLICITY_ASSERTION: return createMultiplicityAssertion();
60 case Ecore2logicannotationsPackage.INVERSE_RELATION_ASSERTION: return createInverseRelationAssertion();
61 case Ecore2logicannotationsPackage.LOWER_MULTIPLICITY_ASSERTION: return createLowerMultiplicityAssertion();
62 case Ecore2logicannotationsPackage.UPPER_MULTIPLICITY_ASSERTION: return createUpperMultiplicityAssertion();
63 default:
64 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
65 }
66 }
67
68 /**
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @generated
72 */
73 public MultiplicityAssertion createMultiplicityAssertion() {
74 MultiplicityAssertionImpl multiplicityAssertion = new MultiplicityAssertionImpl();
75 return multiplicityAssertion;
76 }
77
78 /**
79 * <!-- begin-user-doc -->
80 * <!-- end-user-doc -->
81 * @generated
82 */
83 public InverseRelationAssertion createInverseRelationAssertion() {
84 InverseRelationAssertionImpl inverseRelationAssertion = new InverseRelationAssertionImpl();
85 return inverseRelationAssertion;
86 }
87
88 /**
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 */
93 public LowerMultiplicityAssertion createLowerMultiplicityAssertion() {
94 LowerMultiplicityAssertionImpl lowerMultiplicityAssertion = new LowerMultiplicityAssertionImpl();
95 return lowerMultiplicityAssertion;
96 }
97
98 /**
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @generated
102 */
103 public UpperMultiplicityAssertion createUpperMultiplicityAssertion() {
104 UpperMultiplicityAssertionImpl upperMultiplicityAssertion = new UpperMultiplicityAssertionImpl();
105 return upperMultiplicityAssertion;
106 }
107
108 /**
109 * <!-- begin-user-doc -->
110 * <!-- end-user-doc -->
111 * @generated
112 */
113 public Ecore2logicannotationsPackage getEcore2logicannotationsPackage() {
114 return (Ecore2logicannotationsPackage)getEPackage();
115 }
116
117 /**
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @deprecated
121 * @generated
122 */
123 @Deprecated
124 public static Ecore2logicannotationsPackage getPackage() {
125 return Ecore2logicannotationsPackage.eINSTANCE;
126 }
127
128} //Ecore2logicannotationsFactoryImpl
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/Ecore2logicannotationsPackageImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/Ecore2logicannotationsPackageImpl.java
new file mode 100644
index 00000000..33f94c36
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/Ecore2logicannotationsPackageImpl.java
@@ -0,0 +1,301 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl;
4
5import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsFactory;
6import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage;
7import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.InverseRelationAssertion;
8import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.LowerMultiplicityAssertion;
9import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.MultiplicityAssertion;
10import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.UpperMultiplicityAssertion;
11
12import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage;
13
14import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage;
15
16import org.eclipse.emf.ecore.EAttribute;
17import org.eclipse.emf.ecore.EClass;
18import org.eclipse.emf.ecore.EPackage;
19import org.eclipse.emf.ecore.EReference;
20
21import org.eclipse.emf.ecore.impl.EPackageImpl;
22
23/**
24 * <!-- begin-user-doc -->
25 * An implementation of the model <b>Package</b>.
26 * <!-- end-user-doc -->
27 * @generated
28 */
29public class Ecore2logicannotationsPackageImpl extends EPackageImpl implements Ecore2logicannotationsPackage {
30 /**
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 private EClass multiplicityAssertionEClass = null;
36
37 /**
38 * <!-- begin-user-doc -->
39 * <!-- end-user-doc -->
40 * @generated
41 */
42 private EClass inverseRelationAssertionEClass = null;
43
44 /**
45 * <!-- begin-user-doc -->
46 * <!-- end-user-doc -->
47 * @generated
48 */
49 private EClass lowerMultiplicityAssertionEClass = null;
50
51 /**
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @generated
55 */
56 private EClass upperMultiplicityAssertionEClass = null;
57
58 /**
59 * Creates an instance of the model <b>Package</b>, registered with
60 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
61 * package URI value.
62 * <p>Note: the correct way to create the package is via the static
63 * factory method {@link #init init()}, which also performs
64 * initialization of the package, or returns the registered package,
65 * if one already exists.
66 * <!-- begin-user-doc -->
67 * <!-- end-user-doc -->
68 * @see org.eclipse.emf.ecore.EPackage.Registry
69 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage#eNS_URI
70 * @see #init()
71 * @generated
72 */
73 private Ecore2logicannotationsPackageImpl() {
74 super(eNS_URI, Ecore2logicannotationsFactory.eINSTANCE);
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 private static boolean isInited = false;
83
84 /**
85 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
86 *
87 * <p>This method is used to initialize {@link Ecore2logicannotationsPackage#eINSTANCE} when that field is accessed.
88 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @see #eNS_URI
92 * @see #createPackageContents()
93 * @see #initializePackageContents()
94 * @generated
95 */
96 public static Ecore2logicannotationsPackage init() {
97 if (isInited) return (Ecore2logicannotationsPackage)EPackage.Registry.INSTANCE.getEPackage(Ecore2logicannotationsPackage.eNS_URI);
98
99 // Obtain or create and register package
100 Ecore2logicannotationsPackageImpl theEcore2logicannotationsPackage = (Ecore2logicannotationsPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof Ecore2logicannotationsPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new Ecore2logicannotationsPackageImpl());
101
102 isInited = true;
103
104 // Initialize simple dependencies
105 LogiclanguagePackage.eINSTANCE.eClass();
106 LogicproblemPackage.eINSTANCE.eClass();
107
108 // Create package meta-data objects
109 theEcore2logicannotationsPackage.createPackageContents();
110
111 // Initialize created meta-data
112 theEcore2logicannotationsPackage.initializePackageContents();
113
114 // Mark meta-data to indicate it can't be changed
115 theEcore2logicannotationsPackage.freeze();
116
117
118 // Update the registry and return the package
119 EPackage.Registry.INSTANCE.put(Ecore2logicannotationsPackage.eNS_URI, theEcore2logicannotationsPackage);
120 return theEcore2logicannotationsPackage;
121 }
122
123 /**
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @generated
127 */
128 public EClass getMultiplicityAssertion() {
129 return multiplicityAssertionEClass;
130 }
131
132 /**
133 * <!-- begin-user-doc -->
134 * <!-- end-user-doc -->
135 * @generated
136 */
137 public EReference getMultiplicityAssertion_Relation() {
138 return (EReference)multiplicityAssertionEClass.getEStructuralFeatures().get(0);
139 }
140
141 /**
142 * <!-- begin-user-doc -->
143 * <!-- end-user-doc -->
144 * @generated
145 */
146 public EClass getInverseRelationAssertion() {
147 return inverseRelationAssertionEClass;
148 }
149
150 /**
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @generated
154 */
155 public EReference getInverseRelationAssertion_InverseA() {
156 return (EReference)inverseRelationAssertionEClass.getEStructuralFeatures().get(0);
157 }
158
159 /**
160 * <!-- begin-user-doc -->
161 * <!-- end-user-doc -->
162 * @generated
163 */
164 public EReference getInverseRelationAssertion_InverseB() {
165 return (EReference)inverseRelationAssertionEClass.getEStructuralFeatures().get(1);
166 }
167
168 /**
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @generated
172 */
173 public EClass getLowerMultiplicityAssertion() {
174 return lowerMultiplicityAssertionEClass;
175 }
176
177 /**
178 * <!-- begin-user-doc -->
179 * <!-- end-user-doc -->
180 * @generated
181 */
182 public EAttribute getLowerMultiplicityAssertion_Lower() {
183 return (EAttribute)lowerMultiplicityAssertionEClass.getEStructuralFeatures().get(0);
184 }
185
186 /**
187 * <!-- begin-user-doc -->
188 * <!-- end-user-doc -->
189 * @generated
190 */
191 public EClass getUpperMultiplicityAssertion() {
192 return upperMultiplicityAssertionEClass;
193 }
194
195 /**
196 * <!-- begin-user-doc -->
197 * <!-- end-user-doc -->
198 * @generated
199 */
200 public EAttribute getUpperMultiplicityAssertion_Upper() {
201 return (EAttribute)upperMultiplicityAssertionEClass.getEStructuralFeatures().get(0);
202 }
203
204 /**
205 * <!-- begin-user-doc -->
206 * <!-- end-user-doc -->
207 * @generated
208 */
209 public Ecore2logicannotationsFactory getEcore2logicannotationsFactory() {
210 return (Ecore2logicannotationsFactory)getEFactoryInstance();
211 }
212
213 /**
214 * <!-- begin-user-doc -->
215 * <!-- end-user-doc -->
216 * @generated
217 */
218 private boolean isCreated = false;
219
220 /**
221 * Creates the meta-model objects for the package. This method is
222 * guarded to have no affect on any invocation but its first.
223 * <!-- begin-user-doc -->
224 * <!-- end-user-doc -->
225 * @generated
226 */
227 public void createPackageContents() {
228 if (isCreated) return;
229 isCreated = true;
230
231 // Create classes and their features
232 multiplicityAssertionEClass = createEClass(MULTIPLICITY_ASSERTION);
233 createEReference(multiplicityAssertionEClass, MULTIPLICITY_ASSERTION__RELATION);
234
235 inverseRelationAssertionEClass = createEClass(INVERSE_RELATION_ASSERTION);
236 createEReference(inverseRelationAssertionEClass, INVERSE_RELATION_ASSERTION__INVERSE_A);
237 createEReference(inverseRelationAssertionEClass, INVERSE_RELATION_ASSERTION__INVERSE_B);
238
239 lowerMultiplicityAssertionEClass = createEClass(LOWER_MULTIPLICITY_ASSERTION);
240 createEAttribute(lowerMultiplicityAssertionEClass, LOWER_MULTIPLICITY_ASSERTION__LOWER);
241
242 upperMultiplicityAssertionEClass = createEClass(UPPER_MULTIPLICITY_ASSERTION);
243 createEAttribute(upperMultiplicityAssertionEClass, UPPER_MULTIPLICITY_ASSERTION__UPPER);
244 }
245
246 /**
247 * <!-- begin-user-doc -->
248 * <!-- end-user-doc -->
249 * @generated
250 */
251 private boolean isInitialized = false;
252
253 /**
254 * Complete the initialization of the package and its meta-model. This
255 * method is guarded to have no affect on any invocation but its first.
256 * <!-- begin-user-doc -->
257 * <!-- end-user-doc -->
258 * @generated
259 */
260 public void initializePackageContents() {
261 if (isInitialized) return;
262 isInitialized = true;
263
264 // Initialize package
265 setName(eNAME);
266 setNsPrefix(eNS_PREFIX);
267 setNsURI(eNS_URI);
268
269 // Obtain other dependent packages
270 LogicproblemPackage theLogicproblemPackage = (LogicproblemPackage)EPackage.Registry.INSTANCE.getEPackage(LogicproblemPackage.eNS_URI);
271 LogiclanguagePackage theLogiclanguagePackage = (LogiclanguagePackage)EPackage.Registry.INSTANCE.getEPackage(LogiclanguagePackage.eNS_URI);
272
273 // Create type parameters
274
275 // Set bounds for type parameters
276
277 // Add supertypes to classes
278 multiplicityAssertionEClass.getESuperTypes().add(theLogicproblemPackage.getAssertionAnnotation());
279 inverseRelationAssertionEClass.getESuperTypes().add(theLogicproblemPackage.getAssertionAnnotation());
280 lowerMultiplicityAssertionEClass.getESuperTypes().add(this.getMultiplicityAssertion());
281 upperMultiplicityAssertionEClass.getESuperTypes().add(this.getMultiplicityAssertion());
282
283 // Initialize classes, features, and operations; add parameters
284 initEClass(multiplicityAssertionEClass, MultiplicityAssertion.class, "MultiplicityAssertion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
285 initEReference(getMultiplicityAssertion_Relation(), theLogiclanguagePackage.getRelation(), null, "relation", null, 1, 1, MultiplicityAssertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
286
287 initEClass(inverseRelationAssertionEClass, InverseRelationAssertion.class, "InverseRelationAssertion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
288 initEReference(getInverseRelationAssertion_InverseA(), theLogiclanguagePackage.getRelation(), null, "inverseA", null, 1, 1, InverseRelationAssertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
289 initEReference(getInverseRelationAssertion_InverseB(), theLogiclanguagePackage.getRelation(), null, "inverseB", null, 1, 1, InverseRelationAssertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
290
291 initEClass(lowerMultiplicityAssertionEClass, LowerMultiplicityAssertion.class, "LowerMultiplicityAssertion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
292 initEAttribute(getLowerMultiplicityAssertion_Lower(), ecorePackage.getEInt(), "lower", null, 1, 1, LowerMultiplicityAssertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
293
294 initEClass(upperMultiplicityAssertionEClass, UpperMultiplicityAssertion.class, "UpperMultiplicityAssertion", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
295 initEAttribute(getUpperMultiplicityAssertion_Upper(), ecorePackage.getEInt(), "upper", null, 1, 1, UpperMultiplicityAssertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
296
297 // Create resource
298 createResource(eNS_URI);
299 }
300
301} //Ecore2logicannotationsPackageImpl
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/InverseRelationAssertionImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/InverseRelationAssertionImpl.java
new file mode 100644
index 00000000..a2eb9157
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/InverseRelationAssertionImpl.java
@@ -0,0 +1,216 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl;
4
5import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage;
6import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.InverseRelationAssertion;
7
8import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation;
9
10import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.impl.AssertionAnnotationImpl;
11import org.eclipse.emf.common.notify.Notification;
12import org.eclipse.emf.ecore.EClass;
13
14import org.eclipse.emf.ecore.InternalEObject;
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16
17/**
18 * <!-- begin-user-doc -->
19 * An implementation of the model object '<em><b>Inverse Relation Assertion</b></em>'.
20 * <!-- end-user-doc -->
21 * <p>
22 * The following features are implemented:
23 * </p>
24 * <ul>
25 * <li>{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.InverseRelationAssertionImpl#getInverseA <em>Inverse A</em>}</li>
26 * <li>{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.InverseRelationAssertionImpl#getInverseB <em>Inverse B</em>}</li>
27 * </ul>
28 *
29 * @generated
30 */
31public class InverseRelationAssertionImpl extends AssertionAnnotationImpl implements InverseRelationAssertion {
32 /**
33 * The cached value of the '{@link #getInverseA() <em>Inverse A</em>}' reference.
34 * <!-- begin-user-doc -->
35 * <!-- end-user-doc -->
36 * @see #getInverseA()
37 * @generated
38 * @ordered
39 */
40 protected Relation inverseA;
41 /**
42 * The cached value of the '{@link #getInverseB() <em>Inverse B</em>}' reference.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getInverseB()
46 * @generated
47 * @ordered
48 */
49 protected Relation inverseB;
50 /**
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @generated
54 */
55 protected InverseRelationAssertionImpl() {
56 super();
57 }
58
59 /**
60 * <!-- begin-user-doc -->
61 * <!-- end-user-doc -->
62 * @generated
63 */
64 @Override
65 protected EClass eStaticClass() {
66 return Ecore2logicannotationsPackage.Literals.INVERSE_RELATION_ASSERTION;
67 }
68
69 /**
70 * <!-- begin-user-doc -->
71 * <!-- end-user-doc -->
72 * @generated
73 */
74 public Relation getInverseA() {
75 if (inverseA != null && inverseA.eIsProxy()) {
76 InternalEObject oldInverseA = (InternalEObject)inverseA;
77 inverseA = (Relation)eResolveProxy(oldInverseA);
78 if (inverseA != oldInverseA) {
79 if (eNotificationRequired())
80 eNotify(new ENotificationImpl(this, Notification.RESOLVE, Ecore2logicannotationsPackage.INVERSE_RELATION_ASSERTION__INVERSE_A, oldInverseA, inverseA));
81 }
82 }
83 return inverseA;
84 }
85
86 /**
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @generated
90 */
91 public Relation basicGetInverseA() {
92 return inverseA;
93 }
94
95 /**
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @generated
99 */
100 public void setInverseA(Relation newInverseA) {
101 Relation oldInverseA = inverseA;
102 inverseA = newInverseA;
103 if (eNotificationRequired())
104 eNotify(new ENotificationImpl(this, Notification.SET, Ecore2logicannotationsPackage.INVERSE_RELATION_ASSERTION__INVERSE_A, oldInverseA, inverseA));
105 }
106
107 /**
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @generated
111 */
112 public Relation getInverseB() {
113 if (inverseB != null && inverseB.eIsProxy()) {
114 InternalEObject oldInverseB = (InternalEObject)inverseB;
115 inverseB = (Relation)eResolveProxy(oldInverseB);
116 if (inverseB != oldInverseB) {
117 if (eNotificationRequired())
118 eNotify(new ENotificationImpl(this, Notification.RESOLVE, Ecore2logicannotationsPackage.INVERSE_RELATION_ASSERTION__INVERSE_B, oldInverseB, inverseB));
119 }
120 }
121 return inverseB;
122 }
123
124 /**
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @generated
128 */
129 public Relation basicGetInverseB() {
130 return inverseB;
131 }
132
133 /**
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @generated
137 */
138 public void setInverseB(Relation newInverseB) {
139 Relation oldInverseB = inverseB;
140 inverseB = newInverseB;
141 if (eNotificationRequired())
142 eNotify(new ENotificationImpl(this, Notification.SET, Ecore2logicannotationsPackage.INVERSE_RELATION_ASSERTION__INVERSE_B, oldInverseB, inverseB));
143 }
144
145 /**
146 * <!-- begin-user-doc -->
147 * <!-- end-user-doc -->
148 * @generated
149 */
150 @Override
151 public Object eGet(int featureID, boolean resolve, boolean coreType) {
152 switch (featureID) {
153 case Ecore2logicannotationsPackage.INVERSE_RELATION_ASSERTION__INVERSE_A:
154 if (resolve) return getInverseA();
155 return basicGetInverseA();
156 case Ecore2logicannotationsPackage.INVERSE_RELATION_ASSERTION__INVERSE_B:
157 if (resolve) return getInverseB();
158 return basicGetInverseB();
159 }
160 return super.eGet(featureID, resolve, coreType);
161 }
162
163 /**
164 * <!-- begin-user-doc -->
165 * <!-- end-user-doc -->
166 * @generated
167 */
168 @SuppressWarnings("unchecked")
169 @Override
170 public void eSet(int featureID, Object newValue) {
171 switch (featureID) {
172 case Ecore2logicannotationsPackage.INVERSE_RELATION_ASSERTION__INVERSE_A:
173 setInverseA((Relation)newValue);
174 return;
175 case Ecore2logicannotationsPackage.INVERSE_RELATION_ASSERTION__INVERSE_B:
176 setInverseB((Relation)newValue);
177 return;
178 }
179 super.eSet(featureID, newValue);
180 }
181
182 /**
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @generated
186 */
187 @Override
188 public void eUnset(int featureID) {
189 switch (featureID) {
190 case Ecore2logicannotationsPackage.INVERSE_RELATION_ASSERTION__INVERSE_A:
191 setInverseA((Relation)null);
192 return;
193 case Ecore2logicannotationsPackage.INVERSE_RELATION_ASSERTION__INVERSE_B:
194 setInverseB((Relation)null);
195 return;
196 }
197 super.eUnset(featureID);
198 }
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 @Override
206 public boolean eIsSet(int featureID) {
207 switch (featureID) {
208 case Ecore2logicannotationsPackage.INVERSE_RELATION_ASSERTION__INVERSE_A:
209 return inverseA != null;
210 case Ecore2logicannotationsPackage.INVERSE_RELATION_ASSERTION__INVERSE_B:
211 return inverseB != null;
212 }
213 return super.eIsSet(featureID);
214 }
215
216} //InverseRelationAssertionImpl
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/LowerMultiplicityAssertionImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/LowerMultiplicityAssertionImpl.java
new file mode 100644
index 00000000..bc0cffc8
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/LowerMultiplicityAssertionImpl.java
@@ -0,0 +1,162 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl;
4
5import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage;
6import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.LowerMultiplicityAssertion;
7
8import org.eclipse.emf.common.notify.Notification;
9
10import org.eclipse.emf.ecore.EClass;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14/**
15 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>Lower Multiplicity Assertion</b></em>'.
17 * <!-- end-user-doc -->
18 * <p>
19 * The following features are implemented:
20 * </p>
21 * <ul>
22 * <li>{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.LowerMultiplicityAssertionImpl#getLower <em>Lower</em>}</li>
23 * </ul>
24 *
25 * @generated
26 */
27public class LowerMultiplicityAssertionImpl extends MultiplicityAssertionImpl implements LowerMultiplicityAssertion {
28 /**
29 * The default value of the '{@link #getLower() <em>Lower</em>}' attribute.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @see #getLower()
33 * @generated
34 * @ordered
35 */
36 protected static final int LOWER_EDEFAULT = 0;
37
38 /**
39 * The cached value of the '{@link #getLower() <em>Lower</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @see #getLower()
43 * @generated
44 * @ordered
45 */
46 protected int lower = LOWER_EDEFAULT;
47
48 /**
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @generated
52 */
53 protected LowerMultiplicityAssertionImpl() {
54 super();
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 @Override
63 protected EClass eStaticClass() {
64 return Ecore2logicannotationsPackage.Literals.LOWER_MULTIPLICITY_ASSERTION;
65 }
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 public int getLower() {
73 return lower;
74 }
75
76 /**
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @generated
80 */
81 public void setLower(int newLower) {
82 int oldLower = lower;
83 lower = newLower;
84 if (eNotificationRequired())
85 eNotify(new ENotificationImpl(this, Notification.SET, Ecore2logicannotationsPackage.LOWER_MULTIPLICITY_ASSERTION__LOWER, oldLower, lower));
86 }
87
88 /**
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 */
93 @Override
94 public Object eGet(int featureID, boolean resolve, boolean coreType) {
95 switch (featureID) {
96 case Ecore2logicannotationsPackage.LOWER_MULTIPLICITY_ASSERTION__LOWER:
97 return getLower();
98 }
99 return super.eGet(featureID, resolve, coreType);
100 }
101
102 /**
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @generated
106 */
107 @Override
108 public void eSet(int featureID, Object newValue) {
109 switch (featureID) {
110 case Ecore2logicannotationsPackage.LOWER_MULTIPLICITY_ASSERTION__LOWER:
111 setLower((Integer)newValue);
112 return;
113 }
114 super.eSet(featureID, newValue);
115 }
116
117 /**
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @generated
121 */
122 @Override
123 public void eUnset(int featureID) {
124 switch (featureID) {
125 case Ecore2logicannotationsPackage.LOWER_MULTIPLICITY_ASSERTION__LOWER:
126 setLower(LOWER_EDEFAULT);
127 return;
128 }
129 super.eUnset(featureID);
130 }
131
132 /**
133 * <!-- begin-user-doc -->
134 * <!-- end-user-doc -->
135 * @generated
136 */
137 @Override
138 public boolean eIsSet(int featureID) {
139 switch (featureID) {
140 case Ecore2logicannotationsPackage.LOWER_MULTIPLICITY_ASSERTION__LOWER:
141 return lower != LOWER_EDEFAULT;
142 }
143 return super.eIsSet(featureID);
144 }
145
146 /**
147 * <!-- begin-user-doc -->
148 * <!-- end-user-doc -->
149 * @generated
150 */
151 @Override
152 public String toString() {
153 if (eIsProxy()) return super.toString();
154
155 StringBuffer result = new StringBuffer(super.toString());
156 result.append(" (lower: ");
157 result.append(lower);
158 result.append(')');
159 return result.toString();
160 }
161
162} //LowerMultiplicityAssertionImpl
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/MultiplicityAssertionImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/MultiplicityAssertionImpl.java
new file mode 100644
index 00000000..b5dafe5c
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/MultiplicityAssertionImpl.java
@@ -0,0 +1,156 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl;
4
5import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage;
6import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.MultiplicityAssertion;
7
8import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation;
9import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.impl.AssertionAnnotationImpl;
10
11import org.eclipse.emf.common.notify.Notification;
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14import org.eclipse.emf.ecore.impl.ENotificationImpl;
15
16/**
17 * <!-- begin-user-doc -->
18 * An implementation of the model object '<em><b>Multiplicity Assertion</b></em>'.
19 * <!-- end-user-doc -->
20 * <p>
21 * The following features are implemented:
22 * </p>
23 * <ul>
24 * <li>{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.MultiplicityAssertionImpl#getRelation <em>Relation</em>}</li>
25 * </ul>
26 *
27 * @generated
28 */
29public class MultiplicityAssertionImpl extends AssertionAnnotationImpl implements MultiplicityAssertion {
30 /**
31 * The cached value of the '{@link #getRelation() <em>Relation</em>}' reference.
32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc -->
34 * @see #getRelation()
35 * @generated
36 * @ordered
37 */
38 protected Relation relation;
39
40 /**
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @generated
44 */
45 protected MultiplicityAssertionImpl() {
46 super();
47 }
48
49 /**
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @generated
53 */
54 @Override
55 protected EClass eStaticClass() {
56 return Ecore2logicannotationsPackage.Literals.MULTIPLICITY_ASSERTION;
57 }
58
59 /**
60 * <!-- begin-user-doc -->
61 * <!-- end-user-doc -->
62 * @generated
63 */
64 public Relation getRelation() {
65 if (relation != null && relation.eIsProxy()) {
66 InternalEObject oldRelation = (InternalEObject)relation;
67 relation = (Relation)eResolveProxy(oldRelation);
68 if (relation != oldRelation) {
69 if (eNotificationRequired())
70 eNotify(new ENotificationImpl(this, Notification.RESOLVE, Ecore2logicannotationsPackage.MULTIPLICITY_ASSERTION__RELATION, oldRelation, relation));
71 }
72 }
73 return relation;
74 }
75
76 /**
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @generated
80 */
81 public Relation basicGetRelation() {
82 return relation;
83 }
84
85 /**
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @generated
89 */
90 public void setRelation(Relation newRelation) {
91 Relation oldRelation = relation;
92 relation = newRelation;
93 if (eNotificationRequired())
94 eNotify(new ENotificationImpl(this, Notification.SET, Ecore2logicannotationsPackage.MULTIPLICITY_ASSERTION__RELATION, oldRelation, relation));
95 }
96
97 /**
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 @Override
103 public Object eGet(int featureID, boolean resolve, boolean coreType) {
104 switch (featureID) {
105 case Ecore2logicannotationsPackage.MULTIPLICITY_ASSERTION__RELATION:
106 if (resolve) return getRelation();
107 return basicGetRelation();
108 }
109 return super.eGet(featureID, resolve, coreType);
110 }
111
112 /**
113 * <!-- begin-user-doc -->
114 * <!-- end-user-doc -->
115 * @generated
116 */
117 @Override
118 public void eSet(int featureID, Object newValue) {
119 switch (featureID) {
120 case Ecore2logicannotationsPackage.MULTIPLICITY_ASSERTION__RELATION:
121 setRelation((Relation)newValue);
122 return;
123 }
124 super.eSet(featureID, newValue);
125 }
126
127 /**
128 * <!-- begin-user-doc -->
129 * <!-- end-user-doc -->
130 * @generated
131 */
132 @Override
133 public void eUnset(int featureID) {
134 switch (featureID) {
135 case Ecore2logicannotationsPackage.MULTIPLICITY_ASSERTION__RELATION:
136 setRelation((Relation)null);
137 return;
138 }
139 super.eUnset(featureID);
140 }
141
142 /**
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @generated
146 */
147 @Override
148 public boolean eIsSet(int featureID) {
149 switch (featureID) {
150 case Ecore2logicannotationsPackage.MULTIPLICITY_ASSERTION__RELATION:
151 return relation != null;
152 }
153 return super.eIsSet(featureID);
154 }
155
156} //MultiplicityAssertionImpl
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/UpperMultiplicityAssertionImpl.java b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/UpperMultiplicityAssertionImpl.java
new file mode 100644
index 00000000..f7f39f4e
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/impl/UpperMultiplicityAssertionImpl.java
@@ -0,0 +1,162 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl;
4
5import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage;
6import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.UpperMultiplicityAssertion;
7
8import org.eclipse.emf.common.notify.Notification;
9
10import org.eclipse.emf.ecore.EClass;
11
12import org.eclipse.emf.ecore.impl.ENotificationImpl;
13
14/**
15 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>Upper Multiplicity Assertion</b></em>'.
17 * <!-- end-user-doc -->
18 * <p>
19 * The following features are implemented:
20 * </p>
21 * <ul>
22 * <li>{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.impl.UpperMultiplicityAssertionImpl#getUpper <em>Upper</em>}</li>
23 * </ul>
24 *
25 * @generated
26 */
27public class UpperMultiplicityAssertionImpl extends MultiplicityAssertionImpl implements UpperMultiplicityAssertion {
28 /**
29 * The default value of the '{@link #getUpper() <em>Upper</em>}' attribute.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @see #getUpper()
33 * @generated
34 * @ordered
35 */
36 protected static final int UPPER_EDEFAULT = 0;
37
38 /**
39 * The cached value of the '{@link #getUpper() <em>Upper</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @see #getUpper()
43 * @generated
44 * @ordered
45 */
46 protected int upper = UPPER_EDEFAULT;
47
48 /**
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @generated
52 */
53 protected UpperMultiplicityAssertionImpl() {
54 super();
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 @Override
63 protected EClass eStaticClass() {
64 return Ecore2logicannotationsPackage.Literals.UPPER_MULTIPLICITY_ASSERTION;
65 }
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 public int getUpper() {
73 return upper;
74 }
75
76 /**
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @generated
80 */
81 public void setUpper(int newUpper) {
82 int oldUpper = upper;
83 upper = newUpper;
84 if (eNotificationRequired())
85 eNotify(new ENotificationImpl(this, Notification.SET, Ecore2logicannotationsPackage.UPPER_MULTIPLICITY_ASSERTION__UPPER, oldUpper, upper));
86 }
87
88 /**
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 */
93 @Override
94 public Object eGet(int featureID, boolean resolve, boolean coreType) {
95 switch (featureID) {
96 case Ecore2logicannotationsPackage.UPPER_MULTIPLICITY_ASSERTION__UPPER:
97 return getUpper();
98 }
99 return super.eGet(featureID, resolve, coreType);
100 }
101
102 /**
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @generated
106 */
107 @Override
108 public void eSet(int featureID, Object newValue) {
109 switch (featureID) {
110 case Ecore2logicannotationsPackage.UPPER_MULTIPLICITY_ASSERTION__UPPER:
111 setUpper((Integer)newValue);
112 return;
113 }
114 super.eSet(featureID, newValue);
115 }
116
117 /**
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @generated
121 */
122 @Override
123 public void eUnset(int featureID) {
124 switch (featureID) {
125 case Ecore2logicannotationsPackage.UPPER_MULTIPLICITY_ASSERTION__UPPER:
126 setUpper(UPPER_EDEFAULT);
127 return;
128 }
129 super.eUnset(featureID);
130 }
131
132 /**
133 * <!-- begin-user-doc -->
134 * <!-- end-user-doc -->
135 * @generated
136 */
137 @Override
138 public boolean eIsSet(int featureID) {
139 switch (featureID) {
140 case Ecore2logicannotationsPackage.UPPER_MULTIPLICITY_ASSERTION__UPPER:
141 return upper != UPPER_EDEFAULT;
142 }
143 return super.eIsSet(featureID);
144 }
145
146 /**
147 * <!-- begin-user-doc -->
148 * <!-- end-user-doc -->
149 * @generated
150 */
151 @Override
152 public String toString() {
153 if (eIsProxy()) return super.toString();
154
155 StringBuffer result = new StringBuffer(super.toString());
156 result.append(" (upper: ");
157 result.append(upper);
158 result.append(')');
159 return result.toString();
160 }
161
162} //UpperMultiplicityAssertionImpl
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/util/Ecore2logicannotationsAdapterFactory.java b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/util/Ecore2logicannotationsAdapterFactory.java
new file mode 100644
index 00000000..38b4f411
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/util/Ecore2logicannotationsAdapterFactory.java
@@ -0,0 +1,213 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.util;
4
5import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.*;
6
7import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.Annotation;
8import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.AssertionAnnotation;
9
10import org.eclipse.emf.common.notify.Adapter;
11import org.eclipse.emf.common.notify.Notifier;
12
13import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl;
14
15import org.eclipse.emf.ecore.EObject;
16
17/**
18 * <!-- begin-user-doc -->
19 * The <b>Adapter Factory</b> for the model.
20 * It provides an adapter <code>createXXX</code> method for each class of the model.
21 * <!-- end-user-doc -->
22 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage
23 * @generated
24 */
25public class Ecore2logicannotationsAdapterFactory extends AdapterFactoryImpl {
26 /**
27 * The cached model package.
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 protected static Ecore2logicannotationsPackage modelPackage;
33
34 /**
35 * Creates an instance of the adapter factory.
36 * <!-- begin-user-doc -->
37 * <!-- end-user-doc -->
38 * @generated
39 */
40 public Ecore2logicannotationsAdapterFactory() {
41 if (modelPackage == null) {
42 modelPackage = Ecore2logicannotationsPackage.eINSTANCE;
43 }
44 }
45
46 /**
47 * Returns whether this factory is applicable for the type of the object.
48 * <!-- begin-user-doc -->
49 * This implementation returns <code>true</code> if the object is either the model's package or is an instance object of the model.
50 * <!-- end-user-doc -->
51 * @return whether this factory is applicable for the type of the object.
52 * @generated
53 */
54 @Override
55 public boolean isFactoryForType(Object object) {
56 if (object == modelPackage) {
57 return true;
58 }
59 if (object instanceof EObject) {
60 return ((EObject)object).eClass().getEPackage() == modelPackage;
61 }
62 return false;
63 }
64
65 /**
66 * The switch that delegates to the <code>createXXX</code> methods.
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @generated
70 */
71 protected Ecore2logicannotationsSwitch<Adapter> modelSwitch =
72 new Ecore2logicannotationsSwitch<Adapter>() {
73 @Override
74 public Adapter caseMultiplicityAssertion(MultiplicityAssertion object) {
75 return createMultiplicityAssertionAdapter();
76 }
77 @Override
78 public Adapter caseInverseRelationAssertion(InverseRelationAssertion object) {
79 return createInverseRelationAssertionAdapter();
80 }
81 @Override
82 public Adapter caseLowerMultiplicityAssertion(LowerMultiplicityAssertion object) {
83 return createLowerMultiplicityAssertionAdapter();
84 }
85 @Override
86 public Adapter caseUpperMultiplicityAssertion(UpperMultiplicityAssertion object) {
87 return createUpperMultiplicityAssertionAdapter();
88 }
89 @Override
90 public Adapter caseAnnotation(Annotation object) {
91 return createAnnotationAdapter();
92 }
93 @Override
94 public Adapter caseAssertionAnnotation(AssertionAnnotation object) {
95 return createAssertionAnnotationAdapter();
96 }
97 @Override
98 public Adapter defaultCase(EObject object) {
99 return createEObjectAdapter();
100 }
101 };
102
103 /**
104 * Creates an adapter for the <code>target</code>.
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @param target the object to adapt.
108 * @return the adapter for the <code>target</code>.
109 * @generated
110 */
111 @Override
112 public Adapter createAdapter(Notifier target) {
113 return modelSwitch.doSwitch((EObject)target);
114 }
115
116
117 /**
118 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.MultiplicityAssertion <em>Multiplicity Assertion</em>}'.
119 * <!-- begin-user-doc -->
120 * This default implementation returns null so that we can easily ignore cases;
121 * it's useful to ignore a case when inheritance will catch all the cases anyway.
122 * <!-- end-user-doc -->
123 * @return the new adapter.
124 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.MultiplicityAssertion
125 * @generated
126 */
127 public Adapter createMultiplicityAssertionAdapter() {
128 return null;
129 }
130
131 /**
132 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.InverseRelationAssertion <em>Inverse Relation Assertion</em>}'.
133 * <!-- begin-user-doc -->
134 * This default implementation returns null so that we can easily ignore cases;
135 * it's useful to ignore a case when inheritance will catch all the cases anyway.
136 * <!-- end-user-doc -->
137 * @return the new adapter.
138 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.InverseRelationAssertion
139 * @generated
140 */
141 public Adapter createInverseRelationAssertionAdapter() {
142 return null;
143 }
144
145 /**
146 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.LowerMultiplicityAssertion <em>Lower Multiplicity Assertion</em>}'.
147 * <!-- begin-user-doc -->
148 * This default implementation returns null so that we can easily ignore cases;
149 * it's useful to ignore a case when inheritance will catch all the cases anyway.
150 * <!-- end-user-doc -->
151 * @return the new adapter.
152 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.LowerMultiplicityAssertion
153 * @generated
154 */
155 public Adapter createLowerMultiplicityAssertionAdapter() {
156 return null;
157 }
158
159 /**
160 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.UpperMultiplicityAssertion <em>Upper Multiplicity Assertion</em>}'.
161 * <!-- begin-user-doc -->
162 * This default implementation returns null so that we can easily ignore cases;
163 * it's useful to ignore a case when inheritance will catch all the cases anyway.
164 * <!-- end-user-doc -->
165 * @return the new adapter.
166 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.UpperMultiplicityAssertion
167 * @generated
168 */
169 public Adapter createUpperMultiplicityAssertionAdapter() {
170 return null;
171 }
172
173 /**
174 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.Annotation <em>Annotation</em>}'.
175 * <!-- begin-user-doc -->
176 * This default implementation returns null so that we can easily ignore cases;
177 * it's useful to ignore a case when inheritance will catch all the cases anyway.
178 * <!-- end-user-doc -->
179 * @return the new adapter.
180 * @see hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.Annotation
181 * @generated
182 */
183 public Adapter createAnnotationAdapter() {
184 return null;
185 }
186
187 /**
188 * Creates a new adapter for an object of class '{@link hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.AssertionAnnotation <em>Assertion Annotation</em>}'.
189 * <!-- begin-user-doc -->
190 * This default implementation returns null so that we can easily ignore cases;
191 * it's useful to ignore a case when inheritance will catch all the cases anyway.
192 * <!-- end-user-doc -->
193 * @return the new adapter.
194 * @see hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.AssertionAnnotation
195 * @generated
196 */
197 public Adapter createAssertionAnnotationAdapter() {
198 return null;
199 }
200
201 /**
202 * Creates a new adapter for the default case.
203 * <!-- begin-user-doc -->
204 * This default implementation returns null.
205 * <!-- end-user-doc -->
206 * @return the new adapter.
207 * @generated
208 */
209 public Adapter createEObjectAdapter() {
210 return null;
211 }
212
213} //Ecore2logicannotationsAdapterFactory
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/util/Ecore2logicannotationsSwitch.java b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/util/Ecore2logicannotationsSwitch.java
new file mode 100644
index 00000000..06d3fe84
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen/hu/bme/mit/inf/dslreasoner/ecore2logic/ecore2logicannotations/util/Ecore2logicannotationsSwitch.java
@@ -0,0 +1,216 @@
1/**
2 */
3package hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.util;
4
5import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.*;
6
7import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.Annotation;
8import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.AssertionAnnotation;
9
10import org.eclipse.emf.ecore.EObject;
11import org.eclipse.emf.ecore.EPackage;
12
13import org.eclipse.emf.ecore.util.Switch;
14
15/**
16 * <!-- begin-user-doc -->
17 * The <b>Switch</b> for the model's inheritance hierarchy.
18 * It supports the call {@link #doSwitch(EObject) doSwitch(object)}
19 * to invoke the <code>caseXXX</code> method for each class of the model,
20 * starting with the actual class of the object
21 * and proceeding up the inheritance hierarchy
22 * until a non-null result is returned,
23 * which is the result of the switch.
24 * <!-- end-user-doc -->
25 * @see hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage
26 * @generated
27 */
28public class Ecore2logicannotationsSwitch<T> extends Switch<T> {
29 /**
30 * The cached model package
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @generated
34 */
35 protected static Ecore2logicannotationsPackage modelPackage;
36
37 /**
38 * Creates an instance of the switch.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @generated
42 */
43 public Ecore2logicannotationsSwitch() {
44 if (modelPackage == null) {
45 modelPackage = Ecore2logicannotationsPackage.eINSTANCE;
46 }
47 }
48
49 /**
50 * Checks whether this is a switch for the given package.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @param ePackage the package in question.
54 * @return whether this is a switch for the given package.
55 * @generated
56 */
57 @Override
58 protected boolean isSwitchFor(EPackage ePackage) {
59 return ePackage == modelPackage;
60 }
61
62 /**
63 * Calls <code>caseXXX</code> for each class of the model until one returns a non null result; it yields that result.
64 * <!-- begin-user-doc -->
65 * <!-- end-user-doc -->
66 * @return the first non-null result returned by a <code>caseXXX</code> call.
67 * @generated
68 */
69 @Override
70 protected T doSwitch(int classifierID, EObject theEObject) {
71 switch (classifierID) {
72 case Ecore2logicannotationsPackage.MULTIPLICITY_ASSERTION: {
73 MultiplicityAssertion multiplicityAssertion = (MultiplicityAssertion)theEObject;
74 T result = caseMultiplicityAssertion(multiplicityAssertion);
75 if (result == null) result = caseAssertionAnnotation(multiplicityAssertion);
76 if (result == null) result = caseAnnotation(multiplicityAssertion);
77 if (result == null) result = defaultCase(theEObject);
78 return result;
79 }
80 case Ecore2logicannotationsPackage.INVERSE_RELATION_ASSERTION: {
81 InverseRelationAssertion inverseRelationAssertion = (InverseRelationAssertion)theEObject;
82 T result = caseInverseRelationAssertion(inverseRelationAssertion);
83 if (result == null) result = caseAssertionAnnotation(inverseRelationAssertion);
84 if (result == null) result = caseAnnotation(inverseRelationAssertion);
85 if (result == null) result = defaultCase(theEObject);
86 return result;
87 }
88 case Ecore2logicannotationsPackage.LOWER_MULTIPLICITY_ASSERTION: {
89 LowerMultiplicityAssertion lowerMultiplicityAssertion = (LowerMultiplicityAssertion)theEObject;
90 T result = caseLowerMultiplicityAssertion(lowerMultiplicityAssertion);
91 if (result == null) result = caseMultiplicityAssertion(lowerMultiplicityAssertion);
92 if (result == null) result = caseAssertionAnnotation(lowerMultiplicityAssertion);
93 if (result == null) result = caseAnnotation(lowerMultiplicityAssertion);
94 if (result == null) result = defaultCase(theEObject);
95 return result;
96 }
97 case Ecore2logicannotationsPackage.UPPER_MULTIPLICITY_ASSERTION: {
98 UpperMultiplicityAssertion upperMultiplicityAssertion = (UpperMultiplicityAssertion)theEObject;
99 T result = caseUpperMultiplicityAssertion(upperMultiplicityAssertion);
100 if (result == null) result = caseMultiplicityAssertion(upperMultiplicityAssertion);
101 if (result == null) result = caseAssertionAnnotation(upperMultiplicityAssertion);
102 if (result == null) result = caseAnnotation(upperMultiplicityAssertion);
103 if (result == null) result = defaultCase(theEObject);
104 return result;
105 }
106 default: return defaultCase(theEObject);
107 }
108 }
109
110 /**
111 * Returns the result of interpreting the object as an instance of '<em>Multiplicity Assertion</em>'.
112 * <!-- begin-user-doc -->
113 * This implementation returns null;
114 * returning a non-null result will terminate the switch.
115 * <!-- end-user-doc -->
116 * @param object the target of the switch.
117 * @return the result of interpreting the object as an instance of '<em>Multiplicity Assertion</em>'.
118 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
119 * @generated
120 */
121 public T caseMultiplicityAssertion(MultiplicityAssertion object) {
122 return null;
123 }
124
125 /**
126 * Returns the result of interpreting the object as an instance of '<em>Inverse Relation Assertion</em>'.
127 * <!-- begin-user-doc -->
128 * This implementation returns null;
129 * returning a non-null result will terminate the switch.
130 * <!-- end-user-doc -->
131 * @param object the target of the switch.
132 * @return the result of interpreting the object as an instance of '<em>Inverse Relation Assertion</em>'.
133 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
134 * @generated
135 */
136 public T caseInverseRelationAssertion(InverseRelationAssertion object) {
137 return null;
138 }
139
140 /**
141 * Returns the result of interpreting the object as an instance of '<em>Lower Multiplicity Assertion</em>'.
142 * <!-- begin-user-doc -->
143 * This implementation returns null;
144 * returning a non-null result will terminate the switch.
145 * <!-- end-user-doc -->
146 * @param object the target of the switch.
147 * @return the result of interpreting the object as an instance of '<em>Lower Multiplicity Assertion</em>'.
148 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
149 * @generated
150 */
151 public T caseLowerMultiplicityAssertion(LowerMultiplicityAssertion object) {
152 return null;
153 }
154
155 /**
156 * Returns the result of interpreting the object as an instance of '<em>Upper Multiplicity Assertion</em>'.
157 * <!-- begin-user-doc -->
158 * This implementation returns null;
159 * returning a non-null result will terminate the switch.
160 * <!-- end-user-doc -->
161 * @param object the target of the switch.
162 * @return the result of interpreting the object as an instance of '<em>Upper Multiplicity Assertion</em>'.
163 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
164 * @generated
165 */
166 public T caseUpperMultiplicityAssertion(UpperMultiplicityAssertion object) {
167 return null;
168 }
169
170 /**
171 * Returns the result of interpreting the object as an instance of '<em>Annotation</em>'.
172 * <!-- begin-user-doc -->
173 * This implementation returns null;
174 * returning a non-null result will terminate the switch.
175 * <!-- end-user-doc -->
176 * @param object the target of the switch.
177 * @return the result of interpreting the object as an instance of '<em>Annotation</em>'.
178 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
179 * @generated
180 */
181 public T caseAnnotation(Annotation object) {
182 return null;
183 }
184
185 /**
186 * Returns the result of interpreting the object as an instance of '<em>Assertion Annotation</em>'.
187 * <!-- begin-user-doc -->
188 * This implementation returns null;
189 * returning a non-null result will terminate the switch.
190 * <!-- end-user-doc -->
191 * @param object the target of the switch.
192 * @return the result of interpreting the object as an instance of '<em>Assertion Annotation</em>'.
193 * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
194 * @generated
195 */
196 public T caseAssertionAnnotation(AssertionAnnotation object) {
197 return null;
198 }
199
200 /**
201 * Returns the result of interpreting the object as an instance of '<em>EObject</em>'.
202 * <!-- begin-user-doc -->
203 * This implementation returns null;
204 * returning a non-null result will terminate the switch, but this is the last case anyway.
205 * <!-- end-user-doc -->
206 * @param object the target of the switch.
207 * @return the result of interpreting the object as an instance of '<em>EObject</em>'.
208 * @see #doSwitch(org.eclipse.emf.ecore.EObject)
209 * @generated
210 */
211 @Override
212 public T defaultCase(EObject object) {
213 return null;
214 }
215
216} //Ecore2logicannotationsSwitch
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/model/ecore2logicannotations.aird b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/model/ecore2logicannotations.aird
new file mode 100644
index 00000000..2336933d
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/model/ecore2logicannotations.aird
@@ -0,0 +1,527 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<viewpoint:DAnalysis xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:description="http://www.eclipse.org/sirius/description/1.1.0" xmlns:description_1="http://www.eclipse.org/sirius/diagram/description/1.1.0" xmlns:diagram="http://www.eclipse.org/sirius/diagram/1.1.0" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" xmlns:notation="http://www.eclipse.org/gmf/runtime/1.0.2/notation" xmlns:style="http://www.eclipse.org/sirius/diagram/description/style/1.1.0" xmlns:viewpoint="http://www.eclipse.org/sirius/1.1.0" xsi:schemaLocation="http://www.eclipse.org/sirius/description/1.1.0 http://www.eclipse.org/sirius/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description http://www.eclipse.org/sirius/diagram/description/style/1.1.0 http://www.eclipse.org/sirius/diagram/1.1.0#//description/style" xmi:id="_8ji8MMArEeaaj7sYFz2QKg" selectedViews="_8mY00MArEeaaj7sYFz2QKg _8mhXsMArEeaaj7sYFz2QKg _8mrIsMArEeaaj7sYFz2QKg _8mydcMArEeaaj7sYFz2QKg" version="10.1.0.201509162000">
3 <semanticResources>ecore2logicannotations.ecore</semanticResources>
4 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore</semanticResources>
5 <semanticResources>platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore</semanticResources>
6 <semanticResources>http://www.eclipse.org/emf/2002/Ecore</semanticResources>
7 <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_8mY00MArEeaaj7sYFz2QKg">
8 <ownedRepresentations xmi:type="diagram:DSemanticDiagram" xmi:id="_9rgp0MArEeaaj7sYFz2QKg" name="ecore2logicannotations class diagram">
9 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_9rgp0cArEeaaj7sYFz2QKg" source="DANNOTATION_CUSTOMIZATION_KEY">
10 <data xmi:type="diagram:ComputedStyleDescriptionRegistry" xmi:id="_9rgp0sArEeaaj7sYFz2QKg">
11 <computedStyleDescriptions xmi:type="style:BundledImageDescription" xmi:id="_DwMwIcAsEeaaj7sYFz2QKg" labelExpression="service:render" labelAlignment="LEFT" tooltipExpression="service:renderTooltip" sizeComputationExpression="1">
12 <borderColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
13 <labelFormat>bold</labelFormat>
14 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
15 <color xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
16 </computedStyleDescriptions>
17 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_DwN-QMAsEeaaj7sYFz2QKg" routingStyle="manhattan">
18 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
19 <centerLabelStyleDescription xmi:type="style:CenterLabelStyleDescription" xmi:id="_DwN-QcAsEeaaj7sYFz2QKg" showIcon="false" labelExpression="service:render">
20 <labelFormat>bold</labelFormat>
21 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
22 </centerLabelStyleDescription>
23 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_DwN-QsAsEeaaj7sYFz2QKg" labelSize="6" showIcon="false" labelExpression="service:eKeysLabel">
24 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='dark_blue']"/>
25 </endLabelStyleDescription>
26 </computedStyleDescriptions>
27 <computedStyleDescriptions xmi:type="style:EdgeStyleDescription" xmi:id="_XIVCYMDwEea_b6UyFzv22g" sourceArrow="InputArrow" routingStyle="manhattan">
28 <strokeColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
29 <beginLabelStyleDescription xmi:type="style:BeginLabelStyleDescription" xmi:id="_XIVCYcDwEea_b6UyFzv22g" showIcon="false" labelExpression="service:renderEOpposite">
30 <labelFormat>bold</labelFormat>
31 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
32 </beginLabelStyleDescription>
33 <endLabelStyleDescription xmi:type="style:EndLabelStyleDescription" xmi:id="_XIVCYsDwEea_b6UyFzv22g" showIcon="false" labelExpression="service:render">
34 <labelFormat>bold</labelFormat>
35 <labelColor xmi:type="description:SystemColor" href="environment:/viewpoint#//@systemColors/@entries[name='black']"/>
36 </endLabelStyleDescription>
37 </computedStyleDescriptions>
38 </data>
39 </ownedAnnotationEntries>
40 <ownedAnnotationEntries xmi:type="description:AnnotationEntry" xmi:id="_9rjtIMArEeaaj7sYFz2QKg" source="GMF_DIAGRAMS">
41 <data xmi:type="notation:Diagram" xmi:id="_9rjtIcArEeaaj7sYFz2QKg" type="Sirius" element="_9rgp0MArEeaaj7sYFz2QKg" measurementUnit="Pixel">
42 <children xmi:type="notation:Node" xmi:id="_-SNdcMArEeaaj7sYFz2QKg" type="2003" element="_-SH94MArEeaaj7sYFz2QKg">
43 <children xmi:type="notation:Node" xmi:id="_-SOEgMArEeaaj7sYFz2QKg" type="5007"/>
44 <children xmi:type="notation:Node" xmi:id="_-SOrkMArEeaaj7sYFz2QKg" type="7004">
45 <styles xmi:type="notation:SortingStyle" xmi:id="_-SOrkcArEeaaj7sYFz2QKg"/>
46 <styles xmi:type="notation:FilteringStyle" xmi:id="_-SOrksArEeaaj7sYFz2QKg"/>
47 </children>
48 <styles xmi:type="notation:ShapeStyle" xmi:id="_-SNdccArEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/>
49 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-SNdcsArEeaaj7sYFz2QKg" x="100" y="180"/>
50 </children>
51 <children xmi:type="notation:Node" xmi:id="_-5TSoMArEeaaj7sYFz2QKg" type="2003" element="_-5OaIMArEeaaj7sYFz2QKg">
52 <children xmi:type="notation:Node" xmi:id="_-5T5sMArEeaaj7sYFz2QKg" type="5007"/>
53 <children xmi:type="notation:Node" xmi:id="_-5T5scArEeaaj7sYFz2QKg" type="7004">
54 <styles xmi:type="notation:SortingStyle" xmi:id="_-5T5ssArEeaaj7sYFz2QKg"/>
55 <styles xmi:type="notation:FilteringStyle" xmi:id="_-5T5s8ArEeaaj7sYFz2QKg"/>
56 </children>
57 <styles xmi:type="notation:ShapeStyle" xmi:id="_-5TSocArEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/>
58 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-5TSosArEeaaj7sYFz2QKg" x="260" y="15"/>
59 </children>
60 <children xmi:type="notation:Node" xmi:id="_ABlJUMAsEeaaj7sYFz2QKg" type="2003" element="_ABfpwMAsEeaaj7sYFz2QKg">
61 <children xmi:type="notation:Node" xmi:id="_ABlwYMAsEeaaj7sYFz2QKg" type="5007"/>
62 <children xmi:type="notation:Node" xmi:id="_ABlwYcAsEeaaj7sYFz2QKg" type="7004">
63 <styles xmi:type="notation:SortingStyle" xmi:id="_ABlwYsAsEeaaj7sYFz2QKg"/>
64 <styles xmi:type="notation:FilteringStyle" xmi:id="_ABlwY8AsEeaaj7sYFz2QKg"/>
65 </children>
66 <styles xmi:type="notation:ShapeStyle" xmi:id="_ABlJUcAsEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/>
67 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_ABlJUsAsEeaaj7sYFz2QKg" x="520" y="180" width="168" height="100"/>
68 </children>
69 <children xmi:type="notation:Node" xmi:id="_DwQagMAsEeaaj7sYFz2QKg" type="2003" element="_DwH3oMAsEeaaj7sYFz2QKg">
70 <children xmi:type="notation:Node" xmi:id="_DwRBkMAsEeaaj7sYFz2QKg" type="5007"/>
71 <children xmi:type="notation:Node" xmi:id="_DwRBkcAsEeaaj7sYFz2QKg" type="7004">
72 <children xmi:type="notation:Node" xmi:id="_DwRBlMAsEeaaj7sYFz2QKg" type="3010" element="_DwMwIMAsEeaaj7sYFz2QKg">
73 <styles xmi:type="notation:FontStyle" xmi:id="_DwRBlcAsEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8" bold="true"/>
74 <layoutConstraint xmi:type="notation:Location" xmi:id="_DwRBlsAsEeaaj7sYFz2QKg"/>
75 </children>
76 <styles xmi:type="notation:SortingStyle" xmi:id="_DwRBksAsEeaaj7sYFz2QKg"/>
77 <styles xmi:type="notation:FilteringStyle" xmi:id="_DwRBk8AsEeaaj7sYFz2QKg"/>
78 </children>
79 <styles xmi:type="notation:ShapeStyle" xmi:id="_DwQagcAsEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/>
80 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_DwQagsAsEeaaj7sYFz2QKg" x="500" y="15"/>
81 </children>
82 <children xmi:type="notation:Node" xmi:id="_Cu2ycMAtEeaaj7sYFz2QKg" type="2003" element="_CuwEwMAtEeaaj7sYFz2QKg">
83 <children xmi:type="notation:Node" xmi:id="_Cu2yc8AtEeaaj7sYFz2QKg" type="5007"/>
84 <children xmi:type="notation:Node" xmi:id="_Cu2ydMAtEeaaj7sYFz2QKg" type="7004">
85 <children xmi:type="notation:Node" xmi:id="_GeXKEMAtEeaaj7sYFz2QKg" type="3010" element="_JJ28cMAsEeaaj7sYFz2QKg">
86 <styles xmi:type="notation:FontStyle" xmi:id="_GeXKEcAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8" bold="true"/>
87 <layoutConstraint xmi:type="notation:Location" xmi:id="_GeXKEsAtEeaaj7sYFz2QKg"/>
88 </children>
89 <styles xmi:type="notation:SortingStyle" xmi:id="_Cu2ydcAtEeaaj7sYFz2QKg"/>
90 <styles xmi:type="notation:FilteringStyle" xmi:id="_Cu2ydsAtEeaaj7sYFz2QKg"/>
91 </children>
92 <styles xmi:type="notation:ShapeStyle" xmi:id="_Cu2yccAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/>
93 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_Cu2ycsAtEeaaj7sYFz2QKg" x="25" y="330" width="120" height="100"/>
94 </children>
95 <children xmi:type="notation:Node" xmi:id="_EQinoMAtEeaaj7sYFz2QKg" type="2003" element="_EQaEwMAtEeaaj7sYFz2QKg">
96 <children xmi:type="notation:Node" xmi:id="_EQjOsMAtEeaaj7sYFz2QKg" type="5007"/>
97 <children xmi:type="notation:Node" xmi:id="_EQjOscAtEeaaj7sYFz2QKg" type="7004">
98 <children xmi:type="notation:Node" xmi:id="_GLWugMAtEeaaj7sYFz2QKg" type="3010" element="_KDnO8MAsEeaaj7sYFz2QKg">
99 <styles xmi:type="notation:FontStyle" xmi:id="_GLWugcAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8" bold="true"/>
100 <layoutConstraint xmi:type="notation:Location" xmi:id="_GLWugsAtEeaaj7sYFz2QKg"/>
101 </children>
102 <styles xmi:type="notation:SortingStyle" xmi:id="_EQjOssAtEeaaj7sYFz2QKg"/>
103 <styles xmi:type="notation:FilteringStyle" xmi:id="_EQjOs8AtEeaaj7sYFz2QKg"/>
104 </children>
105 <styles xmi:type="notation:ShapeStyle" xmi:id="_EQinocAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/>
106 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_EQinosAtEeaaj7sYFz2QKg" x="163" y="330" width="120" height="100"/>
107 </children>
108 <children xmi:type="notation:Node" xmi:id="_LJwiMMAtEeaaj7sYFz2QKg" type="2003" element="_LJomYMAtEeaaj7sYFz2QKg">
109 <children xmi:type="notation:Node" xmi:id="_LJwiM8AtEeaaj7sYFz2QKg" type="5007"/>
110 <children xmi:type="notation:Node" xmi:id="_LJxJQMAtEeaaj7sYFz2QKg" type="7004">
111 <styles xmi:type="notation:SortingStyle" xmi:id="_LJxJQcAtEeaaj7sYFz2QKg"/>
112 <styles xmi:type="notation:FilteringStyle" xmi:id="_LJxJQsAtEeaaj7sYFz2QKg"/>
113 </children>
114 <styles xmi:type="notation:ShapeStyle" xmi:id="_LJwiMcAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/>
115 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LJwiMsAtEeaaj7sYFz2QKg" x="280" y="-150"/>
116 </children>
117 <children xmi:type="notation:Node" xmi:id="_OgZt4MAtEeaaj7sYFz2QKg" type="2003" element="_OgM5kMAtEeaaj7sYFz2QKg">
118 <children xmi:type="notation:Node" xmi:id="_OgZt48AtEeaaj7sYFz2QKg" type="5007"/>
119 <children xmi:type="notation:Node" xmi:id="_OgZt5MAtEeaaj7sYFz2QKg" type="7004">
120 <styles xmi:type="notation:SortingStyle" xmi:id="_OgZt5cAtEeaaj7sYFz2QKg"/>
121 <styles xmi:type="notation:FilteringStyle" xmi:id="_OgZt5sAtEeaaj7sYFz2QKg"/>
122 </children>
123 <styles xmi:type="notation:ShapeStyle" xmi:id="_OgZt4cAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8" italic="true"/>
124 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_OgZt4sAtEeaaj7sYFz2QKg" x="315" y="180"/>
125 </children>
126 <styles xmi:type="notation:DiagramStyle" xmi:id="_9rjtIsArEeaaj7sYFz2QKg"/>
127 <edges xmi:type="notation:Edge" xmi:id="_-5VH0MArEeaaj7sYFz2QKg" type="4001" element="_-5SEgcArEeaaj7sYFz2QKg" source="_-SNdcMArEeaaj7sYFz2QKg" target="_-5TSoMArEeaaj7sYFz2QKg">
128 <children xmi:type="notation:Node" xmi:id="_-5Vu4MArEeaaj7sYFz2QKg" type="6001">
129 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-5Vu4cArEeaaj7sYFz2QKg" y="-10"/>
130 </children>
131 <children xmi:type="notation:Node" xmi:id="_-5Vu4sArEeaaj7sYFz2QKg" type="6002">
132 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-5Vu48ArEeaaj7sYFz2QKg" y="10"/>
133 </children>
134 <children xmi:type="notation:Node" xmi:id="_-5Vu5MArEeaaj7sYFz2QKg" type="6003">
135 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_-5Vu5cArEeaaj7sYFz2QKg" y="10"/>
136 </children>
137 <styles xmi:type="notation:ConnectorStyle" xmi:id="_-5VH0cArEeaaj7sYFz2QKg" routing="Tree"/>
138 <styles xmi:type="notation:FontStyle" xmi:id="_-5VH0sArEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/>
139 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_-5VH08ArEeaaj7sYFz2QKg" points="[210, 135, 210, 135]$[0, 0, 0, 0]"/>
140 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-5WV8MArEeaaj7sYFz2QKg" id="(0.5,0.5)"/>
141 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_-5WV8cArEeaaj7sYFz2QKg" id="(0.5,0.5)"/>
142 </edges>
143 <edges xmi:type="notation:Edge" xmi:id="_u58dgMAsEeaaj7sYFz2QKg" type="4001" element="_u5ysgMAsEeaaj7sYFz2QKg" source="_ABlJUMAsEeaaj7sYFz2QKg" target="_-5TSoMArEeaaj7sYFz2QKg">
144 <children xmi:type="notation:Node" xmi:id="_u58dhMAsEeaaj7sYFz2QKg" type="6001">
145 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u59EkMAsEeaaj7sYFz2QKg" y="-10"/>
146 </children>
147 <children xmi:type="notation:Node" xmi:id="_u59EkcAsEeaaj7sYFz2QKg" type="6002">
148 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u59EksAsEeaaj7sYFz2QKg" y="10"/>
149 </children>
150 <children xmi:type="notation:Node" xmi:id="_u59Ek8AsEeaaj7sYFz2QKg" type="6003">
151 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_u59ElMAsEeaaj7sYFz2QKg" y="10"/>
152 </children>
153 <styles xmi:type="notation:ConnectorStyle" xmi:id="_u58dgcAsEeaaj7sYFz2QKg" routing="Tree"/>
154 <styles xmi:type="notation:FontStyle" xmi:id="_u58dgsAsEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/>
155 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_u58dg8AsEeaaj7sYFz2QKg" points="[0, 0, 101, 67]$[-101, -67, 0, 0]"/>
156 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_u59ElcAsEeaaj7sYFz2QKg" id="(0.8132530120481928,0.0)"/>
157 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_u59ElsAsEeaaj7sYFz2QKg" id="(0.5,0.5)"/>
158 </edges>
159 <edges xmi:type="notation:Edge" xmi:id="_HR0nUMAtEeaaj7sYFz2QKg" type="4001" element="_HRrdYMAtEeaaj7sYFz2QKg" source="_Cu2ycMAtEeaaj7sYFz2QKg" target="_-SNdcMArEeaaj7sYFz2QKg">
160 <children xmi:type="notation:Node" xmi:id="_HR1OYMAtEeaaj7sYFz2QKg" type="6001">
161 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HR1OYcAtEeaaj7sYFz2QKg" y="-10"/>
162 </children>
163 <children xmi:type="notation:Node" xmi:id="_HR1OYsAtEeaaj7sYFz2QKg" type="6002">
164 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HR1OY8AtEeaaj7sYFz2QKg" y="10"/>
165 </children>
166 <children xmi:type="notation:Node" xmi:id="_HR1OZMAtEeaaj7sYFz2QKg" type="6003">
167 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HR1OZcAtEeaaj7sYFz2QKg" y="10"/>
168 </children>
169 <styles xmi:type="notation:ConnectorStyle" xmi:id="_HR0nUcAtEeaaj7sYFz2QKg" routing="Tree"/>
170 <styles xmi:type="notation:FontStyle" xmi:id="_HR0nUsAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/>
171 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HR0nU8AtEeaaj7sYFz2QKg" points="[0, 0, -35, 52]$[35, -52, 0, 0]"/>
172 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HR1OZsAtEeaaj7sYFz2QKg" id="(0.635593220338983,0.0)"/>
173 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HR1OZ8AtEeaaj7sYFz2QKg" id="(0.5,0.5)"/>
174 </edges>
175 <edges xmi:type="notation:Edge" xmi:id="_HuNoYMAtEeaaj7sYFz2QKg" type="4001" element="_HuEecMAtEeaaj7sYFz2QKg" source="_EQinoMAtEeaaj7sYFz2QKg" target="_-SNdcMArEeaaj7sYFz2QKg">
176 <children xmi:type="notation:Node" xmi:id="_HuNoZMAtEeaaj7sYFz2QKg" type="6001">
177 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HuNoZcAtEeaaj7sYFz2QKg" y="-10"/>
178 </children>
179 <children xmi:type="notation:Node" xmi:id="_HuNoZsAtEeaaj7sYFz2QKg" type="6002">
180 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HuNoZ8AtEeaaj7sYFz2QKg" y="10"/>
181 </children>
182 <children xmi:type="notation:Node" xmi:id="_HuNoaMAtEeaaj7sYFz2QKg" type="6003">
183 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_HuNoacAtEeaaj7sYFz2QKg" y="10"/>
184 </children>
185 <styles xmi:type="notation:ConnectorStyle" xmi:id="_HuNoYcAtEeaaj7sYFz2QKg" routing="Tree"/>
186 <styles xmi:type="notation:FontStyle" xmi:id="_HuNoYsAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/>
187 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_HuNoY8AtEeaaj7sYFz2QKg" points="[0, 0, 112, 52]$[-112, -52, 0, 0]"/>
188 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HuNoasAtEeaaj7sYFz2QKg" id="(0.5,0.0)"/>
189 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_HuNoa8AtEeaaj7sYFz2QKg" id="(0.5,0.5)"/>
190 </edges>
191 <edges xmi:type="notation:Edge" xmi:id="_LJyXYMAtEeaaj7sYFz2QKg" type="4001" element="_LJutAMAtEeaaj7sYFz2QKg" source="_-5TSoMArEeaaj7sYFz2QKg" target="_LJwiMMAtEeaaj7sYFz2QKg">
192 <children xmi:type="notation:Node" xmi:id="_LJyXZMAtEeaaj7sYFz2QKg" type="6001">
193 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LJyXZcAtEeaaj7sYFz2QKg" y="-10"/>
194 </children>
195 <children xmi:type="notation:Node" xmi:id="_LJyXZsAtEeaaj7sYFz2QKg" type="6002">
196 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LJyXZ8AtEeaaj7sYFz2QKg" y="10"/>
197 </children>
198 <children xmi:type="notation:Node" xmi:id="_LJyXaMAtEeaaj7sYFz2QKg" type="6003">
199 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_LJyXacAtEeaaj7sYFz2QKg" y="10"/>
200 </children>
201 <styles xmi:type="notation:ConnectorStyle" xmi:id="_LJyXYcAtEeaaj7sYFz2QKg" routing="Tree"/>
202 <styles xmi:type="notation:FontStyle" xmi:id="_LJyXYsAtEeaaj7sYFz2QKg" fontName="Segoe UI" fontHeight="8"/>
203 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_LJyXY8AtEeaaj7sYFz2QKg" points="[260, 15, 260, 15]$[0, 0, 0, 0]"/>
204 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LJzlgMAtEeaaj7sYFz2QKg" id="(0.5,0.5)"/>
205 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_LJzlgcAtEeaaj7sYFz2QKg" id="(0.5,0.5)"/>
206 </edges>
207 <edges xmi:type="notation:Edge" xmi:id="_QkxZYMAtEeaaj7sYFz2QKg" type="4001" element="_Qko2gMAtEeaaj7sYFz2QKg" source="_ABlJUMAsEeaaj7sYFz2QKg" target="_OgZt4MAtEeaaj7sYFz2QKg">
208 <children xmi:type="notation:Node" xmi:id="_QkxZZMAtEeaaj7sYFz2QKg" type="6001">
209 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QkxZZcAtEeaaj7sYFz2QKg" x="1" y="12"/>
210 </children>
211 <children xmi:type="notation:Node" xmi:id="_QkxZZsAtEeaaj7sYFz2QKg" type="6002">
212 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QkxZZ8AtEeaaj7sYFz2QKg" y="-10"/>
213 </children>
214 <children xmi:type="notation:Node" xmi:id="_QkxZaMAtEeaaj7sYFz2QKg" type="6003">
215 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_QkxZacAtEeaaj7sYFz2QKg" y="-10"/>
216 </children>
217 <styles xmi:type="notation:ConnectorStyle" xmi:id="_QkxZYcAtEeaaj7sYFz2QKg" routing="Rectilinear"/>
218 <styles xmi:type="notation:FontStyle" xmi:id="_QkxZYsAtEeaaj7sYFz2QKg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
219 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_QkxZY8AtEeaaj7sYFz2QKg" points="[-166, 30, 205, 30]$[-253, 30, 118, 30]"/>
220 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QkyAcMAtEeaaj7sYFz2QKg" id="(1.0,0.0)"/>
221 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_QkyAccAtEeaaj7sYFz2QKg" id="(0.0,0.0)"/>
222 </edges>
223 <edges xmi:type="notation:Edge" xmi:id="_wTbfUMA0Eeaaj7sYFz2QKg" type="4001" element="_wTP5IMA0Eeaaj7sYFz2QKg" source="_-SNdcMArEeaaj7sYFz2QKg" target="_OgZt4MAtEeaaj7sYFz2QKg">
224 <children xmi:type="notation:Node" xmi:id="_wTbfVMA0Eeaaj7sYFz2QKg" type="6001">
225 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wTbfVcA0Eeaaj7sYFz2QKg" x="-2" y="-12"/>
226 </children>
227 <children xmi:type="notation:Node" xmi:id="_wTbfVsA0Eeaaj7sYFz2QKg" type="6002">
228 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wTbfV8A0Eeaaj7sYFz2QKg" x="21" y="10"/>
229 </children>
230 <children xmi:type="notation:Node" xmi:id="_wTcGYMA0Eeaaj7sYFz2QKg" type="6003">
231 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_wTcGYcA0Eeaaj7sYFz2QKg" y="10"/>
232 </children>
233 <styles xmi:type="notation:ConnectorStyle" xmi:id="_wTbfUcA0Eeaaj7sYFz2QKg" routing="Rectilinear"/>
234 <styles xmi:type="notation:FontStyle" xmi:id="_wTbfUsA0Eeaaj7sYFz2QKg" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
235 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_wTbfU8A0Eeaaj7sYFz2QKg" points="[0, 20, -124, 60]$[89, 20, -35, 60]"/>
236 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wTcGYsA0Eeaaj7sYFz2QKg" id="(1.0,0.40816326530612246)"/>
237 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_wTcGY8A0Eeaaj7sYFz2QKg" id="(0.2966101694915254,0.0)"/>
238 </edges>
239 <edges xmi:type="notation:Edge" xmi:id="_D6-y0MDnEea_b6UyFzv22g" type="4001" element="_D6viQMDnEea_b6UyFzv22g" source="_ABlJUMAsEeaaj7sYFz2QKg" target="_OgZt4MAtEeaaj7sYFz2QKg">
240 <children xmi:type="notation:Node" xmi:id="_D6_Z4MDnEea_b6UyFzv22g" type="6001">
241 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D6_Z4cDnEea_b6UyFzv22g" y="-6"/>
242 </children>
243 <children xmi:type="notation:Node" xmi:id="_D6_Z4sDnEea_b6UyFzv22g" type="6002">
244 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D6_Z48DnEea_b6UyFzv22g" x="1" y="10"/>
245 </children>
246 <children xmi:type="notation:Node" xmi:id="_D6_Z5MDnEea_b6UyFzv22g" type="6003">
247 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_D6_Z5cDnEea_b6UyFzv22g" x="-2" y="10"/>
248 </children>
249 <styles xmi:type="notation:ConnectorStyle" xmi:id="_D6-y0cDnEea_b6UyFzv22g" routing="Rectilinear"/>
250 <styles xmi:type="notation:FontStyle" xmi:id="_D6-y0sDnEea_b6UyFzv22g" fontColor="7490599" fontName="Segoe UI" fontHeight="8"/>
251 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_D6-y08DnEea_b6UyFzv22g" points="[0, 0, 87, 10]$[-87, 0, 0, 10]"/>
252 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D6_Z5sDnEea_b6UyFzv22g" id="(0.0,0.8673469387755102)"/>
253 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_D7AA8MDnEea_b6UyFzv22g" id="(1.0,0.7653061224489796)"/>
254 </edges>
255 <edges xmi:type="notation:Edge" xmi:id="_NpFP0MDnEea_b6UyFzv22g" type="4001" element="_NozjAMDnEea_b6UyFzv22g" source="_-5TSoMArEeaaj7sYFz2QKg" target="_DwQagMAsEeaaj7sYFz2QKg">
256 <children xmi:type="notation:Node" xmi:id="_NpFP1MDnEea_b6UyFzv22g" type="6001">
257 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpFP1cDnEea_b6UyFzv22g" y="-10"/>
258 </children>
259 <children xmi:type="notation:Node" xmi:id="_NpF24MDnEea_b6UyFzv22g" type="6002">
260 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpF24cDnEea_b6UyFzv22g" y="10"/>
261 </children>
262 <children xmi:type="notation:Node" xmi:id="_NpF24sDnEea_b6UyFzv22g" type="6003">
263 <layoutConstraint xmi:type="notation:Bounds" xmi:id="_NpF248DnEea_b6UyFzv22g" y="10"/>
264 </children>
265 <styles xmi:type="notation:ConnectorStyle" xmi:id="_NpFP0cDnEea_b6UyFzv22g" routing="Rectilinear"/>
266 <styles xmi:type="notation:FontStyle" xmi:id="_NpFP0sDnEea_b6UyFzv22g" fontName="Segoe UI" fontHeight="8" bold="true"/>
267 <bendpoints xmi:type="notation:RelativeBendpoints" xmi:id="_NpFP08DnEea_b6UyFzv22g" points="[260, 15, 260, 15]$[500, 15, 500, 15]"/>
268 <sourceAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NpF25MDnEea_b6UyFzv22g" id="(0.5,0.5)"/>
269 <targetAnchor xmi:type="notation:IdentityAnchor" xmi:id="_NpF25cDnEea_b6UyFzv22g" id="(0.5,0.5)"/>
270 </edges>
271 </data>
272 </ownedAnnotationEntries>
273 <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_-SH94MArEeaaj7sYFz2QKg" name="MultiplicityAssertion" tooltipText="" outgoingEdges="_-5SEgcArEeaaj7sYFz2QKg _wTP5IMA0Eeaaj7sYFz2QKg" incomingEdges="_HRrdYMAtEeaaj7sYFz2QKg _HuEecMAtEeaaj7sYFz2QKg" width="12" height="10">
274 <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//MultiplicityAssertion"/>
275 <semanticElements xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//MultiplicityAssertion"/>
276 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
277 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
278 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
279 <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_BQSisMAtEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
280 <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"/>
281 </ownedStyle>
282 <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']"/>
283 </ownedDiagramElements>
284 <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_-5OaIMArEeaaj7sYFz2QKg" name="AssertionAnnotation" tooltipText="" outgoingEdges="_LJutAMAtEeaaj7sYFz2QKg _NozjAMDnEea_b6UyFzv22g" incomingEdges="_-5SEgcArEeaaj7sYFz2QKg _u5ysgMAsEeaaj7sYFz2QKg" width="12" height="10">
285 <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/>
286 <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/>
287 <decorations xmi:type="viewpoint:Decoration" xmi:id="_-5SEgMArEeaaj7sYFz2QKg">
288 <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/>
289 </decorations>
290 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
291 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
292 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
293 <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_XIPi0MDwEea_b6UyFzv22g" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
294 <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"/>
295 </ownedStyle>
296 <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']"/>
297 </ownedDiagramElements>
298 <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_-5SEgcArEeaaj7sYFz2QKg" sourceNode="_-SH94MArEeaaj7sYFz2QKg" targetNode="_-5OaIMArEeaaj7sYFz2QKg">
299 <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//MultiplicityAssertion"/>
300 <semanticElements xmi:type="ecore:EGenericType" href="ecore2logicannotations.ecore#//MultiplicityAssertion/@eGenericSuperTypes.0"/>
301 <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_BQWNEMAtEeaaj7sYFz2QKg" targetArrow="InputClosedArrow" routingStyle="tree">
302 <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"/>
303 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_BQWNEcAtEeaaj7sYFz2QKg" showIcon="false">
304 <labelFormat>italic</labelFormat>
305 </beginLabelStyle>
306 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_BQWNEsAtEeaaj7sYFz2QKg" showIcon="false"/>
307 </ownedStyle>
308 <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']"/>
309 </ownedDiagramElements>
310 <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_ABfpwMAsEeaaj7sYFz2QKg" name="InverseRelationAssertion" tooltipText="" outgoingEdges="_u5ysgMAsEeaaj7sYFz2QKg _Qko2gMAtEeaaj7sYFz2QKg _D6viQMDnEea_b6UyFzv22g" width="12" height="10">
311 <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//InverseRelationAssertion"/>
312 <semanticElements xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//InverseRelationAssertion"/>
313 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
314 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
315 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
316 <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_ABfpwcAsEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
317 <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"/>
318 </ownedStyle>
319 <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']"/>
320 </ownedDiagramElements>
321 <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_DwH3oMAsEeaaj7sYFz2QKg" name="Assertion" tooltipText="" incomingEdges="_NozjAMDnEea_b6UyFzv22g" width="12" height="10">
322 <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion"/>
323 <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion"/>
324 <decorations xmi:type="viewpoint:Decoration" xmi:id="_DwNXMMAsEeaaj7sYFz2QKg">
325 <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/>
326 </decorations>
327 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
328 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
329 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
330 <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_DwH3ocAsEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
331 <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"/>
332 </ownedStyle>
333 <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']"/>
334 <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_DwMwIMAsEeaaj7sYFz2QKg" name="name : EString" tooltipText="">
335 <target xmi:type="ecore:EAttribute" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion/name"/>
336 <semanticElements xmi:type="ecore:EAttribute" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion/name"/>
337 <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_DwMwIsAsEeaaj7sYFz2QKg" labelAlignment="LEFT" description="_DwMwIcAsEeaaj7sYFz2QKg">
338 <labelFormat>bold</labelFormat>
339 </ownedStyle>
340 <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']"/>
341 </ownedElements>
342 </ownedDiagramElements>
343 <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_u5ysgMAsEeaaj7sYFz2QKg" sourceNode="_ABfpwMAsEeaaj7sYFz2QKg" targetNode="_-5OaIMArEeaaj7sYFz2QKg">
344 <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//InverseRelationAssertion"/>
345 <semanticElements xmi:type="ecore:EGenericType" href="ecore2logicannotations.ecore#//InverseRelationAssertion/@eGenericSuperTypes.0"/>
346 <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_u5zTkMAsEeaaj7sYFz2QKg" targetArrow="InputClosedArrow" routingStyle="tree">
347 <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"/>
348 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_u5zTkcAsEeaaj7sYFz2QKg" showIcon="false">
349 <labelFormat>italic</labelFormat>
350 </beginLabelStyle>
351 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_u5zTksAsEeaaj7sYFz2QKg" showIcon="false"/>
352 </ownedStyle>
353 <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']"/>
354 </ownedDiagramElements>
355 <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_CuwEwMAtEeaaj7sYFz2QKg" name="LowerMultiplicityAssertion" tooltipText="" outgoingEdges="_HRrdYMAtEeaaj7sYFz2QKg" width="12" height="10">
356 <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion"/>
357 <semanticElements xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion"/>
358 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
359 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
360 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
361 <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_CuwEwcAtEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
362 <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"/>
363 </ownedStyle>
364 <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']"/>
365 <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_JJ28cMAsEeaaj7sYFz2QKg" name="lower : EInt" tooltipText="">
366 <target xmi:type="ecore:EAttribute" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion/lower"/>
367 <semanticElements xmi:type="ecore:EAttribute" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion/lower"/>
368 <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_Alvw4MAtEeaaj7sYFz2QKg" labelAlignment="LEFT" description="_DwMwIcAsEeaaj7sYFz2QKg">
369 <labelFormat>bold</labelFormat>
370 </ownedStyle>
371 <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']"/>
372 </ownedElements>
373 </ownedDiagramElements>
374 <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_EQaEwMAtEeaaj7sYFz2QKg" name="UpperMultiplicityAssertion" tooltipText="" outgoingEdges="_HuEecMAtEeaaj7sYFz2QKg" width="12" height="10">
375 <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion"/>
376 <semanticElements xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion"/>
377 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
378 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
379 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
380 <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_EQar0MAtEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
381 <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"/>
382 </ownedStyle>
383 <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']"/>
384 <ownedElements xmi:type="diagram:DNodeListElement" xmi:id="_KDnO8MAsEeaaj7sYFz2QKg" name="upper : EInt" tooltipText="">
385 <target xmi:type="ecore:EAttribute" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion/upper"/>
386 <semanticElements xmi:type="ecore:EAttribute" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion/upper"/>
387 <ownedStyle xmi:type="diagram:BundledImage" xmi:id="_F2B-wMAtEeaaj7sYFz2QKg" labelAlignment="LEFT" description="_DwMwIcAsEeaaj7sYFz2QKg">
388 <labelFormat>bold</labelFormat>
389 </ownedStyle>
390 <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']"/>
391 </ownedElements>
392 </ownedDiagramElements>
393 <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_HRrdYMAtEeaaj7sYFz2QKg" sourceNode="_CuwEwMAtEeaaj7sYFz2QKg" targetNode="_-SH94MArEeaaj7sYFz2QKg">
394 <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion"/>
395 <semanticElements xmi:type="ecore:EGenericType" href="ecore2logicannotations.ecore#//LowerMultiplicityAssertion/@eGenericSuperTypes.0"/>
396 <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_HRsEcMAtEeaaj7sYFz2QKg" targetArrow="InputClosedArrow" routingStyle="tree">
397 <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"/>
398 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_HRsEccAtEeaaj7sYFz2QKg" showIcon="false">
399 <labelFormat>italic</labelFormat>
400 </beginLabelStyle>
401 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_HRsEcsAtEeaaj7sYFz2QKg" showIcon="false"/>
402 </ownedStyle>
403 <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']"/>
404 </ownedDiagramElements>
405 <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_HuEecMAtEeaaj7sYFz2QKg" sourceNode="_EQaEwMAtEeaaj7sYFz2QKg" targetNode="_-SH94MArEeaaj7sYFz2QKg">
406 <target xmi:type="ecore:EClass" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion"/>
407 <semanticElements xmi:type="ecore:EGenericType" href="ecore2logicannotations.ecore#//UpperMultiplicityAssertion/@eGenericSuperTypes.0"/>
408 <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_HuEeccAtEeaaj7sYFz2QKg" targetArrow="InputClosedArrow" routingStyle="tree">
409 <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"/>
410 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_HuEecsAtEeaaj7sYFz2QKg" showIcon="false">
411 <labelFormat>italic</labelFormat>
412 </beginLabelStyle>
413 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_HuEec8AtEeaaj7sYFz2QKg" showIcon="false"/>
414 </ownedStyle>
415 <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']"/>
416 </ownedDiagramElements>
417 <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_LJomYMAtEeaaj7sYFz2QKg" name="Annotation" tooltipText="" incomingEdges="_LJutAMAtEeaaj7sYFz2QKg" width="12" height="10">
418 <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//Annotation"/>
419 <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//Annotation"/>
420 <decorations xmi:type="viewpoint:Decoration" xmi:id="_LJte4MAtEeaaj7sYFz2QKg">
421 <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/>
422 </decorations>
423 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
424 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
425 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
426 <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_LJomYcAtEeaaj7sYFz2QKg" borderSize="1" borderSizeComputationExpression="1" backgroundStyle="Liquid" foregroundColor="255,252,216">
427 <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"/>
428 </ownedStyle>
429 <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']"/>
430 </ownedDiagramElements>
431 <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_LJutAMAtEeaaj7sYFz2QKg" sourceNode="_-5OaIMArEeaaj7sYFz2QKg" targetNode="_LJomYMAtEeaaj7sYFz2QKg">
432 <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation"/>
433 <semanticElements xmi:type="ecore:EGenericType" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation/@eGenericSuperTypes.0"/>
434 <decorations xmi:type="viewpoint:Decoration" xmi:id="_QknoYMAtEeaaj7sYFz2QKg">
435 <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/>
436 </decorations>
437 <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_XIT0QMDwEea_b6UyFzv22g" targetArrow="InputClosedArrow" routingStyle="tree">
438 <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"/>
439 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_XIUbUMDwEea_b6UyFzv22g" showIcon="false">
440 <labelFormat>italic</labelFormat>
441 </beginLabelStyle>
442 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_XIUbUcDwEea_b6UyFzv22g" showIcon="false"/>
443 </ownedStyle>
444 <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']"/>
445 </ownedDiagramElements>
446 <ownedDiagramElements xmi:type="diagram:DNodeList" xmi:id="_OgM5kMAtEeaaj7sYFz2QKg" name="Relation" tooltipText="" incomingEdges="_Qko2gMAtEeaaj7sYFz2QKg _wTP5IMA0Eeaaj7sYFz2QKg _D6viQMDnEea_b6UyFzv22g" width="12" height="10">
447 <target xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Relation"/>
448 <semanticElements xmi:type="ecore:EClass" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Relation"/>
449 <decorations xmi:type="viewpoint:Decoration" xmi:id="_OgTnQMAtEeaaj7sYFz2QKg">
450 <description xmi:type="description:SemanticBasedDecoration" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer/@decorationDescriptionsSet/@decorationDescriptions[name='External']"/>
451 </decorations>
452 <arrangeConstraints>KEEP_LOCATION</arrangeConstraints>
453 <arrangeConstraints>KEEP_SIZE</arrangeConstraints>
454 <arrangeConstraints>KEEP_RATIO</arrangeConstraints>
455 <ownedStyle xmi:type="diagram:FlatContainerStyle" xmi:id="_OgNgoMAtEeaaj7sYFz2QKg" iconPath="/org.eclipse.emf.ecoretools.design/icons/full/obj16/EClass_abstract.gif" borderSize="1" borderSizeComputationExpression="1" borderColor="125,125,125" backgroundStyle="Liquid" foregroundColor="228,228,228">
456 <labelFormat>italic</labelFormat>
457 <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']/@conditionnalStyles.1/@style"/>
458 </ownedStyle>
459 <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']"/>
460 </ownedDiagramElements>
461 <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_Qko2gMAtEeaaj7sYFz2QKg" name="[1..1] inverseA" sourceNode="_ABfpwMAsEeaaj7sYFz2QKg" targetNode="_OgM5kMAtEeaaj7sYFz2QKg">
462 <target xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//InverseRelationAssertion/inverseA"/>
463 <semanticElements xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//InverseRelationAssertion/inverseA"/>
464 <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_UKs-QMAtEeaaj7sYFz2QKg" description="_DwN-QMAsEeaaj7sYFz2QKg" routingStyle="manhattan" strokeColor="0,0,0">
465 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_UKs-QcAtEeaaj7sYFz2QKg" showIcon="false">
466 <labelFormat>bold</labelFormat>
467 </centerLabelStyle>
468 <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_UKs-QsAtEeaaj7sYFz2QKg" labelSize="6" showIcon="false" labelColor="39,76,114"/>
469 </ownedStyle>
470 <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_EReference']"/>
471 </ownedDiagramElements>
472 <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_wTP5IMA0Eeaaj7sYFz2QKg" name="[1..1] relation" sourceNode="_-SH94MArEeaaj7sYFz2QKg" targetNode="_OgM5kMAtEeaaj7sYFz2QKg">
473 <target xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//MultiplicityAssertion/relation"/>
474 <semanticElements xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//MultiplicityAssertion/relation"/>
475 <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_x7xWIMA0Eeaaj7sYFz2QKg" description="_DwN-QMAsEeaaj7sYFz2QKg" routingStyle="manhattan" strokeColor="0,0,0">
476 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_x7xWIcA0Eeaaj7sYFz2QKg" showIcon="false">
477 <labelFormat>bold</labelFormat>
478 </centerLabelStyle>
479 <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_x7xWIsA0Eeaaj7sYFz2QKg" labelSize="6" showIcon="false" labelColor="39,76,114"/>
480 </ownedStyle>
481 <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_EReference']"/>
482 </ownedDiagramElements>
483 <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_D6viQMDnEea_b6UyFzv22g" name="[1..1] inverseB" sourceNode="_ABfpwMAsEeaaj7sYFz2QKg" targetNode="_OgM5kMAtEeaaj7sYFz2QKg">
484 <target xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//InverseRelationAssertion/inverseB"/>
485 <semanticElements xmi:type="ecore:EReference" href="ecore2logicannotations.ecore#//InverseRelationAssertion/inverseB"/>
486 <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_F6Fj0MDnEea_b6UyFzv22g" description="_DwN-QMAsEeaaj7sYFz2QKg" routingStyle="manhattan" strokeColor="0,0,0">
487 <centerLabelStyle xmi:type="diagram:CenterLabelStyle" xmi:id="_F6Fj0cDnEea_b6UyFzv22g" showIcon="false">
488 <labelFormat>bold</labelFormat>
489 </centerLabelStyle>
490 <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_F6Fj0sDnEea_b6UyFzv22g" labelSize="6" showIcon="false" labelColor="39,76,114"/>
491 </ownedStyle>
492 <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_EReference']"/>
493 </ownedDiagramElements>
494 <ownedDiagramElements xmi:type="diagram:DEdge" xmi:id="_NozjAMDnEea_b6UyFzv22g" sourceNode="_-5OaIMArEeaaj7sYFz2QKg" targetNode="_DwH3oMAsEeaaj7sYFz2QKg" beginLabel="[0..*] annotations" endLabel="[1..1] target">
495 <target xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation/target"/>
496 <semanticElements xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Assertion/annotations"/>
497 <semanticElements xmi:type="ecore:EReference" href="platform:/resource/hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation/target"/>
498 <ownedStyle xmi:type="diagram:EdgeStyle" xmi:id="_XIVpcMDwEea_b6UyFzv22g" description="_XIVCYMDwEea_b6UyFzv22g" sourceArrow="InputArrow" routingStyle="manhattan" strokeColor="0,0,0">
499 <beginLabelStyle xmi:type="diagram:BeginLabelStyle" xmi:id="_XIVpccDwEea_b6UyFzv22g" showIcon="false">
500 <labelFormat>bold</labelFormat>
501 </beginLabelStyle>
502 <endLabelStyle xmi:type="diagram:EndLabelStyle" xmi:id="_XIVpcsDwEea_b6UyFzv22g" showIcon="false">
503 <labelFormat>bold</labelFormat>
504 </endLabelStyle>
505 </ownedStyle>
506 <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='Bi-directional%20EC_EReference%20']"/>
507 </ownedDiagramElements>
508 <description xmi:type="description_1:DiagramDescription" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']"/>
509 <filterVariableHistory xmi:type="diagram:FilterVariableHistory" xmi:id="_9rgp1cArEeaaj7sYFz2QKg"/>
510 <activatedLayers xmi:type="description_1:Layer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@defaultLayer"/>
511 <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Package']"/>
512 <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']/@ownedRepresentations[name='Entities']/@additionalLayers[name='Validation']"/>
513 <activatedLayers xmi:type="description_1:AdditionalLayer" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']/@ownedRepresentationExtensions[name='Entities%20With%20Archetypes']/@layers[name='Archetypes']"/>
514 <target xmi:type="ecore:EPackage" href="ecore2logicannotations.ecore#/"/>
515 </ownedRepresentations>
516 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Design']"/>
517 </ownedViews>
518 <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_8mhXsMArEeaaj7sYFz2QKg">
519 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Review']"/>
520 </ownedViews>
521 <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_8mrIsMArEeaaj7sYFz2QKg">
522 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Archetype']"/>
523 </ownedViews>
524 <ownedViews xmi:type="viewpoint:DRepresentationContainer" xmi:id="_8mydcMArEeaaj7sYFz2QKg">
525 <viewpoint xmi:type="description:Viewpoint" href="platform:/plugin/org.eclipse.emf.ecoretools.design/description/ecore.odesign#//@ownedViewpoints[name='Generation']"/>
526 </ownedViews>
527</viewpoint:DAnalysis>
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/model/ecore2logicannotations.ecore b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/model/ecore2logicannotations.ecore
new file mode 100644
index 00000000..99c70059
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/model/ecore2logicannotations.ecore
@@ -0,0 +1,21 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3 xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="ecore2logicannotations" nsURI="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation"
4 nsPrefix="ecore2logicannotations">
5 <eClassifiers xsi:type="ecore:EClass" name="MultiplicityAssertion" eSuperTypes="../../hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation">
6 <eStructuralFeatures xsi:type="ecore:EReference" name="relation" lowerBound="1"
7 eType="ecore:EClass ../../hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Relation"/>
8 </eClassifiers>
9 <eClassifiers xsi:type="ecore:EClass" name="InverseRelationAssertion" eSuperTypes="../../hu.bme.mit.inf.dslreasoner.logic.model/model/logicproblem.ecore#//AssertionAnnotation">
10 <eStructuralFeatures xsi:type="ecore:EReference" name="inverseA" lowerBound="1"
11 eType="ecore:EClass ../../hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Relation"/>
12 <eStructuralFeatures xsi:type="ecore:EReference" name="inverseB" lowerBound="1"
13 eType="ecore:EClass ../../hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.ecore#//Relation"/>
14 </eClassifiers>
15 <eClassifiers xsi:type="ecore:EClass" name="LowerMultiplicityAssertion" eSuperTypes="#//MultiplicityAssertion">
16 <eStructuralFeatures xsi:type="ecore:EAttribute" name="lower" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
17 </eClassifiers>
18 <eClassifiers xsi:type="ecore:EClass" name="UpperMultiplicityAssertion" eSuperTypes="#//MultiplicityAssertion">
19 <eStructuralFeatures xsi:type="ecore:EAttribute" name="upper" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
20 </eClassifiers>
21</ecore:EPackage>
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/model/ecore2logicannotations.genmodel b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/model/ecore2logicannotations.genmodel
new file mode 100644
index 00000000..39176118
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/model/ecore2logicannotations.genmodel
@@ -0,0 +1,22 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<genmodel:GenModel xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
3 xmlns:genmodel="http://www.eclipse.org/emf/2002/GenModel" modelDirectory="/hu.bme.mit.inf.dslreasoner.ecore2logic/ecore-gen"
4 modelPluginID="hu.bme.mit.inf.dslreasoner.ecore2logic" modelName="Ecore2logicannotations"
5 rootExtendsClass="org.eclipse.emf.ecore.impl.MinimalEObjectImpl$Container" importerID="org.eclipse.emf.importer.ecore"
6 complianceLevel="8.0" copyrightFields="false" usedGenPackages="../../hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.genmodel#//logiclanguage ../../hu.bme.mit.inf.dslreasoner.logic.model/model/logiclanguage.genmodel#//logicproblem"
7 operationReflection="true" importOrganizing="true">
8 <foreignModel>ecore2logicannotations.ecore</foreignModel>
9 <genPackages prefix="Ecore2logicannotations" basePackage="hu.bme.mit.inf.dslreasoner.ecore2logic"
10 disposableProviderFactory="true" ecorePackage="ecore2logicannotations.ecore#/">
11 <genClasses ecoreClass="ecore2logicannotations.ecore#//MultiplicityAssertion"/>
12 <genClasses ecoreClass="ecore2logicannotations.ecore#//InverseRelationAssertion">
13 <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference ecore2logicannotations.ecore#//InverseRelationAssertion/inverses"/>
14 </genClasses>
15 <genClasses ecoreClass="ecore2logicannotations.ecore#//LowerMultiplicityAssertion">
16 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ecore2logicannotations.ecore#//LowerMultiplicityAssertion/lower"/>
17 </genClasses>
18 <genClasses ecoreClass="ecore2logicannotations.ecore#//UpperMultiplicityAssertion">
19 <genFeatures createChild="false" ecoreFeature="ecore:EAttribute ecore2logicannotations.ecore#//UpperMultiplicityAssertion/upper"/>
20 </genClasses>
21 </genPackages>
22</genmodel:GenModel>
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/plugin.properties b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/plugin.properties
new file mode 100644
index 00000000..dba79bb4
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/plugin.properties
@@ -0,0 +1,4 @@
1#
2
3pluginName = Ecore2logicannotations Model
4providerName = www.example.org
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/plugin.xml b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/plugin.xml
new file mode 100644
index 00000000..cd13faaa
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/plugin.xml
@@ -0,0 +1,17 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<?eclipse version="3.0"?>
3
4<!--
5-->
6
7<plugin>
8
9 <extension point="org.eclipse.emf.ecore.generated_package">
10 <!-- @generated ecore2logicannotations -->
11 <package
12 uri="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation"
13 class="hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage"
14 genModel="model/ecore2logicannotations.genmodel"/>
15 </extension>
16
17</plugin>
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/AttributeMapper.xtend b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/AttributeMapper.xtend
new file mode 100644
index 00000000..ebf49196
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/AttributeMapper.xtend
@@ -0,0 +1,119 @@
1package hu.bme.mit.inf.dslreasoner.ecore2logic
2
3import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsFactory
4import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder
5import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion
6import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration
7import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Term
8import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TermDescription
9import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDescriptor
10import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
11import java.util.HashMap
12import java.util.Map
13import org.eclipse.emf.ecore.EAttribute
14import org.eclipse.emf.ecore.EEnum
15
16interface EAttributeMapper {
17 def void transformEAttributes(Ecore2Logic_Trace trace, LogicProblem logicProblem, Iterable<EAttribute> attributes)
18 def Term IsAttributeValue(Ecore2Logic_Trace trace, TermDescription object, TermDescription value, EAttribute attribute)
19 def RelationDeclaration relationOfAttribute(Ecore2Logic_Trace trace, EAttribute attribute)
20 def TypeDescriptor TypeOfRange(Ecore2Logic_Trace trace, EAttribute attribute)
21}
22
23class EAttributeMapper_RelationsOverTypes_Trace implements Trace<EAttributeMapper_RelationsOverTypes>{
24 public var Map<EAttribute, RelationDeclaration> indicators = new HashMap
25 public var Map<EAttribute, Assertion> typeCompliance = new HashMap
26 public var Map<EAttribute, Assertion> lowerMultiplicity = new HashMap
27 public var Map<EAttribute, Assertion> upperMultiplicity = new HashMap
28}
29
30class EAttributeMapper_RelationsOverTypes implements EAttributeMapper {
31 protected val extension LogicProblemBuilder builder = new LogicProblemBuilder
32 val extension Ecore2logicannotationsFactory builder2 = Ecore2logicannotationsFactory.eINSTANCE
33 protected val extension EClassMapper classMapper
34 protected val extension EEnumMapper enumMapper;
35
36 public new(EClassMapper classMapper, EEnumMapper enumMapper) {
37 this.enumMapper = enumMapper
38 this.classMapper = classMapper
39 }
40
41 public override transformEAttributes(Ecore2Logic_Trace trace, LogicProblem logicProblem, Iterable<EAttribute> attributes) {
42 val attributeMapperTrace = new EAttributeMapper_RelationsOverTypes_Trace
43 trace.attributeMapperTrace = attributeMapperTrace
44
45 for(attribute : attributes) {
46 val sourceType = trace.TypeofEClass(attribute.EContainingClass)
47 val rangeType = trace.TypeOfRange(attribute)
48
49 // relations
50 val indicator = '''inAttribute «attribute.name» «attribute.EContainingClass.name»'''.RelationDeclaration(sourceType,rangeType)
51
52 logicProblem.add(indicator)
53 attributeMapperTrace.indicators.put(attribute,indicator)
54
55 // lower multiplicity
56 var Assertion lowerMultiplicity = null
57 if(attribute.lowerBound != 0) {
58 lowerMultiplicity = '''lowerMultiplicity «attribute.name» «attribute.EContainingClass.name»'''.Assertion(
59 Forall[
60 val source = addVar('''src''', sourceType)
61 Exists[ context |
62 val targets = (1 .. attribute.lowerBound).map[context.addVar('''trg «it»''', rangeType)].toList
63 val attributeValue = And(targets.map[IsAttributeValue(trace, source, it, attribute)])
64 if(targets.size > 1) return Distinct(targets) && attributeValue
65 else return attributeValue
66 ]
67 ]
68 )
69 val annotation = createLowerMultiplicityAssertion => [
70 it.lower = attribute.lowerBound
71 it.relation = indicator
72 ]
73 logicProblem.add(lowerMultiplicity)
74 logicProblem.annotations += annotation
75 lowerMultiplicity.annotations +=annotation
76 }
77 attributeMapperTrace.lowerMultiplicity.put(attribute,lowerMultiplicity)
78
79 var Assertion upperMultiplicity = null
80 if(attribute.upperBound > 0) {
81 upperMultiplicity = '''upperMultiplicity «attribute.name» «attribute.EContainingClass.name»'''.Assertion(
82 Forall[ context |
83 val source = context.addVar('''src''', sourceType)
84 val targets = (1 .. attribute.upperBound+1).map[context.addVar('''trg «it»''', rangeType)].toList
85 And(targets.map[IsAttributeValue(trace, source, it, attribute)]) => ! Distinct(targets)
86 ])
87
88 val annotation = createUpperMultiplicityAssertion => [
89 it.upper = attribute.upperBound
90 it.relation = indicator
91 ]
92
93 logicProblem.add(upperMultiplicity)
94 logicProblem.annotations += annotation
95 upperMultiplicity.annotations += annotation
96 }
97 attributeMapperTrace.upperMultiplicity.put(attribute,upperMultiplicity)
98 }
99 }
100
101 def asTrace(Trace<? extends EAttributeMapper> trace) { return trace as EAttributeMapper_RelationsOverTypes_Trace}
102
103 override IsAttributeValue(Ecore2Logic_Trace trace, TermDescription object, TermDescription value, EAttribute attribute) {
104 trace.attributeMapperTrace.asTrace.indicators.get(attribute).call(object,value)
105 }
106
107 override TypeDescriptor TypeOfRange(Ecore2Logic_Trace trace, EAttribute attribute) {
108 if(attribute.EType instanceof EEnum) return enumMapper.TypeofEEnum(trace,attribute.EType as EEnum)
109 else if(attribute.EType.name.equals("EInt")) return LogicInt
110 else if(attribute.EType.name.equals("EBoolean")) return LogicBool
111 else if(attribute.EType.name.equals("EDouble") ||
112 attribute.EType.name.equals("EFloat")) return LogicReal
113 else throw new UnsupportedOperationException('''Unsupported attribute type: «attribute.EType.name»''')
114 }
115
116 override relationOfAttribute(Ecore2Logic_Trace trace, EAttribute attribute) {
117 trace.attributeMapperTrace.asTrace.indicators.get(attribute)
118 }
119} \ No newline at end of file
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/ContainmentMapper.xtend b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/ContainmentMapper.xtend
new file mode 100644
index 00000000..492be59f
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/ContainmentMapper.xtend
@@ -0,0 +1,133 @@
1package hu.bme.mit.inf.dslreasoner.ecore2logic
2
3import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder
4import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Constant
5import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Relation
6import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
7import org.eclipse.emf.ecore.EReference
8import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion
9
10interface ContainmentMapper {
11 def void transformContainment(Ecore2Logic_Trace trace, LogicProblem problem, Iterable<EReference> references, boolean singleRoot);
12}
13
14class ContainmentMapper_ReferenceConjuction_Trace implements Trace<ContainmentMapper_ReferenceConjuction> {
15 public var Constant root;
16 public var Relation contains
17 public var Assertion containsDefinition;
18 public var Assertion rootIsNotContained;
19 public var Assertion everithingElseContained;
20 public var Assertion notContainedByMore;
21}
22
23class ContainmentMapper_ReferenceConjuction implements ContainmentMapper{
24 val extension LogicProblemBuilder builder = new LogicProblemBuilder
25 val extension EClassMapper classMapper;
26 val extension EReferenceMapper referenceMapper
27 val int containmentAcyclicityApproximationLevel;
28
29 public new(EClassMapper classMapper, EReferenceMapper referenceMapper, int containmentAcyclicityApproximationLevel) {
30 this.classMapper = classMapper
31 this.referenceMapper = referenceMapper
32 this.containmentAcyclicityApproximationLevel = containmentAcyclicityApproximationLevel
33 }
34
35 override transformContainment(Ecore2Logic_Trace trace, LogicProblem problem, Iterable<EReference> references, boolean singleRoot) {
36 val allClasses = classMapper.allClassesInScope(trace).map[classMapper.TypeofEClass(trace,it)]
37 val containmentRelation = references.filter[isContainment].map[referenceMapper.relationOfReference(trace,it)]
38 val containmentHierarchy = ContainmentHierarchy(allClasses,#[],containmentRelation,null)
39 problem.add(containmentHierarchy)
40 }
41}
42
43/*val containmentMapperTrace = new ContainmentMapper_ReferenceConjuction_Trace
44 trace.containmentMapperTrace = containmentMapperTrace
45
46 val containment = references.filter[containment]
47
48 val contains = problem.add(RelationDeclaration('''contains''', getType(trace,references),getType(trace,references)))
49 containmentMapperTrace.contains = contains
50 containmentMapperTrace.containsDefinition = problem.add(Assertion('''containsDefinition''',
51 Forall[
52 val parent = addVar("parent",getType(trace,references))
53 val child = addVar("child",getType(trace,references))
54 contains.call(parent,child) <=> Or(containment.map[IsInReference(trace,parent,child,it)])
55 ]
56 ))
57
58
59
60 containmentMapperTrace.notContainedByMore = problem.add(Assertion('''notContainedByMore''',
61 Forall[
62 val child = addVar('''child''',getType(trace,references))
63 val parent1 = addVar('''parent 1''',getType(trace,references))
64 val parent2 = addVar('''parent 2''',getType(trace,references))
65 (contains.call(parent1,child) && contains.call(parent2,child)) => (parent1 == parent2)
66 ]
67 ))
68
69 (2..containmentAcyclicityApproximationLevel).forEach[problem.add(getAcyclicityConstraint(trace,references,it))]
70
71 if (singleRoot) {
72 val root = problem.add(ConstantDeclaration('''root''', getType(trace, references)))
73 containmentMapperTrace.root = root
74
75 containmentMapperTrace.rootIsNotContained = problem.add(
76 Assertion(
77 '''rootIsNotContained''',
78 Forall[
79 val parent = addVar("parent", getType(trace, references))
80 !contains.call(parent, root)
81 ]
82 ))
83
84 containmentMapperTrace.everithingElseContained = problem.add(
85 Assertion(
86 '''nonrootIsContained''',
87 Forall[
88 val child = addVar("child", getType(trace, references))
89 (child != root) => Exists[
90 val parent = addVar("parent", getType(trace, references))
91 contains.call(parent, child)
92 ]
93 ]
94 ))
95 }*/
96
97
98// def asTrace(Trace<? extends ContainmentMapper> trace) { trace as ContainmentMapper_ReferenceConjuction_Trace }
99//
100// def getAcyclicityConstraint(Ecore2Logic_Trace trace, Iterable<EReference> references,int circleSize) {
101// val newTrace = trace.containmentMapperTrace.asTrace
102// //val newTrace2 = trace.containmentMapperTrace as ContainmentMapper_ReferenceConjuction_Trace // ???
103//
104// Forall[context |
105// val elements = (0..circleSize).map[context.addVar(getType(trace,references))].toList
106// !(And((0..circleSize-1).map[newTrace.contains.call(elements.get(it),elements.get(it+1))]) &&
107// newTrace.contains.call(elements.last,elements.head))
108// ]
109// }
110//
111// def private getType(Ecore2Logic_Trace trace, Iterable<EReference> references) {
112// trace.TypeofEClass(references.head.EContainingClass)
113// }
114
115 /*// This type is contained -> (From this type -> By those references)
116 val Map<TypeDescriptor,Map<TypeDescriptor,Set<EReference>>> typeContainedBy = new HashMap
117 for(reference: references.filter[containment]) {
118 val sourceType = TypeofEClass(classMapperTrace, reference.EContainingClass)
119 val targetType = TypeofEClass(classMapperTrace, reference.EType as EClass)
120 if(typeContainedBy.containsKey(targetType)) {
121 val m = typeContainedBy.get(targetType)
122 if(m.containsKey(sourceType)) {
123 m.get(sourceType).add(reference)
124 } else {
125 m.put(sourceType,new HashSet => [add(reference)])
126 }
127 } else { // initialise the collection
128 val Map<TypeDescriptor,Set<EReference>> m = new HashMap
129 m.put(sourceType,new HashSet => [add(reference)])
130 typeContainedBy.put(targetType,m)
131 }
132 }*/
133 // Only one type \ No newline at end of file
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EClassMapper.xtend b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EClassMapper.xtend
new file mode 100644
index 00000000..3949749b
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EClassMapper.xtend
@@ -0,0 +1,53 @@
1package hu.bme.mit.inf.dslreasoner.ecore2logic
2
3import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder
4import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type
5import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
6import java.util.Map
7import org.eclipse.emf.ecore.EClass
8import java.util.HashMap
9
10interface EClassMapper {
11 def void transformEClasses(Ecore2Logic_Trace trace, LogicProblem problem, Iterable<EClass> classes, int numberOfObjects, EcoreMetamodelDescriptor metamodelDescriptor)
12 def Iterable<EClass> allClassesInScope(Ecore2Logic_Trace trace)
13 def Type TypeofEClass(Ecore2Logic_Trace trace, EClass type)
14}
15
16class EClassMapper_AllElementAsObject_Trace implements Trace<EClassMapper_AllElementAsObject>{
17 public var Map<EClass, Type> typeMap = new HashMap;
18}
19
20class EClassMapper_AllElementAsObject implements EClassMapper{
21 val extension LogicProblemBuilder builder = new LogicProblemBuilder
22
23 override transformEClasses(Ecore2Logic_Trace trace, LogicProblem problem,
24 Iterable<EClass> classes, int numberOfObjects, EcoreMetamodelDescriptor metamodelDescriptor
25 ) {
26 val classMapperTrace = new EClassMapper_AllElementAsObject_Trace
27 trace.classMapperTrace = classMapperTrace
28 for(c:classes) {
29 val logicType = problem.add(TypeDeclaration('''class «c.name»''',c.isAbstract || c.isInterface))
30 classMapperTrace.typeMap.put(c,logicType)
31 }
32 for(c:classes) {
33 for(s : c.ESuperTypes) {
34 Supertype(classMapperTrace.typeMap.get(c),classMapperTrace.typeMap.get(s))
35 }
36 }
37 }
38
39 def asTrace(Trace<? extends EClassMapper> o) { o as EClassMapper_AllElementAsObject_Trace }
40
41 override TypeofEClass(Ecore2Logic_Trace trace, EClass type) {
42 val typeMap = trace.classMapperTrace.asTrace.typeMap
43 if(typeMap.containsKey(type)) {
44 typeMap.get(type)
45 } else {
46 throw new IllegalArgumentException('''Class «type.name» is not translated to logic!''')
47 }
48 }
49
50 override allClassesInScope(Ecore2Logic_Trace trace) {
51 trace.classMapperTrace.asTrace.typeMap.keySet
52 }
53}
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EEnumMapper.xtend b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EEnumMapper.xtend
new file mode 100644
index 00000000..eb7e9e44
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EEnumMapper.xtend
@@ -0,0 +1,60 @@
1package hu.bme.mit.inf.dslreasoner.ecore2logic
2
3import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder
4import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement
5import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TermDescription
6import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type
7import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
8import java.util.ArrayList
9import java.util.HashMap
10import java.util.Map
11import org.eclipse.emf.common.util.Enumerator
12import org.eclipse.emf.ecore.EEnum
13
14import static extension hu.bme.mit.inf.dslreasoner.util.CollectionsUtil.*
15
16interface EEnumMapper {
17 def void transformEEnums(Ecore2Logic_Trace trace, LogicProblem problem, Iterable<EEnum> enums,Ecore2LogicConfiguration config)
18 def Type TypeofEEnum(Ecore2Logic_Trace trace, EEnum type)
19 def TermDescription Literal(Ecore2Logic_Trace trace, Enumerator literal)
20}
21
22class EEnumMapper_PredefinedClasses_Trace implements Trace<EEnumMapper_PredefinedClasses>{
23 public var Map<EEnum, Type> enums
24
25 public var Map<Enumerator,DefinedElement> literals
26}
27
28class EEnumMapper_PredefinedClasses implements EEnumMapper {
29 val extension LogicProblemBuilder builder = new LogicProblemBuilder
30
31 override transformEEnums(Ecore2Logic_Trace trace, LogicProblem problem, Iterable<EEnum> enums, Ecore2LogicConfiguration config) {
32 val enumTrace = new EEnumMapper_PredefinedClasses_Trace
33 trace.enumMapperTrace = enumTrace
34 enumTrace.enums = new HashMap
35 enumTrace.literals = new HashMap
36
37 for(enum : enums) {
38 val l = new ArrayList<DefinedElement>(enum.ELiterals.size)
39 for(literal : enum.ELiterals.map[instance]) {
40 val element = Element('''«literal.name» «enum.name»''')
41 l+=element
42 enumTrace.literals.put(literal,element)
43 }
44 val type = TypeDefinition('''enum «enum.name»''',false,l)
45 problem.add(type)
46 enumTrace.enums.put(enum,type)
47 }
48
49 }
50
51 private def asTrace(Trace<? extends EEnumMapper> o) { o as EEnumMapper_PredefinedClasses_Trace }
52
53 override TypeofEEnum(Ecore2Logic_Trace trace, EEnum type) {
54 trace.enumMapperTrace.asTrace.enums.get(type)
55 }
56
57 override Literal(Ecore2Logic_Trace trace, Enumerator literal) {
58 literal.lookup(trace.enumMapperTrace.asTrace.literals)
59 }
60} \ No newline at end of file
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EReferenceMapper.xtend b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EReferenceMapper.xtend
new file mode 100644
index 00000000..e5de6584
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/EReferenceMapper.xtend
@@ -0,0 +1,154 @@
1package hu.bme.mit.inf.dslreasoner.ecore2logic
2
3import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsFactory
4import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder
5import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Assertion
6import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration
7import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Term
8import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TermDescription
9import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
10import java.util.HashMap
11import java.util.Map
12import org.eclipse.emf.ecore.EClass
13import org.eclipse.emf.ecore.EReference
14
15interface EReferenceMapper{
16 def void transformEReferences(Ecore2Logic_Trace trace, LogicProblem problem, Iterable<EReference> classes);
17 def Term IsInReference(Ecore2Logic_Trace trace, TermDescription source, TermDescription target, EReference type)
18 def RelationDeclaration relationOfReference(Ecore2Logic_Trace trace, EReference reference)
19}
20
21class EReferenceMapper_RelationsOverTypes_Trace implements Trace<EReferenceMapper_RelationsOverTypes> {
22 public var Map<EReference, RelationDeclaration> indicators;
23 public var Map<EReference, Assertion> typeCompliance
24 public var Map<EReference, Assertion> lowerMultiplicity
25 public var Map<EReference, Assertion> upperMultiplicity
26 public var Map<EReference, Assertion> inverseEdges
27}
28
29class EReferenceMapper_RelationsOverTypes implements EReferenceMapper{
30 val extension LogicProblemBuilder builder = new LogicProblemBuilder
31 val extension Ecore2logicannotationsFactory builder2 = Ecore2logicannotationsFactory.eINSTANCE
32 val extension EClassMapper classMapper;
33
34 public new(EClassMapper classMapper) {
35 this.classMapper = classMapper
36 }
37
38 def asTrace(Trace<? extends EReferenceMapper> o) { o as EReferenceMapper_RelationsOverTypes_Trace }
39
40 override transformEReferences(Ecore2Logic_Trace trace, LogicProblem problem, Iterable<EReference> references) {
41 val newTrace = new EReferenceMapper_RelationsOverTypes_Trace
42 trace.referenceMapperTrace = newTrace
43 trace.createIndicatorDeclarations(problem,references)
44 trace.createMultiplicityConstraints(problem,references)
45 trace.createInverseReferenceConstraints(problem,references)
46 }
47
48 def protected void createIndicatorDeclarations(Ecore2Logic_Trace trace, LogicProblem problem, Iterable<EReference> references) {
49 trace.referenceMapperTrace.asTrace.indicators = new HashMap
50 for(reference : references) {
51 val relation = problem.add(RelationDeclaration(
52 '''inreference «reference.name» «reference.EContainingClass.name»''',
53 TypeofEClass(trace,reference.EContainingClass),
54 TypeofEClass(trace,reference.EType as EClass)))
55 trace.referenceMapperTrace.asTrace.indicators.put(reference,relation as RelationDeclaration)
56 }
57 }
58
59 def void createMultiplicityConstraints(Ecore2Logic_Trace trace, LogicProblem problem, Iterable<EReference> references) {
60 trace.referenceMapperTrace.asTrace.lowerMultiplicity = new HashMap
61 trace.referenceMapperTrace.asTrace.upperMultiplicity = new HashMap
62
63 for(reference : references) {
64 val sourceType = reference.EContainingClass
65 val targetType = reference.EType as EClass
66 val lower = reference.lowerBound
67 val upper = reference.upperBound
68
69 if (lower > 0) {
70 val assertion = Assertion('''lowerMultiplicity «reference.name» «sourceType.name»''',
71 Forall[
72 val source = addVar('''src''', trace.TypeofEClass(sourceType))
73 Exists[ context |
74 val targets = (1 .. lower).map[
75 context.addVar('''trg «it»''', trace.TypeofEClass(targetType))].toList
76 val inReference = And(targets.map[IsInReference(trace, source, it, reference)])
77 if(targets.size > 1) return Distinct(targets) && inReference
78 else return inReference
79 ]
80 ]
81 )
82 val annotation = createLowerMultiplicityAssertion => [
83 it.lower = lower
84 it.relation = trace.referenceMapperTrace.asTrace.indicators.get(reference)
85 ]
86
87 problem.add(assertion)
88 problem.annotations += annotation
89 assertion.annotations +=annotation
90 trace.referenceMapperTrace.asTrace.lowerMultiplicity.put(reference,assertion)
91 }
92 else trace.referenceMapperTrace.asTrace.lowerMultiplicity.put(reference,null)
93
94 if(upper != -1) {
95 val assertion = Assertion('''upperMultiplicity «reference.name» «sourceType.name»''',
96 Forall[ context |
97 val source = context.addVar('''src''', trace.TypeofEClass(sourceType))
98 val targets = (1 .. upper+1).map[
99 context.addVar('''trg «it»''', trace.TypeofEClass(targetType))].toList
100 And(targets.map[IsInReference(trace, source, it, reference)]) => ! Distinct(targets)
101 ])
102 val annotation = createUpperMultiplicityAssertion => [
103 it.upper = upper
104 it.relation = trace.referenceMapperTrace.asTrace.indicators.get(reference)
105 ]
106
107 problem.add(assertion)
108 problem.annotations += annotation
109 assertion.annotations += annotation
110 trace.referenceMapperTrace.asTrace.lowerMultiplicity.put(reference,assertion)
111 }
112 else trace.referenceMapperTrace.asTrace.upperMultiplicity.put(reference,null)
113 }
114 }
115
116 def createInverseReferenceConstraints(Ecore2Logic_Trace trace, LogicProblem problem, Iterable<EReference> references) {
117 trace.referenceMapperTrace.asTrace.inverseEdges = new HashMap
118 for(reference : references) {
119 if(reference.EOpposite!=null) {
120 val opposite = reference.EOpposite
121 if(trace.referenceMapperTrace.asTrace.inverseEdges.containsKey(opposite)) {
122 trace.referenceMapperTrace.asTrace.inverseEdges.put(reference,trace.referenceMapperTrace.asTrace.inverseEdges.get(opposite))
123 } else {
124 val sourceType = reference.EContainingClass
125 val targetType = reference.EType as EClass
126 val assertion = Assertion('''oppositeReference «reference.name» «sourceType.name»''',
127 Forall[
128 val src = addVar('''src''', trace.TypeofEClass(sourceType))
129 val trg = addVar('''trg''', trace.TypeofEClass(targetType))
130 IsInReference(trace,src,trg,reference) <=> IsInReference(trace,trg,src,opposite)
131 ]
132 )
133 problem.add(assertion)
134 trace.referenceMapperTrace.asTrace.inverseEdges.put(reference,assertion)
135 val annotation = createInverseRelationAssertion => [
136 it.target = assertion
137 it.inverseA = trace.referenceMapperTrace.asTrace.indicators.get(reference)
138 it.inverseB = trace.referenceMapperTrace.asTrace.indicators.get(reference.EOpposite)
139 ]
140 problem.annotations += annotation
141 }
142 }
143 else trace.referenceMapperTrace.asTrace.inverseEdges.put(reference,null)
144 }
145 }
146
147 override IsInReference(Ecore2Logic_Trace trace, TermDescription source, TermDescription target, EReference type) {
148 trace.referenceMapperTrace.asTrace.indicators.get(type).call(source,target)
149 }
150
151 override relationOfReference(Ecore2Logic_Trace trace, EReference reference) {
152 trace.referenceMapperTrace.asTrace.indicators.get(reference)
153 }
154} \ No newline at end of file
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/Ecore2Logic.xtend b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/Ecore2Logic.xtend
new file mode 100644
index 00000000..cae489e3
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.ecore2logic/src/hu/bme/mit/inf/dslreasoner/ecore2logic/Ecore2Logic.xtend
@@ -0,0 +1,98 @@
1package hu.bme.mit.inf.dslreasoner.ecore2logic
2
3import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem
4import java.util.List
5import org.eclipse.emf.ecore.EAttribute
6import org.eclipse.emf.ecore.EClass
7import org.eclipse.emf.ecore.EEnum
8import org.eclipse.emf.ecore.EEnumLiteral
9import org.eclipse.emf.ecore.EReference
10import org.eclipse.xtend.lib.annotations.Data
11import org.eclipse.xtend.lib.annotations.Delegate
12import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput
13import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicProblemBuilder
14import java.util.Set
15import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.ContainmentHierarchy
16
17@Data class EcoreMetamodelDescriptor {
18 val List<EClass> classes;
19 val Set<EClass> concretised;
20 val boolean isEObjectConcretised;
21 val List<EEnum> enums;
22 val List<EEnumLiteral> literals;
23 val List<EReference> references;
24 val List<EAttribute> attributes;
25
26 def isConcretised(EClass clazz) {concretised.contains(clazz)}
27}
28
29interface Trace<Mapper> {}
30
31class Ecore2Logic_Trace implements Trace<Ecore2Logic> {
32 public var ContainmentHierarchy containmentHierarchy;
33 public var Trace<? extends EClassMapper> classMapperTrace
34 public var Trace<? extends EEnumMapper> enumMapperTrace
35 public var Trace<? extends EReferenceMapper> referenceMapperTrace
36 public var Trace<? extends ContainmentMapper> containmentMapperTrace
37 public var Trace<? extends EAttributeMapper> attributeMapperTrace
38}
39
40class Ecore2LogicConfiguration {
41 var public boolean singleRoot = true
42 var public int numberOfObjects = -1
43 public static val Undefined = -1
44}
45
46class Ecore2LogicScope {
47 public static val int Unlimited = -1
48 public var numberOfObjects = Unlimited
49}
50
51class Ecore2Logic implements EClassMapper, EEnumMapper, EReferenceMapper, ContainmentMapper, EAttributeMapper {
52 @Delegate protected val EClassMapper classMapper
53 @Delegate protected val EEnumMapper enumMapper
54 @Delegate protected val EReferenceMapper referenceMapper
55 @Delegate protected val ContainmentMapper containmentMapper
56 @Delegate protected val EAttributeMapper attributeMapper
57
58 public new() {
59 this.classMapper = new EClassMapper_AllElementAsObject
60 this.enumMapper = new EEnumMapper_PredefinedClasses
61 this.referenceMapper = new EReferenceMapper_RelationsOverTypes(this.classMapper)
62 this.containmentMapper = new ContainmentMapper_ReferenceConjuction(this.classMapper, this.referenceMapper,0)
63 this.attributeMapper = new EAttributeMapper_RelationsOverTypes(this.classMapper, this.enumMapper)
64 }
65
66 public new(
67 EClassMapper classMapper,
68 EEnumMapper enumMapper,
69 EReferenceMapper referenceMapper,
70 ContainmentMapper containmentMapper,
71 EAttributeMapper attributeMapper)
72 {
73 if(classMapper === null || enumMapper === null || referenceMapper === null || containmentMapper === null ||
74 attributeMapper === null) {
75 throw new IllegalArgumentException('''The mappers should not be null!''')
76 }
77
78 this.classMapper = classMapper
79 this.enumMapper = enumMapper
80 this.referenceMapper = referenceMapper
81 this.containmentMapper = containmentMapper
82 this.attributeMapper = attributeMapper
83 }
84
85 def public TracedOutput<LogicProblem,Ecore2Logic_Trace> transformMetamodel(EcoreMetamodelDescriptor metamodel, Ecore2LogicConfiguration config) {
86
87
88 val Ecore2Logic_Trace trace = new Ecore2Logic_Trace
89 val LogicProblem problem = (new LogicProblemBuilder).createProblem
90 transformEClasses(trace,problem,metamodel.classes,config.numberOfObjects,metamodel)
91 transformEEnums(trace,problem,metamodel.enums,config)
92 transformEReferences(trace,problem,metamodel.references)
93 transformContainment(trace,problem,metamodel.references, config.singleRoot)
94 transformEAttributes(trace,problem,metamodel.attributes)
95
96 return new TracedOutput(problem,trace)
97 }
98}