aboutsummaryrefslogtreecommitdiffstats
path: root/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl
diff options
context:
space:
mode:
authorLibravatar Kristóf Marussy <kristof@marussy.com>2021-06-25 17:12:45 +0200
committerLibravatar Kristóf Marussy <kristof@marussy.com>2021-06-25 17:12:45 +0200
commitbaba88758a0ea5f671ab4a2aeacec374bed938c4 (patch)
tree1be30230a0959ce8d22986d91b1ed2460a328148 /org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl
parentInitial commit (diff)
downloadrefinery-baba88758a0ea5f671ab4a2aeacec374bed938c4.tar.gz
refinery-baba88758a0ea5f671ab4a2aeacec374bed938c4.tar.zst
refinery-baba88758a0ea5f671ab4a2aeacec374bed938c4.zip
Add initial prototype
Diffstat (limited to 'org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl')
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java272
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java271
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java260
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java189
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ExactMultiplicityImpl.java164
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ImplicitVariableImpl.java37
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/LiteralImpl.java39
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/MultiplicityImpl.java39
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NamedElementImpl.java164
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java228
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java37
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.java159
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/PredicateDefinitionImpl.java262
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java317
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java189
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java1061
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RangeMultiplicityImpl.java219
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java379
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RelationImpl.java37
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ScopeDeclarationImpl.java153
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/TypeScopeImpl.java317
-rw-r--r--org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java37
22 files changed, 4830 insertions, 0 deletions
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java
new file mode 100644
index 00000000..5856a276
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java
@@ -0,0 +1,272 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.Notification;
8
9import org.eclipse.emf.common.util.EList;
10
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.InternalEObject;
13
14import org.eclipse.emf.ecore.impl.ENotificationImpl;
15import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
16
17import org.eclipse.emf.ecore.util.EObjectResolvingEList;
18
19import org.eclipse.viatra.solver.language.model.problem.Assertion;
20import org.eclipse.viatra.solver.language.model.problem.LogicValue;
21import org.eclipse.viatra.solver.language.model.problem.Node;
22import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
23import org.eclipse.viatra.solver.language.model.problem.Relation;
24
25/**
26 * <!-- begin-user-doc -->
27 * An implementation of the model object '<em><b>Assertion</b></em>'.
28 * <!-- end-user-doc -->
29 * <p>
30 * The following features are implemented:
31 * </p>
32 * <ul>
33 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl#getRelation <em>Relation</em>}</li>
34 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl#getArguments <em>Arguments</em>}</li>
35 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl#getValue <em>Value</em>}</li>
36 * </ul>
37 *
38 * @generated
39 */
40public class AssertionImpl extends MinimalEObjectImpl.Container implements Assertion {
41 /**
42 * The cached value of the '{@link #getRelation() <em>Relation</em>}' reference.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getRelation()
46 * @generated
47 * @ordered
48 */
49 protected Relation relation;
50
51 /**
52 * The cached value of the '{@link #getArguments() <em>Arguments</em>}' reference list.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #getArguments()
56 * @generated
57 * @ordered
58 */
59 protected EList<Node> arguments;
60
61 /**
62 * The default value of the '{@link #getValue() <em>Value</em>}' attribute.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #getValue()
66 * @generated
67 * @ordered
68 */
69 protected static final LogicValue VALUE_EDEFAULT = LogicValue.TRUE;
70
71 /**
72 * The cached value of the '{@link #getValue() <em>Value</em>}' attribute.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #getValue()
76 * @generated
77 * @ordered
78 */
79 protected LogicValue value = VALUE_EDEFAULT;
80
81 /**
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 */
86 protected AssertionImpl() {
87 super();
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 @Override
96 protected EClass eStaticClass() {
97 return ProblemPackage.Literals.ASSERTION;
98 }
99
100 /**
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @generated
104 */
105 public Relation getRelation() {
106 if (relation != null && relation.eIsProxy()) {
107 InternalEObject oldRelation = (InternalEObject) relation;
108 relation = (Relation) eResolveProxy(oldRelation);
109 if (relation != oldRelation) {
110 if (eNotificationRequired())
111 eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.ASSERTION__RELATION,
112 oldRelation, relation));
113 }
114 }
115 return relation;
116 }
117
118 /**
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 */
123 public Relation basicGetRelation() {
124 return relation;
125 }
126
127 /**
128 * <!-- begin-user-doc -->
129 * <!-- end-user-doc -->
130 * @generated
131 */
132 public void setRelation(Relation newRelation) {
133 Relation oldRelation = relation;
134 relation = newRelation;
135 if (eNotificationRequired())
136 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ASSERTION__RELATION, oldRelation,
137 relation));
138 }
139
140 /**
141 * <!-- begin-user-doc -->
142 * <!-- end-user-doc -->
143 * @generated
144 */
145 public EList<Node> getArguments() {
146 if (arguments == null) {
147 arguments = new EObjectResolvingEList<Node>(Node.class, this, ProblemPackage.ASSERTION__ARGUMENTS);
148 }
149 return arguments;
150 }
151
152 /**
153 * <!-- begin-user-doc -->
154 * <!-- end-user-doc -->
155 * @generated
156 */
157 public LogicValue getValue() {
158 return value;
159 }
160
161 /**
162 * <!-- begin-user-doc -->
163 * <!-- end-user-doc -->
164 * @generated
165 */
166 public void setValue(LogicValue newValue) {
167 LogicValue oldValue = value;
168 value = newValue == null ? VALUE_EDEFAULT : newValue;
169 if (eNotificationRequired())
170 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ASSERTION__VALUE, oldValue, value));
171 }
172
173 /**
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 */
178 @Override
179 public Object eGet(int featureID, boolean resolve, boolean coreType) {
180 switch (featureID) {
181 case ProblemPackage.ASSERTION__RELATION:
182 if (resolve)
183 return getRelation();
184 return basicGetRelation();
185 case ProblemPackage.ASSERTION__ARGUMENTS:
186 return getArguments();
187 case ProblemPackage.ASSERTION__VALUE:
188 return getValue();
189 }
190 return super.eGet(featureID, resolve, coreType);
191 }
192
193 /**
194 * <!-- begin-user-doc -->
195 * <!-- end-user-doc -->
196 * @generated
197 */
198 @SuppressWarnings("unchecked")
199 @Override
200 public void eSet(int featureID, Object newValue) {
201 switch (featureID) {
202 case ProblemPackage.ASSERTION__RELATION:
203 setRelation((Relation) newValue);
204 return;
205 case ProblemPackage.ASSERTION__ARGUMENTS:
206 getArguments().clear();
207 getArguments().addAll((Collection<? extends Node>) newValue);
208 return;
209 case ProblemPackage.ASSERTION__VALUE:
210 setValue((LogicValue) newValue);
211 return;
212 }
213 super.eSet(featureID, newValue);
214 }
215
216 /**
217 * <!-- begin-user-doc -->
218 * <!-- end-user-doc -->
219 * @generated
220 */
221 @Override
222 public void eUnset(int featureID) {
223 switch (featureID) {
224 case ProblemPackage.ASSERTION__RELATION:
225 setRelation((Relation) null);
226 return;
227 case ProblemPackage.ASSERTION__ARGUMENTS:
228 getArguments().clear();
229 return;
230 case ProblemPackage.ASSERTION__VALUE:
231 setValue(VALUE_EDEFAULT);
232 return;
233 }
234 super.eUnset(featureID);
235 }
236
237 /**
238 * <!-- begin-user-doc -->
239 * <!-- end-user-doc -->
240 * @generated
241 */
242 @Override
243 public boolean eIsSet(int featureID) {
244 switch (featureID) {
245 case ProblemPackage.ASSERTION__RELATION:
246 return relation != null;
247 case ProblemPackage.ASSERTION__ARGUMENTS:
248 return arguments != null && !arguments.isEmpty();
249 case ProblemPackage.ASSERTION__VALUE:
250 return value != VALUE_EDEFAULT;
251 }
252 return super.eIsSet(featureID);
253 }
254
255 /**
256 * <!-- begin-user-doc -->
257 * <!-- end-user-doc -->
258 * @generated
259 */
260 @Override
261 public String toString() {
262 if (eIsProxy())
263 return super.toString();
264
265 StringBuilder result = new StringBuilder(super.toString());
266 result.append(" (value: ");
267 result.append(value);
268 result.append(')');
269 return result.toString();
270 }
271
272} //AssertionImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java
new file mode 100644
index 00000000..4571db14
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java
@@ -0,0 +1,271 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.Notification;
8
9import org.eclipse.emf.common.util.EList;
10
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.InternalEObject;
13
14import org.eclipse.emf.ecore.impl.ENotificationImpl;
15
16import org.eclipse.emf.ecore.util.EObjectResolvingEList;
17
18import org.eclipse.viatra.solver.language.model.problem.Atom;
19import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
20import org.eclipse.viatra.solver.language.model.problem.Relation;
21import org.eclipse.viatra.solver.language.model.problem.Variable;
22
23/**
24 * <!-- begin-user-doc -->
25 * An implementation of the model object '<em><b>Atom</b></em>'.
26 * <!-- end-user-doc -->
27 * <p>
28 * The following features are implemented:
29 * </p>
30 * <ul>
31 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl#getRelation <em>Relation</em>}</li>
32 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl#getArguments <em>Arguments</em>}</li>
33 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl#isTransitiveClosure <em>Transitive Closure</em>}</li>
34 * </ul>
35 *
36 * @generated
37 */
38public class AtomImpl extends LiteralImpl implements Atom {
39 /**
40 * The cached value of the '{@link #getRelation() <em>Relation</em>}' reference.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getRelation()
44 * @generated
45 * @ordered
46 */
47 protected Relation relation;
48
49 /**
50 * The cached value of the '{@link #getArguments() <em>Arguments</em>}' reference list.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @see #getArguments()
54 * @generated
55 * @ordered
56 */
57 protected EList<Variable> arguments;
58
59 /**
60 * The default value of the '{@link #isTransitiveClosure() <em>Transitive Closure</em>}' attribute.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @see #isTransitiveClosure()
64 * @generated
65 * @ordered
66 */
67 protected static final boolean TRANSITIVE_CLOSURE_EDEFAULT = false;
68
69 /**
70 * The cached value of the '{@link #isTransitiveClosure() <em>Transitive Closure</em>}' attribute.
71 * <!-- begin-user-doc -->
72 * <!-- end-user-doc -->
73 * @see #isTransitiveClosure()
74 * @generated
75 * @ordered
76 */
77 protected boolean transitiveClosure = TRANSITIVE_CLOSURE_EDEFAULT;
78
79 /**
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 protected AtomImpl() {
85 super();
86 }
87
88 /**
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 */
93 @Override
94 protected EClass eStaticClass() {
95 return ProblemPackage.Literals.ATOM;
96 }
97
98 /**
99 * <!-- begin-user-doc -->
100 * <!-- end-user-doc -->
101 * @generated
102 */
103 public Relation getRelation() {
104 if (relation != null && relation.eIsProxy()) {
105 InternalEObject oldRelation = (InternalEObject) relation;
106 relation = (Relation) eResolveProxy(oldRelation);
107 if (relation != oldRelation) {
108 if (eNotificationRequired())
109 eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.ATOM__RELATION,
110 oldRelation, relation));
111 }
112 }
113 return relation;
114 }
115
116 /**
117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc -->
119 * @generated
120 */
121 public Relation basicGetRelation() {
122 return relation;
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 public void setRelation(Relation newRelation) {
131 Relation oldRelation = relation;
132 relation = newRelation;
133 if (eNotificationRequired())
134 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ATOM__RELATION, oldRelation,
135 relation));
136 }
137
138 /**
139 * <!-- begin-user-doc -->
140 * <!-- end-user-doc -->
141 * @generated
142 */
143 public EList<Variable> getArguments() {
144 if (arguments == null) {
145 arguments = new EObjectResolvingEList<Variable>(Variable.class, this, ProblemPackage.ATOM__ARGUMENTS);
146 }
147 return arguments;
148 }
149
150 /**
151 * <!-- begin-user-doc -->
152 * <!-- end-user-doc -->
153 * @generated
154 */
155 public boolean isTransitiveClosure() {
156 return transitiveClosure;
157 }
158
159 /**
160 * <!-- begin-user-doc -->
161 * <!-- end-user-doc -->
162 * @generated
163 */
164 public void setTransitiveClosure(boolean newTransitiveClosure) {
165 boolean oldTransitiveClosure = transitiveClosure;
166 transitiveClosure = newTransitiveClosure;
167 if (eNotificationRequired())
168 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ATOM__TRANSITIVE_CLOSURE,
169 oldTransitiveClosure, transitiveClosure));
170 }
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 @Override
178 public Object eGet(int featureID, boolean resolve, boolean coreType) {
179 switch (featureID) {
180 case ProblemPackage.ATOM__RELATION:
181 if (resolve)
182 return getRelation();
183 return basicGetRelation();
184 case ProblemPackage.ATOM__ARGUMENTS:
185 return getArguments();
186 case ProblemPackage.ATOM__TRANSITIVE_CLOSURE:
187 return isTransitiveClosure();
188 }
189 return super.eGet(featureID, resolve, coreType);
190 }
191
192 /**
193 * <!-- begin-user-doc -->
194 * <!-- end-user-doc -->
195 * @generated
196 */
197 @SuppressWarnings("unchecked")
198 @Override
199 public void eSet(int featureID, Object newValue) {
200 switch (featureID) {
201 case ProblemPackage.ATOM__RELATION:
202 setRelation((Relation) newValue);
203 return;
204 case ProblemPackage.ATOM__ARGUMENTS:
205 getArguments().clear();
206 getArguments().addAll((Collection<? extends Variable>) newValue);
207 return;
208 case ProblemPackage.ATOM__TRANSITIVE_CLOSURE:
209 setTransitiveClosure((Boolean) newValue);
210 return;
211 }
212 super.eSet(featureID, newValue);
213 }
214
215 /**
216 * <!-- begin-user-doc -->
217 * <!-- end-user-doc -->
218 * @generated
219 */
220 @Override
221 public void eUnset(int featureID) {
222 switch (featureID) {
223 case ProblemPackage.ATOM__RELATION:
224 setRelation((Relation) null);
225 return;
226 case ProblemPackage.ATOM__ARGUMENTS:
227 getArguments().clear();
228 return;
229 case ProblemPackage.ATOM__TRANSITIVE_CLOSURE:
230 setTransitiveClosure(TRANSITIVE_CLOSURE_EDEFAULT);
231 return;
232 }
233 super.eUnset(featureID);
234 }
235
236 /**
237 * <!-- begin-user-doc -->
238 * <!-- end-user-doc -->
239 * @generated
240 */
241 @Override
242 public boolean eIsSet(int featureID) {
243 switch (featureID) {
244 case ProblemPackage.ATOM__RELATION:
245 return relation != null;
246 case ProblemPackage.ATOM__ARGUMENTS:
247 return arguments != null && !arguments.isEmpty();
248 case ProblemPackage.ATOM__TRANSITIVE_CLOSURE:
249 return transitiveClosure != TRANSITIVE_CLOSURE_EDEFAULT;
250 }
251 return super.eIsSet(featureID);
252 }
253
254 /**
255 * <!-- begin-user-doc -->
256 * <!-- end-user-doc -->
257 * @generated
258 */
259 @Override
260 public String toString() {
261 if (eIsProxy())
262 return super.toString();
263
264 StringBuilder result = new StringBuilder(super.toString());
265 result.append(" (transitiveClosure: ");
266 result.append(transitiveClosure);
267 result.append(')');
268 return result.toString();
269 }
270
271} //AtomImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java
new file mode 100644
index 00000000..e1d07071
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java
@@ -0,0 +1,260 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.Notification;
8import org.eclipse.emf.common.notify.NotificationChain;
9
10import org.eclipse.emf.common.util.EList;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16
17import org.eclipse.emf.ecore.util.EObjectContainmentEList;
18import org.eclipse.emf.ecore.util.EObjectResolvingEList;
19import org.eclipse.emf.ecore.util.InternalEList;
20
21import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
22import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
23import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration;
24
25/**
26 * <!-- begin-user-doc -->
27 * An implementation of the model object '<em><b>Class Declaration</b></em>'.
28 * <!-- end-user-doc -->
29 * <p>
30 * The following features are implemented:
31 * </p>
32 * <ul>
33 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl#isAbstract <em>Abstract</em>}</li>
34 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl#getSuperTypes <em>Super Types</em>}</li>
35 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl#getReferenceDeclarations <em>Reference Declarations</em>}</li>
36 * </ul>
37 *
38 * @generated
39 */
40public class ClassDeclarationImpl extends RelationImpl implements ClassDeclaration {
41 /**
42 * The default value of the '{@link #isAbstract() <em>Abstract</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #isAbstract()
46 * @generated
47 * @ordered
48 */
49 protected static final boolean ABSTRACT_EDEFAULT = false;
50
51 /**
52 * The cached value of the '{@link #isAbstract() <em>Abstract</em>}' attribute.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #isAbstract()
56 * @generated
57 * @ordered
58 */
59 protected boolean abstract_ = ABSTRACT_EDEFAULT;
60
61 /**
62 * The cached value of the '{@link #getSuperTypes() <em>Super Types</em>}' reference list.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #getSuperTypes()
66 * @generated
67 * @ordered
68 */
69 protected EList<ClassDeclaration> superTypes;
70
71 /**
72 * The cached value of the '{@link #getReferenceDeclarations() <em>Reference Declarations</em>}' containment reference list.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #getReferenceDeclarations()
76 * @generated
77 * @ordered
78 */
79 protected EList<ReferenceDeclaration> referenceDeclarations;
80
81 /**
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 */
86 protected ClassDeclarationImpl() {
87 super();
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 @Override
96 protected EClass eStaticClass() {
97 return ProblemPackage.Literals.CLASS_DECLARATION;
98 }
99
100 /**
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @generated
104 */
105 public boolean isAbstract() {
106 return abstract_;
107 }
108
109 /**
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @generated
113 */
114 public void setAbstract(boolean newAbstract) {
115 boolean oldAbstract = abstract_;
116 abstract_ = newAbstract;
117 if (eNotificationRequired())
118 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.CLASS_DECLARATION__ABSTRACT,
119 oldAbstract, abstract_));
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 public EList<ClassDeclaration> getSuperTypes() {
128 if (superTypes == null) {
129 superTypes = new EObjectResolvingEList<ClassDeclaration>(ClassDeclaration.class, this,
130 ProblemPackage.CLASS_DECLARATION__SUPER_TYPES);
131 }
132 return superTypes;
133 }
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 public EList<ReferenceDeclaration> getReferenceDeclarations() {
141 if (referenceDeclarations == null) {
142 referenceDeclarations = new EObjectContainmentEList<ReferenceDeclaration>(ReferenceDeclaration.class, this,
143 ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS);
144 }
145 return referenceDeclarations;
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 @Override
154 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
155 switch (featureID) {
156 case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS:
157 return ((InternalEList<?>) getReferenceDeclarations()).basicRemove(otherEnd, msgs);
158 }
159 return super.eInverseRemove(otherEnd, featureID, msgs);
160 }
161
162 /**
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @generated
166 */
167 @Override
168 public Object eGet(int featureID, boolean resolve, boolean coreType) {
169 switch (featureID) {
170 case ProblemPackage.CLASS_DECLARATION__ABSTRACT:
171 return isAbstract();
172 case ProblemPackage.CLASS_DECLARATION__SUPER_TYPES:
173 return getSuperTypes();
174 case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS:
175 return getReferenceDeclarations();
176 }
177 return super.eGet(featureID, resolve, coreType);
178 }
179
180 /**
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 */
185 @SuppressWarnings("unchecked")
186 @Override
187 public void eSet(int featureID, Object newValue) {
188 switch (featureID) {
189 case ProblemPackage.CLASS_DECLARATION__ABSTRACT:
190 setAbstract((Boolean) newValue);
191 return;
192 case ProblemPackage.CLASS_DECLARATION__SUPER_TYPES:
193 getSuperTypes().clear();
194 getSuperTypes().addAll((Collection<? extends ClassDeclaration>) newValue);
195 return;
196 case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS:
197 getReferenceDeclarations().clear();
198 getReferenceDeclarations().addAll((Collection<? extends ReferenceDeclaration>) newValue);
199 return;
200 }
201 super.eSet(featureID, newValue);
202 }
203
204 /**
205 * <!-- begin-user-doc -->
206 * <!-- end-user-doc -->
207 * @generated
208 */
209 @Override
210 public void eUnset(int featureID) {
211 switch (featureID) {
212 case ProblemPackage.CLASS_DECLARATION__ABSTRACT:
213 setAbstract(ABSTRACT_EDEFAULT);
214 return;
215 case ProblemPackage.CLASS_DECLARATION__SUPER_TYPES:
216 getSuperTypes().clear();
217 return;
218 case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS:
219 getReferenceDeclarations().clear();
220 return;
221 }
222 super.eUnset(featureID);
223 }
224
225 /**
226 * <!-- begin-user-doc -->
227 * <!-- end-user-doc -->
228 * @generated
229 */
230 @Override
231 public boolean eIsSet(int featureID) {
232 switch (featureID) {
233 case ProblemPackage.CLASS_DECLARATION__ABSTRACT:
234 return abstract_ != ABSTRACT_EDEFAULT;
235 case ProblemPackage.CLASS_DECLARATION__SUPER_TYPES:
236 return superTypes != null && !superTypes.isEmpty();
237 case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS:
238 return referenceDeclarations != null && !referenceDeclarations.isEmpty();
239 }
240 return super.eIsSet(featureID);
241 }
242
243 /**
244 * <!-- begin-user-doc -->
245 * <!-- end-user-doc -->
246 * @generated
247 */
248 @Override
249 public String toString() {
250 if (eIsProxy())
251 return super.toString();
252
253 StringBuilder result = new StringBuilder(super.toString());
254 result.append(" (abstract: ");
255 result.append(abstract_);
256 result.append(')');
257 return result.toString();
258 }
259
260} //ClassDeclarationImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java
new file mode 100644
index 00000000..3bdf887f
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java
@@ -0,0 +1,189 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.common.util.EList;
10
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.InternalEObject;
13
14import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
15
16import org.eclipse.emf.ecore.util.EObjectContainmentEList;
17import org.eclipse.emf.ecore.util.InternalEList;
18
19import org.eclipse.viatra.solver.language.model.problem.Conjunction;
20import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable;
21import org.eclipse.viatra.solver.language.model.problem.Literal;
22import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
23
24/**
25 * <!-- begin-user-doc -->
26 * An implementation of the model object '<em><b>Conjunction</b></em>'.
27 * <!-- end-user-doc -->
28 * <p>
29 * The following features are implemented:
30 * </p>
31 * <ul>
32 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ConjunctionImpl#getImplicitVariables <em>Implicit Variables</em>}</li>
33 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ConjunctionImpl#getLiterals <em>Literals</em>}</li>
34 * </ul>
35 *
36 * @generated
37 */
38public class ConjunctionImpl extends MinimalEObjectImpl.Container implements Conjunction {
39 /**
40 * The cached value of the '{@link #getImplicitVariables() <em>Implicit Variables</em>}' containment reference list.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getImplicitVariables()
44 * @generated
45 * @ordered
46 */
47 protected EList<ImplicitVariable> implicitVariables;
48 /**
49 * The cached value of the '{@link #getLiterals() <em>Literals</em>}' containment reference list.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @see #getLiterals()
53 * @generated
54 * @ordered
55 */
56 protected EList<Literal> literals;
57
58 /**
59 * <!-- begin-user-doc -->
60 * <!-- end-user-doc -->
61 * @generated
62 */
63 protected ConjunctionImpl() {
64 super();
65 }
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 @Override
73 protected EClass eStaticClass() {
74 return ProblemPackage.Literals.CONJUNCTION;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 public EList<ImplicitVariable> getImplicitVariables() {
83 if (implicitVariables == null) {
84 implicitVariables = new EObjectContainmentEList<ImplicitVariable>(ImplicitVariable.class, this,
85 ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES);
86 }
87 return implicitVariables;
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 public EList<Literal> getLiterals() {
96 if (literals == null) {
97 literals = new EObjectContainmentEList<Literal>(Literal.class, this, ProblemPackage.CONJUNCTION__LITERALS);
98 }
99 return literals;
100 }
101
102 /**
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @generated
106 */
107 @Override
108 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
109 switch (featureID) {
110 case ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES:
111 return ((InternalEList<?>) getImplicitVariables()).basicRemove(otherEnd, msgs);
112 case ProblemPackage.CONJUNCTION__LITERALS:
113 return ((InternalEList<?>) getLiterals()).basicRemove(otherEnd, msgs);
114 }
115 return super.eInverseRemove(otherEnd, featureID, msgs);
116 }
117
118 /**
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 */
123 @Override
124 public Object eGet(int featureID, boolean resolve, boolean coreType) {
125 switch (featureID) {
126 case ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES:
127 return getImplicitVariables();
128 case ProblemPackage.CONJUNCTION__LITERALS:
129 return getLiterals();
130 }
131 return super.eGet(featureID, resolve, coreType);
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 @SuppressWarnings("unchecked")
140 @Override
141 public void eSet(int featureID, Object newValue) {
142 switch (featureID) {
143 case ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES:
144 getImplicitVariables().clear();
145 getImplicitVariables().addAll((Collection<? extends ImplicitVariable>) newValue);
146 return;
147 case ProblemPackage.CONJUNCTION__LITERALS:
148 getLiterals().clear();
149 getLiterals().addAll((Collection<? extends Literal>) newValue);
150 return;
151 }
152 super.eSet(featureID, newValue);
153 }
154
155 /**
156 * <!-- begin-user-doc -->
157 * <!-- end-user-doc -->
158 * @generated
159 */
160 @Override
161 public void eUnset(int featureID) {
162 switch (featureID) {
163 case ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES:
164 getImplicitVariables().clear();
165 return;
166 case ProblemPackage.CONJUNCTION__LITERALS:
167 getLiterals().clear();
168 return;
169 }
170 super.eUnset(featureID);
171 }
172
173 /**
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 */
178 @Override
179 public boolean eIsSet(int featureID) {
180 switch (featureID) {
181 case ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES:
182 return implicitVariables != null && !implicitVariables.isEmpty();
183 case ProblemPackage.CONJUNCTION__LITERALS:
184 return literals != null && !literals.isEmpty();
185 }
186 return super.eIsSet(featureID);
187 }
188
189} //ConjunctionImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ExactMultiplicityImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ExactMultiplicityImpl.java
new file mode 100644
index 00000000..b3896ac2
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ExactMultiplicityImpl.java
@@ -0,0 +1,164 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6
7import org.eclipse.emf.ecore.EClass;
8
9import org.eclipse.emf.ecore.impl.ENotificationImpl;
10
11import org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity;
12import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
13
14/**
15 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>Exact Multiplicity</b></em>'.
17 * <!-- end-user-doc -->
18 * <p>
19 * The following features are implemented:
20 * </p>
21 * <ul>
22 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ExactMultiplicityImpl#getExactValue <em>Exact Value</em>}</li>
23 * </ul>
24 *
25 * @generated
26 */
27public class ExactMultiplicityImpl extends MultiplicityImpl implements ExactMultiplicity {
28 /**
29 * The default value of the '{@link #getExactValue() <em>Exact Value</em>}' attribute.
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @see #getExactValue()
33 * @generated
34 * @ordered
35 */
36 protected static final int EXACT_VALUE_EDEFAULT = 1;
37
38 /**
39 * The cached value of the '{@link #getExactValue() <em>Exact Value</em>}' attribute.
40 * <!-- begin-user-doc -->
41 * <!-- end-user-doc -->
42 * @see #getExactValue()
43 * @generated
44 * @ordered
45 */
46 protected int exactValue = EXACT_VALUE_EDEFAULT;
47
48 /**
49 * <!-- begin-user-doc -->
50 * <!-- end-user-doc -->
51 * @generated
52 */
53 protected ExactMultiplicityImpl() {
54 super();
55 }
56
57 /**
58 * <!-- begin-user-doc -->
59 * <!-- end-user-doc -->
60 * @generated
61 */
62 @Override
63 protected EClass eStaticClass() {
64 return ProblemPackage.Literals.EXACT_MULTIPLICITY;
65 }
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 public int getExactValue() {
73 return exactValue;
74 }
75
76 /**
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @generated
80 */
81 public void setExactValue(int newExactValue) {
82 int oldExactValue = exactValue;
83 exactValue = newExactValue;
84 if (eNotificationRequired())
85 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.EXACT_MULTIPLICITY__EXACT_VALUE,
86 oldExactValue, exactValue));
87 }
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 @Override
95 public Object eGet(int featureID, boolean resolve, boolean coreType) {
96 switch (featureID) {
97 case ProblemPackage.EXACT_MULTIPLICITY__EXACT_VALUE:
98 return getExactValue();
99 }
100 return super.eGet(featureID, resolve, coreType);
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 @Override
109 public void eSet(int featureID, Object newValue) {
110 switch (featureID) {
111 case ProblemPackage.EXACT_MULTIPLICITY__EXACT_VALUE:
112 setExactValue((Integer) newValue);
113 return;
114 }
115 super.eSet(featureID, newValue);
116 }
117
118 /**
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 */
123 @Override
124 public void eUnset(int featureID) {
125 switch (featureID) {
126 case ProblemPackage.EXACT_MULTIPLICITY__EXACT_VALUE:
127 setExactValue(EXACT_VALUE_EDEFAULT);
128 return;
129 }
130 super.eUnset(featureID);
131 }
132
133 /**
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @generated
137 */
138 @Override
139 public boolean eIsSet(int featureID) {
140 switch (featureID) {
141 case ProblemPackage.EXACT_MULTIPLICITY__EXACT_VALUE:
142 return exactValue != EXACT_VALUE_EDEFAULT;
143 }
144 return super.eIsSet(featureID);
145 }
146
147 /**
148 * <!-- begin-user-doc -->
149 * <!-- end-user-doc -->
150 * @generated
151 */
152 @Override
153 public String toString() {
154 if (eIsProxy())
155 return super.toString();
156
157 StringBuilder result = new StringBuilder(super.toString());
158 result.append(" (exactValue: ");
159 result.append(exactValue);
160 result.append(')');
161 return result.toString();
162 }
163
164} //ExactMultiplicityImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ImplicitVariableImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ImplicitVariableImpl.java
new file mode 100644
index 00000000..03a31a16
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ImplicitVariableImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable;
8import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Implicit Variable</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class ImplicitVariableImpl extends VariableImpl implements ImplicitVariable {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected ImplicitVariableImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return ProblemPackage.Literals.IMPLICIT_VARIABLE;
35 }
36
37} //ImplicitVariableImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/LiteralImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/LiteralImpl.java
new file mode 100644
index 00000000..c48bdb0b
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/LiteralImpl.java
@@ -0,0 +1,39 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
8
9import org.eclipse.viatra.solver.language.model.problem.Literal;
10import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
11
12/**
13 * <!-- begin-user-doc -->
14 * An implementation of the model object '<em><b>Literal</b></em>'.
15 * <!-- end-user-doc -->
16 *
17 * @generated
18 */
19public abstract class LiteralImpl extends MinimalEObjectImpl.Container implements Literal {
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected LiteralImpl() {
26 super();
27 }
28
29 /**
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @generated
33 */
34 @Override
35 protected EClass eStaticClass() {
36 return ProblemPackage.Literals.LITERAL;
37 }
38
39} //LiteralImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/MultiplicityImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/MultiplicityImpl.java
new file mode 100644
index 00000000..8d769eb0
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/MultiplicityImpl.java
@@ -0,0 +1,39 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
8
9import org.eclipse.viatra.solver.language.model.problem.Multiplicity;
10import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
11
12/**
13 * <!-- begin-user-doc -->
14 * An implementation of the model object '<em><b>Multiplicity</b></em>'.
15 * <!-- end-user-doc -->
16 *
17 * @generated
18 */
19public abstract class MultiplicityImpl extends MinimalEObjectImpl.Container implements Multiplicity {
20 /**
21 * <!-- begin-user-doc -->
22 * <!-- end-user-doc -->
23 * @generated
24 */
25 protected MultiplicityImpl() {
26 super();
27 }
28
29 /**
30 * <!-- begin-user-doc -->
31 * <!-- end-user-doc -->
32 * @generated
33 */
34 @Override
35 protected EClass eStaticClass() {
36 return ProblemPackage.Literals.MULTIPLICITY;
37 }
38
39} //MultiplicityImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NamedElementImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NamedElementImpl.java
new file mode 100644
index 00000000..b414013b
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NamedElementImpl.java
@@ -0,0 +1,164 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6
7import org.eclipse.emf.ecore.EClass;
8
9import org.eclipse.emf.ecore.impl.ENotificationImpl;
10import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
11
12import org.eclipse.viatra.solver.language.model.problem.NamedElement;
13import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
14
15/**
16 * <!-- begin-user-doc -->
17 * An implementation of the model object '<em><b>Named Element</b></em>'.
18 * <!-- end-user-doc -->
19 * <p>
20 * The following features are implemented:
21 * </p>
22 * <ul>
23 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.NamedElementImpl#getName <em>Name</em>}</li>
24 * </ul>
25 *
26 * @generated
27 */
28public abstract class NamedElementImpl extends MinimalEObjectImpl.Container implements NamedElement {
29 /**
30 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @see #getName()
34 * @generated
35 * @ordered
36 */
37 protected static final String NAME_EDEFAULT = null;
38
39 /**
40 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getName()
44 * @generated
45 * @ordered
46 */
47 protected String name = NAME_EDEFAULT;
48
49 /**
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @generated
53 */
54 protected NamedElementImpl() {
55 super();
56 }
57
58 /**
59 * <!-- begin-user-doc -->
60 * <!-- end-user-doc -->
61 * @generated
62 */
63 @Override
64 protected EClass eStaticClass() {
65 return ProblemPackage.Literals.NAMED_ELEMENT;
66 }
67
68 /**
69 * <!-- begin-user-doc -->
70 * <!-- end-user-doc -->
71 * @generated
72 */
73 public String getName() {
74 return name;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 public void setName(String newName) {
83 String oldName = name;
84 name = newName;
85 if (eNotificationRequired())
86 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.NAMED_ELEMENT__NAME, oldName, name));
87 }
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 @Override
95 public Object eGet(int featureID, boolean resolve, boolean coreType) {
96 switch (featureID) {
97 case ProblemPackage.NAMED_ELEMENT__NAME:
98 return getName();
99 }
100 return super.eGet(featureID, resolve, coreType);
101 }
102
103 /**
104 * <!-- begin-user-doc -->
105 * <!-- end-user-doc -->
106 * @generated
107 */
108 @Override
109 public void eSet(int featureID, Object newValue) {
110 switch (featureID) {
111 case ProblemPackage.NAMED_ELEMENT__NAME:
112 setName((String) newValue);
113 return;
114 }
115 super.eSet(featureID, newValue);
116 }
117
118 /**
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 */
123 @Override
124 public void eUnset(int featureID) {
125 switch (featureID) {
126 case ProblemPackage.NAMED_ELEMENT__NAME:
127 setName(NAME_EDEFAULT);
128 return;
129 }
130 super.eUnset(featureID);
131 }
132
133 /**
134 * <!-- begin-user-doc -->
135 * <!-- end-user-doc -->
136 * @generated
137 */
138 @Override
139 public boolean eIsSet(int featureID) {
140 switch (featureID) {
141 case ProblemPackage.NAMED_ELEMENT__NAME:
142 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
143 }
144 return super.eIsSet(featureID);
145 }
146
147 /**
148 * <!-- begin-user-doc -->
149 * <!-- end-user-doc -->
150 * @generated
151 */
152 @Override
153 public String toString() {
154 if (eIsProxy())
155 return super.toString();
156
157 StringBuilder result = new StringBuilder(super.toString());
158 result.append(" (name: ");
159 result.append(name);
160 result.append(')');
161 return result.toString();
162 }
163
164} //NamedElementImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java
new file mode 100644
index 00000000..5295406b
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java
@@ -0,0 +1,228 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.Notification;
8import org.eclipse.emf.common.notify.NotificationChain;
9
10import org.eclipse.emf.common.util.EList;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
17
18import org.eclipse.emf.ecore.util.EObjectContainmentEList;
19import org.eclipse.emf.ecore.util.InternalEList;
20
21import org.eclipse.viatra.solver.language.model.problem.Atom;
22import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable;
23import org.eclipse.viatra.solver.language.model.problem.NegativeLiteral;
24import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
25
26/**
27 * <!-- begin-user-doc -->
28 * An implementation of the model object '<em><b>Negative Literal</b></em>'.
29 * <!-- end-user-doc -->
30 * <p>
31 * The following features are implemented:
32 * </p>
33 * <ul>
34 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.NegativeLiteralImpl#getImplicitVariables <em>Implicit Variables</em>}</li>
35 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.NegativeLiteralImpl#getAtom <em>Atom</em>}</li>
36 * </ul>
37 *
38 * @generated
39 */
40public class NegativeLiteralImpl extends MinimalEObjectImpl.Container implements NegativeLiteral {
41 /**
42 * The cached value of the '{@link #getImplicitVariables() <em>Implicit Variables</em>}' containment reference list.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #getImplicitVariables()
46 * @generated
47 * @ordered
48 */
49 protected EList<ImplicitVariable> implicitVariables;
50 /**
51 * The cached value of the '{@link #getAtom() <em>Atom</em>}' containment reference.
52 * <!-- begin-user-doc -->
53 * <!-- end-user-doc -->
54 * @see #getAtom()
55 * @generated
56 * @ordered
57 */
58 protected Atom atom;
59
60 /**
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @generated
64 */
65 protected NegativeLiteralImpl() {
66 super();
67 }
68
69 /**
70 * <!-- begin-user-doc -->
71 * <!-- end-user-doc -->
72 * @generated
73 */
74 @Override
75 protected EClass eStaticClass() {
76 return ProblemPackage.Literals.NEGATIVE_LITERAL;
77 }
78
79 /**
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 public EList<ImplicitVariable> getImplicitVariables() {
85 if (implicitVariables == null) {
86 implicitVariables = new EObjectContainmentEList<ImplicitVariable>(ImplicitVariable.class, this,
87 ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES);
88 }
89 return implicitVariables;
90 }
91
92 /**
93 * <!-- begin-user-doc -->
94 * <!-- end-user-doc -->
95 * @generated
96 */
97 public Atom getAtom() {
98 return atom;
99 }
100
101 /**
102 * <!-- begin-user-doc -->
103 * <!-- end-user-doc -->
104 * @generated
105 */
106 public NotificationChain basicSetAtom(Atom newAtom, NotificationChain msgs) {
107 Atom oldAtom = atom;
108 atom = newAtom;
109 if (eNotificationRequired()) {
110 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
111 ProblemPackage.NEGATIVE_LITERAL__ATOM, oldAtom, newAtom);
112 if (msgs == null)
113 msgs = notification;
114 else
115 msgs.add(notification);
116 }
117 return msgs;
118 }
119
120 /**
121 * <!-- begin-user-doc -->
122 * <!-- end-user-doc -->
123 * @generated
124 */
125 public void setAtom(Atom newAtom) {
126 if (newAtom != atom) {
127 NotificationChain msgs = null;
128 if (atom != null)
129 msgs = ((InternalEObject) atom).eInverseRemove(this,
130 EOPPOSITE_FEATURE_BASE - ProblemPackage.NEGATIVE_LITERAL__ATOM, null, msgs);
131 if (newAtom != null)
132 msgs = ((InternalEObject) newAtom).eInverseAdd(this,
133 EOPPOSITE_FEATURE_BASE - ProblemPackage.NEGATIVE_LITERAL__ATOM, null, msgs);
134 msgs = basicSetAtom(newAtom, msgs);
135 if (msgs != null)
136 msgs.dispatch();
137 } else if (eNotificationRequired())
138 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.NEGATIVE_LITERAL__ATOM, newAtom,
139 newAtom));
140 }
141
142 /**
143 * <!-- begin-user-doc -->
144 * <!-- end-user-doc -->
145 * @generated
146 */
147 @Override
148 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
149 switch (featureID) {
150 case ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES:
151 return ((InternalEList<?>) getImplicitVariables()).basicRemove(otherEnd, msgs);
152 case ProblemPackage.NEGATIVE_LITERAL__ATOM:
153 return basicSetAtom(null, msgs);
154 }
155 return super.eInverseRemove(otherEnd, featureID, msgs);
156 }
157
158 /**
159 * <!-- begin-user-doc -->
160 * <!-- end-user-doc -->
161 * @generated
162 */
163 @Override
164 public Object eGet(int featureID, boolean resolve, boolean coreType) {
165 switch (featureID) {
166 case ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES:
167 return getImplicitVariables();
168 case ProblemPackage.NEGATIVE_LITERAL__ATOM:
169 return getAtom();
170 }
171 return super.eGet(featureID, resolve, coreType);
172 }
173
174 /**
175 * <!-- begin-user-doc -->
176 * <!-- end-user-doc -->
177 * @generated
178 */
179 @SuppressWarnings("unchecked")
180 @Override
181 public void eSet(int featureID, Object newValue) {
182 switch (featureID) {
183 case ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES:
184 getImplicitVariables().clear();
185 getImplicitVariables().addAll((Collection<? extends ImplicitVariable>) newValue);
186 return;
187 case ProblemPackage.NEGATIVE_LITERAL__ATOM:
188 setAtom((Atom) newValue);
189 return;
190 }
191 super.eSet(featureID, newValue);
192 }
193
194 /**
195 * <!-- begin-user-doc -->
196 * <!-- end-user-doc -->
197 * @generated
198 */
199 @Override
200 public void eUnset(int featureID) {
201 switch (featureID) {
202 case ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES:
203 getImplicitVariables().clear();
204 return;
205 case ProblemPackage.NEGATIVE_LITERAL__ATOM:
206 setAtom((Atom) null);
207 return;
208 }
209 super.eUnset(featureID);
210 }
211
212 /**
213 * <!-- begin-user-doc -->
214 * <!-- end-user-doc -->
215 * @generated
216 */
217 @Override
218 public boolean eIsSet(int featureID) {
219 switch (featureID) {
220 case ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES:
221 return implicitVariables != null && !implicitVariables.isEmpty();
222 case ProblemPackage.NEGATIVE_LITERAL__ATOM:
223 return atom != null;
224 }
225 return super.eIsSet(featureID);
226 }
227
228} //NegativeLiteralImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java
new file mode 100644
index 00000000..23b85a9c
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import org.eclipse.viatra.solver.language.model.problem.Node;
8import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Node</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public class NodeImpl extends NamedElementImpl implements Node {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected NodeImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return ProblemPackage.Literals.NODE;
35 }
36
37} //NodeImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.java
new file mode 100644
index 00000000..cfbf25b0
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.java
@@ -0,0 +1,159 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6
7import org.eclipse.emf.ecore.EClass;
8import org.eclipse.emf.ecore.InternalEObject;
9
10import org.eclipse.emf.ecore.impl.ENotificationImpl;
11
12import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
13import org.eclipse.viatra.solver.language.model.problem.Parameter;
14import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
15
16/**
17 * <!-- begin-user-doc -->
18 * An implementation of the model object '<em><b>Parameter</b></em>'.
19 * <!-- end-user-doc -->
20 * <p>
21 * The following features are implemented:
22 * </p>
23 * <ul>
24 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ParameterImpl#getParameterType <em>Parameter Type</em>}</li>
25 * </ul>
26 *
27 * @generated
28 */
29public class ParameterImpl extends VariableImpl implements Parameter {
30 /**
31 * The cached value of the '{@link #getParameterType() <em>Parameter Type</em>}' reference.
32 * <!-- begin-user-doc -->
33 * <!-- end-user-doc -->
34 * @see #getParameterType()
35 * @generated
36 * @ordered
37 */
38 protected ClassDeclaration parameterType;
39
40 /**
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @generated
44 */
45 protected ParameterImpl() {
46 super();
47 }
48
49 /**
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @generated
53 */
54 @Override
55 protected EClass eStaticClass() {
56 return ProblemPackage.Literals.PARAMETER;
57 }
58
59 /**
60 * <!-- begin-user-doc -->
61 * <!-- end-user-doc -->
62 * @generated
63 */
64 public ClassDeclaration getParameterType() {
65 if (parameterType != null && parameterType.eIsProxy()) {
66 InternalEObject oldParameterType = (InternalEObject) parameterType;
67 parameterType = (ClassDeclaration) eResolveProxy(oldParameterType);
68 if (parameterType != oldParameterType) {
69 if (eNotificationRequired())
70 eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.PARAMETER__PARAMETER_TYPE,
71 oldParameterType, parameterType));
72 }
73 }
74 return parameterType;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 public ClassDeclaration basicGetParameterType() {
83 return parameterType;
84 }
85
86 /**
87 * <!-- begin-user-doc -->
88 * <!-- end-user-doc -->
89 * @generated
90 */
91 public void setParameterType(ClassDeclaration newParameterType) {
92 ClassDeclaration oldParameterType = parameterType;
93 parameterType = newParameterType;
94 if (eNotificationRequired())
95 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.PARAMETER__PARAMETER_TYPE,
96 oldParameterType, parameterType));
97 }
98
99 /**
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @generated
103 */
104 @Override
105 public Object eGet(int featureID, boolean resolve, boolean coreType) {
106 switch (featureID) {
107 case ProblemPackage.PARAMETER__PARAMETER_TYPE:
108 if (resolve)
109 return getParameterType();
110 return basicGetParameterType();
111 }
112 return super.eGet(featureID, resolve, coreType);
113 }
114
115 /**
116 * <!-- begin-user-doc -->
117 * <!-- end-user-doc -->
118 * @generated
119 */
120 @Override
121 public void eSet(int featureID, Object newValue) {
122 switch (featureID) {
123 case ProblemPackage.PARAMETER__PARAMETER_TYPE:
124 setParameterType((ClassDeclaration) newValue);
125 return;
126 }
127 super.eSet(featureID, newValue);
128 }
129
130 /**
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @generated
134 */
135 @Override
136 public void eUnset(int featureID) {
137 switch (featureID) {
138 case ProblemPackage.PARAMETER__PARAMETER_TYPE:
139 setParameterType((ClassDeclaration) null);
140 return;
141 }
142 super.eUnset(featureID);
143 }
144
145 /**
146 * <!-- begin-user-doc -->
147 * <!-- end-user-doc -->
148 * @generated
149 */
150 @Override
151 public boolean eIsSet(int featureID) {
152 switch (featureID) {
153 case ProblemPackage.PARAMETER__PARAMETER_TYPE:
154 return parameterType != null;
155 }
156 return super.eIsSet(featureID);
157 }
158
159} //ParameterImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/PredicateDefinitionImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/PredicateDefinitionImpl.java
new file mode 100644
index 00000000..968b6de1
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/PredicateDefinitionImpl.java
@@ -0,0 +1,262 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.Notification;
8import org.eclipse.emf.common.notify.NotificationChain;
9
10import org.eclipse.emf.common.util.EList;
11
12import org.eclipse.emf.ecore.EClass;
13import org.eclipse.emf.ecore.InternalEObject;
14
15import org.eclipse.emf.ecore.impl.ENotificationImpl;
16
17import org.eclipse.emf.ecore.util.EObjectContainmentEList;
18import org.eclipse.emf.ecore.util.InternalEList;
19
20import org.eclipse.viatra.solver.language.model.problem.Conjunction;
21import org.eclipse.viatra.solver.language.model.problem.Parameter;
22import org.eclipse.viatra.solver.language.model.problem.PredicateDefinition;
23import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
24
25/**
26 * <!-- begin-user-doc -->
27 * An implementation of the model object '<em><b>Predicate Definition</b></em>'.
28 * <!-- end-user-doc -->
29 * <p>
30 * The following features are implemented:
31 * </p>
32 * <ul>
33 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl#isError <em>Error</em>}</li>
34 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl#getParameters <em>Parameters</em>}</li>
35 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl#getBodies <em>Bodies</em>}</li>
36 * </ul>
37 *
38 * @generated
39 */
40public class PredicateDefinitionImpl extends RelationImpl implements PredicateDefinition {
41 /**
42 * The default value of the '{@link #isError() <em>Error</em>}' attribute.
43 * <!-- begin-user-doc -->
44 * <!-- end-user-doc -->
45 * @see #isError()
46 * @generated
47 * @ordered
48 */
49 protected static final boolean ERROR_EDEFAULT = false;
50
51 /**
52 * The cached value of the '{@link #isError() <em>Error</em>}' attribute.
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @see #isError()
56 * @generated
57 * @ordered
58 */
59 protected boolean error = ERROR_EDEFAULT;
60
61 /**
62 * The cached value of the '{@link #getParameters() <em>Parameters</em>}' containment reference list.
63 * <!-- begin-user-doc -->
64 * <!-- end-user-doc -->
65 * @see #getParameters()
66 * @generated
67 * @ordered
68 */
69 protected EList<Parameter> parameters;
70
71 /**
72 * The cached value of the '{@link #getBodies() <em>Bodies</em>}' containment reference list.
73 * <!-- begin-user-doc -->
74 * <!-- end-user-doc -->
75 * @see #getBodies()
76 * @generated
77 * @ordered
78 */
79 protected EList<Conjunction> bodies;
80
81 /**
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 */
86 protected PredicateDefinitionImpl() {
87 super();
88 }
89
90 /**
91 * <!-- begin-user-doc -->
92 * <!-- end-user-doc -->
93 * @generated
94 */
95 @Override
96 protected EClass eStaticClass() {
97 return ProblemPackage.Literals.PREDICATE_DEFINITION;
98 }
99
100 /**
101 * <!-- begin-user-doc -->
102 * <!-- end-user-doc -->
103 * @generated
104 */
105 public boolean isError() {
106 return error;
107 }
108
109 /**
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @generated
113 */
114 public void setError(boolean newError) {
115 boolean oldError = error;
116 error = newError;
117 if (eNotificationRequired())
118 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.PREDICATE_DEFINITION__ERROR, oldError,
119 error));
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 public EList<Parameter> getParameters() {
128 if (parameters == null) {
129 parameters = new EObjectContainmentEList<Parameter>(Parameter.class, this,
130 ProblemPackage.PREDICATE_DEFINITION__PARAMETERS);
131 }
132 return parameters;
133 }
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 public EList<Conjunction> getBodies() {
141 if (bodies == null) {
142 bodies = new EObjectContainmentEList<Conjunction>(Conjunction.class, this,
143 ProblemPackage.PREDICATE_DEFINITION__BODIES);
144 }
145 return bodies;
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 @Override
154 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
155 switch (featureID) {
156 case ProblemPackage.PREDICATE_DEFINITION__PARAMETERS:
157 return ((InternalEList<?>) getParameters()).basicRemove(otherEnd, msgs);
158 case ProblemPackage.PREDICATE_DEFINITION__BODIES:
159 return ((InternalEList<?>) getBodies()).basicRemove(otherEnd, msgs);
160 }
161 return super.eInverseRemove(otherEnd, featureID, msgs);
162 }
163
164 /**
165 * <!-- begin-user-doc -->
166 * <!-- end-user-doc -->
167 * @generated
168 */
169 @Override
170 public Object eGet(int featureID, boolean resolve, boolean coreType) {
171 switch (featureID) {
172 case ProblemPackage.PREDICATE_DEFINITION__ERROR:
173 return isError();
174 case ProblemPackage.PREDICATE_DEFINITION__PARAMETERS:
175 return getParameters();
176 case ProblemPackage.PREDICATE_DEFINITION__BODIES:
177 return getBodies();
178 }
179 return super.eGet(featureID, resolve, coreType);
180 }
181
182 /**
183 * <!-- begin-user-doc -->
184 * <!-- end-user-doc -->
185 * @generated
186 */
187 @SuppressWarnings("unchecked")
188 @Override
189 public void eSet(int featureID, Object newValue) {
190 switch (featureID) {
191 case ProblemPackage.PREDICATE_DEFINITION__ERROR:
192 setError((Boolean) newValue);
193 return;
194 case ProblemPackage.PREDICATE_DEFINITION__PARAMETERS:
195 getParameters().clear();
196 getParameters().addAll((Collection<? extends Parameter>) newValue);
197 return;
198 case ProblemPackage.PREDICATE_DEFINITION__BODIES:
199 getBodies().clear();
200 getBodies().addAll((Collection<? extends Conjunction>) newValue);
201 return;
202 }
203 super.eSet(featureID, newValue);
204 }
205
206 /**
207 * <!-- begin-user-doc -->
208 * <!-- end-user-doc -->
209 * @generated
210 */
211 @Override
212 public void eUnset(int featureID) {
213 switch (featureID) {
214 case ProblemPackage.PREDICATE_DEFINITION__ERROR:
215 setError(ERROR_EDEFAULT);
216 return;
217 case ProblemPackage.PREDICATE_DEFINITION__PARAMETERS:
218 getParameters().clear();
219 return;
220 case ProblemPackage.PREDICATE_DEFINITION__BODIES:
221 getBodies().clear();
222 return;
223 }
224 super.eUnset(featureID);
225 }
226
227 /**
228 * <!-- begin-user-doc -->
229 * <!-- end-user-doc -->
230 * @generated
231 */
232 @Override
233 public boolean eIsSet(int featureID) {
234 switch (featureID) {
235 case ProblemPackage.PREDICATE_DEFINITION__ERROR:
236 return error != ERROR_EDEFAULT;
237 case ProblemPackage.PREDICATE_DEFINITION__PARAMETERS:
238 return parameters != null && !parameters.isEmpty();
239 case ProblemPackage.PREDICATE_DEFINITION__BODIES:
240 return bodies != null && !bodies.isEmpty();
241 }
242 return super.eIsSet(featureID);
243 }
244
245 /**
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @generated
249 */
250 @Override
251 public String toString() {
252 if (eIsProxy())
253 return super.toString();
254
255 StringBuilder result = new StringBuilder(super.toString());
256 result.append(" (error: ");
257 result.append(error);
258 result.append(')');
259 return result.toString();
260 }
261
262} //PredicateDefinitionImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java
new file mode 100644
index 00000000..563f8b05
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java
@@ -0,0 +1,317 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.ecore.EClass;
6import org.eclipse.emf.ecore.EDataType;
7import org.eclipse.emf.ecore.EObject;
8import org.eclipse.emf.ecore.EPackage;
9
10import org.eclipse.emf.ecore.impl.EFactoryImpl;
11
12import org.eclipse.emf.ecore.plugin.EcorePlugin;
13
14import org.eclipse.viatra.solver.language.model.problem.*;
15
16/**
17 * <!-- begin-user-doc -->
18 * An implementation of the model <b>Factory</b>.
19 * <!-- end-user-doc -->
20 * @generated
21 */
22public class ProblemFactoryImpl extends EFactoryImpl implements ProblemFactory {
23 /**
24 * Creates the default factory implementation.
25 * <!-- begin-user-doc -->
26 * <!-- end-user-doc -->
27 * @generated
28 */
29 public static ProblemFactory init() {
30 try {
31 ProblemFactory theProblemFactory = (ProblemFactory) EPackage.Registry.INSTANCE
32 .getEFactory(ProblemPackage.eNS_URI);
33 if (theProblemFactory != null) {
34 return theProblemFactory;
35 }
36 } catch (Exception exception) {
37 EcorePlugin.INSTANCE.log(exception);
38 }
39 return new ProblemFactoryImpl();
40 }
41
42 /**
43 * Creates an instance of the factory.
44 * <!-- begin-user-doc -->
45 * <!-- end-user-doc -->
46 * @generated
47 */
48 public ProblemFactoryImpl() {
49 super();
50 }
51
52 /**
53 * <!-- begin-user-doc -->
54 * <!-- end-user-doc -->
55 * @generated
56 */
57 @Override
58 public EObject create(EClass eClass) {
59 switch (eClass.getClassifierID()) {
60 case ProblemPackage.PROBLEM:
61 return createProblem();
62 case ProblemPackage.CLASS_DECLARATION:
63 return createClassDeclaration();
64 case ProblemPackage.REFERENCE_DECLARATION:
65 return createReferenceDeclaration();
66 case ProblemPackage.PREDICATE_DEFINITION:
67 return createPredicateDefinition();
68 case ProblemPackage.PARAMETER:
69 return createParameter();
70 case ProblemPackage.CONJUNCTION:
71 return createConjunction();
72 case ProblemPackage.ATOM:
73 return createAtom();
74 case ProblemPackage.IMPLICIT_VARIABLE:
75 return createImplicitVariable();
76 case ProblemPackage.NEGATIVE_LITERAL:
77 return createNegativeLiteral();
78 case ProblemPackage.ASSERTION:
79 return createAssertion();
80 case ProblemPackage.NODE:
81 return createNode();
82 case ProblemPackage.SCOPE_DECLARATION:
83 return createScopeDeclaration();
84 case ProblemPackage.TYPE_SCOPE:
85 return createTypeScope();
86 case ProblemPackage.RANGE_MULTIPLICITY:
87 return createRangeMultiplicity();
88 case ProblemPackage.EXACT_MULTIPLICITY:
89 return createExactMultiplicity();
90 default:
91 throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
92 }
93 }
94
95 /**
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @generated
99 */
100 @Override
101 public Object createFromString(EDataType eDataType, String initialValue) {
102 switch (eDataType.getClassifierID()) {
103 case ProblemPackage.LOGIC_VALUE:
104 return createLogicValueFromString(eDataType, initialValue);
105 default:
106 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
107 }
108 }
109
110 /**
111 * <!-- begin-user-doc -->
112 * <!-- end-user-doc -->
113 * @generated
114 */
115 @Override
116 public String convertToString(EDataType eDataType, Object instanceValue) {
117 switch (eDataType.getClassifierID()) {
118 case ProblemPackage.LOGIC_VALUE:
119 return convertLogicValueToString(eDataType, instanceValue);
120 default:
121 throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
122 }
123 }
124
125 /**
126 * <!-- begin-user-doc -->
127 * <!-- end-user-doc -->
128 * @generated
129 */
130 public Problem createProblem() {
131 ProblemImpl problem = new ProblemImpl();
132 return problem;
133 }
134
135 /**
136 * <!-- begin-user-doc -->
137 * <!-- end-user-doc -->
138 * @generated
139 */
140 public ClassDeclaration createClassDeclaration() {
141 ClassDeclarationImpl classDeclaration = new ClassDeclarationImpl();
142 return classDeclaration;
143 }
144
145 /**
146 * <!-- begin-user-doc -->
147 * <!-- end-user-doc -->
148 * @generated
149 */
150 public ReferenceDeclaration createReferenceDeclaration() {
151 ReferenceDeclarationImpl referenceDeclaration = new ReferenceDeclarationImpl();
152 return referenceDeclaration;
153 }
154
155 /**
156 * <!-- begin-user-doc -->
157 * <!-- end-user-doc -->
158 * @generated
159 */
160 public PredicateDefinition createPredicateDefinition() {
161 PredicateDefinitionImpl predicateDefinition = new PredicateDefinitionImpl();
162 return predicateDefinition;
163 }
164
165 /**
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @generated
169 */
170 public Parameter createParameter() {
171 ParameterImpl parameter = new ParameterImpl();
172 return parameter;
173 }
174
175 /**
176 * <!-- begin-user-doc -->
177 * <!-- end-user-doc -->
178 * @generated
179 */
180 public Conjunction createConjunction() {
181 ConjunctionImpl conjunction = new ConjunctionImpl();
182 return conjunction;
183 }
184
185 /**
186 * <!-- begin-user-doc -->
187 * <!-- end-user-doc -->
188 * @generated
189 */
190 public Atom createAtom() {
191 AtomImpl atom = new AtomImpl();
192 return atom;
193 }
194
195 /**
196 * <!-- begin-user-doc -->
197 * <!-- end-user-doc -->
198 * @generated
199 */
200 public ImplicitVariable createImplicitVariable() {
201 ImplicitVariableImpl implicitVariable = new ImplicitVariableImpl();
202 return implicitVariable;
203 }
204
205 /**
206 * <!-- begin-user-doc -->
207 * <!-- end-user-doc -->
208 * @generated
209 */
210 public NegativeLiteral createNegativeLiteral() {
211 NegativeLiteralImpl negativeLiteral = new NegativeLiteralImpl();
212 return negativeLiteral;
213 }
214
215 /**
216 * <!-- begin-user-doc -->
217 * <!-- end-user-doc -->
218 * @generated
219 */
220 public Assertion createAssertion() {
221 AssertionImpl assertion = new AssertionImpl();
222 return assertion;
223 }
224
225 /**
226 * <!-- begin-user-doc -->
227 * <!-- end-user-doc -->
228 * @generated
229 */
230 public Node createNode() {
231 NodeImpl node = new NodeImpl();
232 return node;
233 }
234
235 /**
236 * <!-- begin-user-doc -->
237 * <!-- end-user-doc -->
238 * @generated
239 */
240 public ScopeDeclaration createScopeDeclaration() {
241 ScopeDeclarationImpl scopeDeclaration = new ScopeDeclarationImpl();
242 return scopeDeclaration;
243 }
244
245 /**
246 * <!-- begin-user-doc -->
247 * <!-- end-user-doc -->
248 * @generated
249 */
250 public TypeScope createTypeScope() {
251 TypeScopeImpl typeScope = new TypeScopeImpl();
252 return typeScope;
253 }
254
255 /**
256 * <!-- begin-user-doc -->
257 * <!-- end-user-doc -->
258 * @generated
259 */
260 public RangeMultiplicity createRangeMultiplicity() {
261 RangeMultiplicityImpl rangeMultiplicity = new RangeMultiplicityImpl();
262 return rangeMultiplicity;
263 }
264
265 /**
266 * <!-- begin-user-doc -->
267 * <!-- end-user-doc -->
268 * @generated
269 */
270 public ExactMultiplicity createExactMultiplicity() {
271 ExactMultiplicityImpl exactMultiplicity = new ExactMultiplicityImpl();
272 return exactMultiplicity;
273 }
274
275 /**
276 * <!-- begin-user-doc -->
277 * <!-- end-user-doc -->
278 * @generated
279 */
280 public LogicValue createLogicValueFromString(EDataType eDataType, String initialValue) {
281 LogicValue result = LogicValue.get(initialValue);
282 if (result == null)
283 throw new IllegalArgumentException(
284 "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
285 return result;
286 }
287
288 /**
289 * <!-- begin-user-doc -->
290 * <!-- end-user-doc -->
291 * @generated
292 */
293 public String convertLogicValueToString(EDataType eDataType, Object instanceValue) {
294 return instanceValue == null ? null : instanceValue.toString();
295 }
296
297 /**
298 * <!-- begin-user-doc -->
299 * <!-- end-user-doc -->
300 * @generated
301 */
302 public ProblemPackage getProblemPackage() {
303 return (ProblemPackage) getEPackage();
304 }
305
306 /**
307 * <!-- begin-user-doc -->
308 * <!-- end-user-doc -->
309 * @deprecated
310 * @generated
311 */
312 @Deprecated
313 public static ProblemPackage getPackage() {
314 return ProblemPackage.eINSTANCE;
315 }
316
317} //ProblemFactoryImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java
new file mode 100644
index 00000000..32bba265
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java
@@ -0,0 +1,189 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.common.util.EList;
10
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.InternalEObject;
13
14import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
15
16import org.eclipse.emf.ecore.util.EObjectContainmentEList;
17import org.eclipse.emf.ecore.util.InternalEList;
18
19import org.eclipse.viatra.solver.language.model.problem.Node;
20import org.eclipse.viatra.solver.language.model.problem.Problem;
21import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
22import org.eclipse.viatra.solver.language.model.problem.Statement;
23
24/**
25 * <!-- begin-user-doc -->
26 * An implementation of the model object '<em><b>Problem</b></em>'.
27 * <!-- end-user-doc -->
28 * <p>
29 * The following features are implemented:
30 * </p>
31 * <ul>
32 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl#getNodes <em>Nodes</em>}</li>
33 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl#getStatements <em>Statements</em>}</li>
34 * </ul>
35 *
36 * @generated
37 */
38public class ProblemImpl extends MinimalEObjectImpl.Container implements Problem {
39 /**
40 * The cached value of the '{@link #getNodes() <em>Nodes</em>}' containment reference list.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getNodes()
44 * @generated
45 * @ordered
46 */
47 protected EList<Node> nodes;
48 /**
49 * The cached value of the '{@link #getStatements() <em>Statements</em>}' containment reference list.
50 * <!-- begin-user-doc -->
51 * <!-- end-user-doc -->
52 * @see #getStatements()
53 * @generated
54 * @ordered
55 */
56 protected EList<Statement> statements;
57
58 /**
59 * <!-- begin-user-doc -->
60 * <!-- end-user-doc -->
61 * @generated
62 */
63 protected ProblemImpl() {
64 super();
65 }
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 @Override
73 protected EClass eStaticClass() {
74 return ProblemPackage.Literals.PROBLEM;
75 }
76
77 /**
78 * <!-- begin-user-doc -->
79 * <!-- end-user-doc -->
80 * @generated
81 */
82 public EList<Node> getNodes() {
83 if (nodes == null) {
84 nodes = new EObjectContainmentEList<Node>(Node.class, this, ProblemPackage.PROBLEM__NODES);
85 }
86 return nodes;
87 }
88
89 /**
90 * <!-- begin-user-doc -->
91 * <!-- end-user-doc -->
92 * @generated
93 */
94 public EList<Statement> getStatements() {
95 if (statements == null) {
96 statements = new EObjectContainmentEList<Statement>(Statement.class, this,
97 ProblemPackage.PROBLEM__STATEMENTS);
98 }
99 return statements;
100 }
101
102 /**
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @generated
106 */
107 @Override
108 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
109 switch (featureID) {
110 case ProblemPackage.PROBLEM__NODES:
111 return ((InternalEList<?>) getNodes()).basicRemove(otherEnd, msgs);
112 case ProblemPackage.PROBLEM__STATEMENTS:
113 return ((InternalEList<?>) getStatements()).basicRemove(otherEnd, msgs);
114 }
115 return super.eInverseRemove(otherEnd, featureID, msgs);
116 }
117
118 /**
119 * <!-- begin-user-doc -->
120 * <!-- end-user-doc -->
121 * @generated
122 */
123 @Override
124 public Object eGet(int featureID, boolean resolve, boolean coreType) {
125 switch (featureID) {
126 case ProblemPackage.PROBLEM__NODES:
127 return getNodes();
128 case ProblemPackage.PROBLEM__STATEMENTS:
129 return getStatements();
130 }
131 return super.eGet(featureID, resolve, coreType);
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 @SuppressWarnings("unchecked")
140 @Override
141 public void eSet(int featureID, Object newValue) {
142 switch (featureID) {
143 case ProblemPackage.PROBLEM__NODES:
144 getNodes().clear();
145 getNodes().addAll((Collection<? extends Node>) newValue);
146 return;
147 case ProblemPackage.PROBLEM__STATEMENTS:
148 getStatements().clear();
149 getStatements().addAll((Collection<? extends Statement>) newValue);
150 return;
151 }
152 super.eSet(featureID, newValue);
153 }
154
155 /**
156 * <!-- begin-user-doc -->
157 * <!-- end-user-doc -->
158 * @generated
159 */
160 @Override
161 public void eUnset(int featureID) {
162 switch (featureID) {
163 case ProblemPackage.PROBLEM__NODES:
164 getNodes().clear();
165 return;
166 case ProblemPackage.PROBLEM__STATEMENTS:
167 getStatements().clear();
168 return;
169 }
170 super.eUnset(featureID);
171 }
172
173 /**
174 * <!-- begin-user-doc -->
175 * <!-- end-user-doc -->
176 * @generated
177 */
178 @Override
179 public boolean eIsSet(int featureID) {
180 switch (featureID) {
181 case ProblemPackage.PROBLEM__NODES:
182 return nodes != null && !nodes.isEmpty();
183 case ProblemPackage.PROBLEM__STATEMENTS:
184 return statements != null && !statements.isEmpty();
185 }
186 return super.eIsSet(featureID);
187 }
188
189} //ProblemImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java
new file mode 100644
index 00000000..de0aa595
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java
@@ -0,0 +1,1061 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.ecore.EAttribute;
6import org.eclipse.emf.ecore.EClass;
7import org.eclipse.emf.ecore.EEnum;
8import org.eclipse.emf.ecore.EPackage;
9import org.eclipse.emf.ecore.EReference;
10
11import org.eclipse.emf.ecore.impl.EPackageImpl;
12
13import org.eclipse.viatra.solver.language.model.problem.Assertion;
14import org.eclipse.viatra.solver.language.model.problem.Atom;
15import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
16import org.eclipse.viatra.solver.language.model.problem.Conjunction;
17import org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity;
18import org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier;
19import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable;
20import org.eclipse.viatra.solver.language.model.problem.Literal;
21import org.eclipse.viatra.solver.language.model.problem.LogicValue;
22import org.eclipse.viatra.solver.language.model.problem.Multiplicity;
23import org.eclipse.viatra.solver.language.model.problem.NamedElement;
24import org.eclipse.viatra.solver.language.model.problem.NegativeLiteral;
25import org.eclipse.viatra.solver.language.model.problem.Node;
26import org.eclipse.viatra.solver.language.model.problem.Parameter;
27import org.eclipse.viatra.solver.language.model.problem.PredicateDefinition;
28import org.eclipse.viatra.solver.language.model.problem.Problem;
29import org.eclipse.viatra.solver.language.model.problem.ProblemFactory;
30import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
31import org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity;
32import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration;
33import org.eclipse.viatra.solver.language.model.problem.Relation;
34import org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration;
35import org.eclipse.viatra.solver.language.model.problem.Statement;
36import org.eclipse.viatra.solver.language.model.problem.TypeScope;
37import org.eclipse.viatra.solver.language.model.problem.Variable;
38
39/**
40 * <!-- begin-user-doc -->
41 * An implementation of the model <b>Package</b>.
42 * <!-- end-user-doc -->
43 * @generated
44 */
45public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
46 /**
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @generated
50 */
51 private EClass problemEClass = null;
52
53 /**
54 * <!-- begin-user-doc -->
55 * <!-- end-user-doc -->
56 * @generated
57 */
58 private EClass relationEClass = null;
59
60 /**
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @generated
64 */
65 private EClass classDeclarationEClass = null;
66
67 /**
68 * <!-- begin-user-doc -->
69 * <!-- end-user-doc -->
70 * @generated
71 */
72 private EClass referenceDeclarationEClass = null;
73
74 /**
75 * <!-- begin-user-doc -->
76 * <!-- end-user-doc -->
77 * @generated
78 */
79 private EClass namedElementEClass = null;
80
81 /**
82 * <!-- begin-user-doc -->
83 * <!-- end-user-doc -->
84 * @generated
85 */
86 private EClass predicateDefinitionEClass = null;
87
88 /**
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 */
93 private EClass parameterEClass = null;
94
95 /**
96 * <!-- begin-user-doc -->
97 * <!-- end-user-doc -->
98 * @generated
99 */
100 private EClass variableEClass = null;
101
102 /**
103 * <!-- begin-user-doc -->
104 * <!-- end-user-doc -->
105 * @generated
106 */
107 private EClass conjunctionEClass = null;
108
109 /**
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @generated
113 */
114 private EClass literalEClass = null;
115
116 /**
117 * <!-- begin-user-doc -->
118 * <!-- end-user-doc -->
119 * @generated
120 */
121 private EClass atomEClass = null;
122
123 /**
124 * <!-- begin-user-doc -->
125 * <!-- end-user-doc -->
126 * @generated
127 */
128 private EClass implicitVariableEClass = null;
129
130 /**
131 * <!-- begin-user-doc -->
132 * <!-- end-user-doc -->
133 * @generated
134 */
135 private EClass negativeLiteralEClass = null;
136
137 /**
138 * <!-- begin-user-doc -->
139 * <!-- end-user-doc -->
140 * @generated
141 */
142 private EClass existentialQuantifierEClass = null;
143
144 /**
145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc -->
147 * @generated
148 */
149 private EClass assertionEClass = null;
150
151 /**
152 * <!-- begin-user-doc -->
153 * <!-- end-user-doc -->
154 * @generated
155 */
156 private EClass nodeEClass = null;
157
158 /**
159 * <!-- begin-user-doc -->
160 * <!-- end-user-doc -->
161 * @generated
162 */
163 private EClass scopeDeclarationEClass = null;
164
165 /**
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @generated
169 */
170 private EClass statementEClass = null;
171
172 /**
173 * <!-- begin-user-doc -->
174 * <!-- end-user-doc -->
175 * @generated
176 */
177 private EClass typeScopeEClass = null;
178
179 /**
180 * <!-- begin-user-doc -->
181 * <!-- end-user-doc -->
182 * @generated
183 */
184 private EClass multiplicityEClass = null;
185
186 /**
187 * <!-- begin-user-doc -->
188 * <!-- end-user-doc -->
189 * @generated
190 */
191 private EClass rangeMultiplicityEClass = null;
192
193 /**
194 * <!-- begin-user-doc -->
195 * <!-- end-user-doc -->
196 * @generated
197 */
198 private EClass exactMultiplicityEClass = null;
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 private EEnum logicValueEEnum = null;
206
207 /**
208 * Creates an instance of the model <b>Package</b>, registered with
209 * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
210 * package URI value.
211 * <p>Note: the correct way to create the package is via the static
212 * factory method {@link #init init()}, which also performs
213 * initialization of the package, or returns the registered package,
214 * if one already exists.
215 * <!-- begin-user-doc -->
216 * <!-- end-user-doc -->
217 * @see org.eclipse.emf.ecore.EPackage.Registry
218 * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#eNS_URI
219 * @see #init()
220 * @generated
221 */
222 private ProblemPackageImpl() {
223 super(eNS_URI, ProblemFactory.eINSTANCE);
224 }
225
226 /**
227 * <!-- begin-user-doc -->
228 * <!-- end-user-doc -->
229 * @generated
230 */
231 private static boolean isInited = false;
232
233 /**
234 * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
235 *
236 * <p>This method is used to initialize {@link ProblemPackage#eINSTANCE} when that field is accessed.
237 * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
238 * <!-- begin-user-doc -->
239 * <!-- end-user-doc -->
240 * @see #eNS_URI
241 * @see #createPackageContents()
242 * @see #initializePackageContents()
243 * @generated
244 */
245 public static ProblemPackage init() {
246 if (isInited)
247 return (ProblemPackage) EPackage.Registry.INSTANCE.getEPackage(ProblemPackage.eNS_URI);
248
249 // Obtain or create and register package
250 Object registeredProblemPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
251 ProblemPackageImpl theProblemPackage = registeredProblemPackage instanceof ProblemPackageImpl
252 ? (ProblemPackageImpl) registeredProblemPackage
253 : new ProblemPackageImpl();
254
255 isInited = true;
256
257 // Create package meta-data objects
258 theProblemPackage.createPackageContents();
259
260 // Initialize created meta-data
261 theProblemPackage.initializePackageContents();
262
263 // Mark meta-data to indicate it can't be changed
264 theProblemPackage.freeze();
265
266 // Update the registry and return the package
267 EPackage.Registry.INSTANCE.put(ProblemPackage.eNS_URI, theProblemPackage);
268 return theProblemPackage;
269 }
270
271 /**
272 * <!-- begin-user-doc -->
273 * <!-- end-user-doc -->
274 * @generated
275 */
276 public EClass getProblem() {
277 return problemEClass;
278 }
279
280 /**
281 * <!-- begin-user-doc -->
282 * <!-- end-user-doc -->
283 * @generated
284 */
285 public EReference getProblem_Nodes() {
286 return (EReference) problemEClass.getEStructuralFeatures().get(0);
287 }
288
289 /**
290 * <!-- begin-user-doc -->
291 * <!-- end-user-doc -->
292 * @generated
293 */
294 public EReference getProblem_Statements() {
295 return (EReference) problemEClass.getEStructuralFeatures().get(1);
296 }
297
298 /**
299 * <!-- begin-user-doc -->
300 * <!-- end-user-doc -->
301 * @generated
302 */
303 public EClass getRelation() {
304 return relationEClass;
305 }
306
307 /**
308 * <!-- begin-user-doc -->
309 * <!-- end-user-doc -->
310 * @generated
311 */
312 public EClass getClassDeclaration() {
313 return classDeclarationEClass;
314 }
315
316 /**
317 * <!-- begin-user-doc -->
318 * <!-- end-user-doc -->
319 * @generated
320 */
321 public EAttribute getClassDeclaration_Abstract() {
322 return (EAttribute) classDeclarationEClass.getEStructuralFeatures().get(0);
323 }
324
325 /**
326 * <!-- begin-user-doc -->
327 * <!-- end-user-doc -->
328 * @generated
329 */
330 public EReference getClassDeclaration_SuperTypes() {
331 return (EReference) classDeclarationEClass.getEStructuralFeatures().get(1);
332 }
333
334 /**
335 * <!-- begin-user-doc -->
336 * <!-- end-user-doc -->
337 * @generated
338 */
339 public EReference getClassDeclaration_ReferenceDeclarations() {
340 return (EReference) classDeclarationEClass.getEStructuralFeatures().get(2);
341 }
342
343 /**
344 * <!-- begin-user-doc -->
345 * <!-- end-user-doc -->
346 * @generated
347 */
348 public EClass getReferenceDeclaration() {
349 return referenceDeclarationEClass;
350 }
351
352 /**
353 * <!-- begin-user-doc -->
354 * <!-- end-user-doc -->
355 * @generated
356 */
357 public EReference getReferenceDeclaration_ReferenceType() {
358 return (EReference) referenceDeclarationEClass.getEStructuralFeatures().get(0);
359 }
360
361 /**
362 * <!-- begin-user-doc -->
363 * <!-- end-user-doc -->
364 * @generated
365 */
366 public EReference getReferenceDeclaration_Opposite() {
367 return (EReference) referenceDeclarationEClass.getEStructuralFeatures().get(1);
368 }
369
370 /**
371 * <!-- begin-user-doc -->
372 * <!-- end-user-doc -->
373 * @generated
374 */
375 public EAttribute getReferenceDeclaration_Containment() {
376 return (EAttribute) referenceDeclarationEClass.getEStructuralFeatures().get(2);
377 }
378
379 /**
380 * <!-- begin-user-doc -->
381 * <!-- end-user-doc -->
382 * @generated
383 */
384 public EReference getReferenceDeclaration_Multiplicity() {
385 return (EReference) referenceDeclarationEClass.getEStructuralFeatures().get(3);
386 }
387
388 /**
389 * <!-- begin-user-doc -->
390 * <!-- end-user-doc -->
391 * @generated
392 */
393 public EClass getNamedElement() {
394 return namedElementEClass;
395 }
396
397 /**
398 * <!-- begin-user-doc -->
399 * <!-- end-user-doc -->
400 * @generated
401 */
402 public EAttribute getNamedElement_Name() {
403 return (EAttribute) namedElementEClass.getEStructuralFeatures().get(0);
404 }
405
406 /**
407 * <!-- begin-user-doc -->
408 * <!-- end-user-doc -->
409 * @generated
410 */
411 public EClass getPredicateDefinition() {
412 return predicateDefinitionEClass;
413 }
414
415 /**
416 * <!-- begin-user-doc -->
417 * <!-- end-user-doc -->
418 * @generated
419 */
420 public EAttribute getPredicateDefinition_Error() {
421 return (EAttribute) predicateDefinitionEClass.getEStructuralFeatures().get(0);
422 }
423
424 /**
425 * <!-- begin-user-doc -->
426 * <!-- end-user-doc -->
427 * @generated
428 */
429 public EReference getPredicateDefinition_Parameters() {
430 return (EReference) predicateDefinitionEClass.getEStructuralFeatures().get(1);
431 }
432
433 /**
434 * <!-- begin-user-doc -->
435 * <!-- end-user-doc -->
436 * @generated
437 */
438 public EReference getPredicateDefinition_Bodies() {
439 return (EReference) predicateDefinitionEClass.getEStructuralFeatures().get(2);
440 }
441
442 /**
443 * <!-- begin-user-doc -->
444 * <!-- end-user-doc -->
445 * @generated
446 */
447 public EClass getParameter() {
448 return parameterEClass;
449 }
450
451 /**
452 * <!-- begin-user-doc -->
453 * <!-- end-user-doc -->
454 * @generated
455 */
456 public EReference getParameter_ParameterType() {
457 return (EReference) parameterEClass.getEStructuralFeatures().get(0);
458 }
459
460 /**
461 * <!-- begin-user-doc -->
462 * <!-- end-user-doc -->
463 * @generated
464 */
465 public EClass getVariable() {
466 return variableEClass;
467 }
468
469 /**
470 * <!-- begin-user-doc -->
471 * <!-- end-user-doc -->
472 * @generated
473 */
474 public EClass getConjunction() {
475 return conjunctionEClass;
476 }
477
478 /**
479 * <!-- begin-user-doc -->
480 * <!-- end-user-doc -->
481 * @generated
482 */
483 public EReference getConjunction_Literals() {
484 return (EReference) conjunctionEClass.getEStructuralFeatures().get(0);
485 }
486
487 /**
488 * <!-- begin-user-doc -->
489 * <!-- end-user-doc -->
490 * @generated
491 */
492 public EClass getLiteral() {
493 return literalEClass;
494 }
495
496 /**
497 * <!-- begin-user-doc -->
498 * <!-- end-user-doc -->
499 * @generated
500 */
501 public EClass getAtom() {
502 return atomEClass;
503 }
504
505 /**
506 * <!-- begin-user-doc -->
507 * <!-- end-user-doc -->
508 * @generated
509 */
510 public EReference getAtom_Relation() {
511 return (EReference) atomEClass.getEStructuralFeatures().get(0);
512 }
513
514 /**
515 * <!-- begin-user-doc -->
516 * <!-- end-user-doc -->
517 * @generated
518 */
519 public EReference getAtom_Arguments() {
520 return (EReference) atomEClass.getEStructuralFeatures().get(1);
521 }
522
523 /**
524 * <!-- begin-user-doc -->
525 * <!-- end-user-doc -->
526 * @generated
527 */
528 public EAttribute getAtom_TransitiveClosure() {
529 return (EAttribute) atomEClass.getEStructuralFeatures().get(2);
530 }
531
532 /**
533 * <!-- begin-user-doc -->
534 * <!-- end-user-doc -->
535 * @generated
536 */
537 public EClass getImplicitVariable() {
538 return implicitVariableEClass;
539 }
540
541 /**
542 * <!-- begin-user-doc -->
543 * <!-- end-user-doc -->
544 * @generated
545 */
546 public EClass getNegativeLiteral() {
547 return negativeLiteralEClass;
548 }
549
550 /**
551 * <!-- begin-user-doc -->
552 * <!-- end-user-doc -->
553 * @generated
554 */
555 public EReference getNegativeLiteral_Atom() {
556 return (EReference) negativeLiteralEClass.getEStructuralFeatures().get(0);
557 }
558
559 /**
560 * <!-- begin-user-doc -->
561 * <!-- end-user-doc -->
562 * @generated
563 */
564 public EClass getExistentialQuantifier() {
565 return existentialQuantifierEClass;
566 }
567
568 /**
569 * <!-- begin-user-doc -->
570 * <!-- end-user-doc -->
571 * @generated
572 */
573 public EReference getExistentialQuantifier_ImplicitVariables() {
574 return (EReference) existentialQuantifierEClass.getEStructuralFeatures().get(0);
575 }
576
577 /**
578 * <!-- begin-user-doc -->
579 * <!-- end-user-doc -->
580 * @generated
581 */
582 public EClass getAssertion() {
583 return assertionEClass;
584 }
585
586 /**
587 * <!-- begin-user-doc -->
588 * <!-- end-user-doc -->
589 * @generated
590 */
591 public EReference getAssertion_Relation() {
592 return (EReference) assertionEClass.getEStructuralFeatures().get(0);
593 }
594
595 /**
596 * <!-- begin-user-doc -->
597 * <!-- end-user-doc -->
598 * @generated
599 */
600 public EReference getAssertion_Arguments() {
601 return (EReference) assertionEClass.getEStructuralFeatures().get(1);
602 }
603
604 /**
605 * <!-- begin-user-doc -->
606 * <!-- end-user-doc -->
607 * @generated
608 */
609 public EAttribute getAssertion_Value() {
610 return (EAttribute) assertionEClass.getEStructuralFeatures().get(2);
611 }
612
613 /**
614 * <!-- begin-user-doc -->
615 * <!-- end-user-doc -->
616 * @generated
617 */
618 public EClass getNode() {
619 return nodeEClass;
620 }
621
622 /**
623 * <!-- begin-user-doc -->
624 * <!-- end-user-doc -->
625 * @generated
626 */
627 public EClass getScopeDeclaration() {
628 return scopeDeclarationEClass;
629 }
630
631 /**
632 * <!-- begin-user-doc -->
633 * <!-- end-user-doc -->
634 * @generated
635 */
636 public EReference getScopeDeclaration_TypeScopes() {
637 return (EReference) scopeDeclarationEClass.getEStructuralFeatures().get(0);
638 }
639
640 /**
641 * <!-- begin-user-doc -->
642 * <!-- end-user-doc -->
643 * @generated
644 */
645 public EClass getStatement() {
646 return statementEClass;
647 }
648
649 /**
650 * <!-- begin-user-doc -->
651 * <!-- end-user-doc -->
652 * @generated
653 */
654 public EClass getTypeScope() {
655 return typeScopeEClass;
656 }
657
658 /**
659 * <!-- begin-user-doc -->
660 * <!-- end-user-doc -->
661 * @generated
662 */
663 public EReference getTypeScope_TargetType() {
664 return (EReference) typeScopeEClass.getEStructuralFeatures().get(0);
665 }
666
667 /**
668 * <!-- begin-user-doc -->
669 * <!-- end-user-doc -->
670 * @generated
671 */
672 public EAttribute getTypeScope_Increment() {
673 return (EAttribute) typeScopeEClass.getEStructuralFeatures().get(1);
674 }
675
676 /**
677 * <!-- begin-user-doc -->
678 * <!-- end-user-doc -->
679 * @generated
680 */
681 public EReference getTypeScope_Multiplicity() {
682 return (EReference) typeScopeEClass.getEStructuralFeatures().get(2);
683 }
684
685 /**
686 * <!-- begin-user-doc -->
687 * <!-- end-user-doc -->
688 * @generated
689 */
690 public EClass getMultiplicity() {
691 return multiplicityEClass;
692 }
693
694 /**
695 * <!-- begin-user-doc -->
696 * <!-- end-user-doc -->
697 * @generated
698 */
699 public EClass getRangeMultiplicity() {
700 return rangeMultiplicityEClass;
701 }
702
703 /**
704 * <!-- begin-user-doc -->
705 * <!-- end-user-doc -->
706 * @generated
707 */
708 public EAttribute getRangeMultiplicity_LowerBound() {
709 return (EAttribute) rangeMultiplicityEClass.getEStructuralFeatures().get(0);
710 }
711
712 /**
713 * <!-- begin-user-doc -->
714 * <!-- end-user-doc -->
715 * @generated
716 */
717 public EAttribute getRangeMultiplicity_UpperBound() {
718 return (EAttribute) rangeMultiplicityEClass.getEStructuralFeatures().get(1);
719 }
720
721 /**
722 * <!-- begin-user-doc -->
723 * <!-- end-user-doc -->
724 * @generated
725 */
726 public EClass getExactMultiplicity() {
727 return exactMultiplicityEClass;
728 }
729
730 /**
731 * <!-- begin-user-doc -->
732 * <!-- end-user-doc -->
733 * @generated
734 */
735 public EAttribute getExactMultiplicity_ExactValue() {
736 return (EAttribute) exactMultiplicityEClass.getEStructuralFeatures().get(0);
737 }
738
739 /**
740 * <!-- begin-user-doc -->
741 * <!-- end-user-doc -->
742 * @generated
743 */
744 public EEnum getLogicValue() {
745 return logicValueEEnum;
746 }
747
748 /**
749 * <!-- begin-user-doc -->
750 * <!-- end-user-doc -->
751 * @generated
752 */
753 public ProblemFactory getProblemFactory() {
754 return (ProblemFactory) getEFactoryInstance();
755 }
756
757 /**
758 * <!-- begin-user-doc -->
759 * <!-- end-user-doc -->
760 * @generated
761 */
762 private boolean isCreated = false;
763
764 /**
765 * Creates the meta-model objects for the package. This method is
766 * guarded to have no affect on any invocation but its first.
767 * <!-- begin-user-doc -->
768 * <!-- end-user-doc -->
769 * @generated
770 */
771 public void createPackageContents() {
772 if (isCreated)
773 return;
774 isCreated = true;
775
776 // Create classes and their features
777 problemEClass = createEClass(PROBLEM);
778 createEReference(problemEClass, PROBLEM__NODES);
779 createEReference(problemEClass, PROBLEM__STATEMENTS);
780
781 relationEClass = createEClass(RELATION);
782
783 classDeclarationEClass = createEClass(CLASS_DECLARATION);
784 createEAttribute(classDeclarationEClass, CLASS_DECLARATION__ABSTRACT);
785 createEReference(classDeclarationEClass, CLASS_DECLARATION__SUPER_TYPES);
786 createEReference(classDeclarationEClass, CLASS_DECLARATION__REFERENCE_DECLARATIONS);
787
788 referenceDeclarationEClass = createEClass(REFERENCE_DECLARATION);
789 createEReference(referenceDeclarationEClass, REFERENCE_DECLARATION__REFERENCE_TYPE);
790 createEReference(referenceDeclarationEClass, REFERENCE_DECLARATION__OPPOSITE);
791 createEAttribute(referenceDeclarationEClass, REFERENCE_DECLARATION__CONTAINMENT);
792 createEReference(referenceDeclarationEClass, REFERENCE_DECLARATION__MULTIPLICITY);
793
794 namedElementEClass = createEClass(NAMED_ELEMENT);
795 createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME);
796
797 predicateDefinitionEClass = createEClass(PREDICATE_DEFINITION);
798 createEAttribute(predicateDefinitionEClass, PREDICATE_DEFINITION__ERROR);
799 createEReference(predicateDefinitionEClass, PREDICATE_DEFINITION__PARAMETERS);
800 createEReference(predicateDefinitionEClass, PREDICATE_DEFINITION__BODIES);
801
802 parameterEClass = createEClass(PARAMETER);
803 createEReference(parameterEClass, PARAMETER__PARAMETER_TYPE);
804
805 variableEClass = createEClass(VARIABLE);
806
807 conjunctionEClass = createEClass(CONJUNCTION);
808 createEReference(conjunctionEClass, CONJUNCTION__LITERALS);
809
810 literalEClass = createEClass(LITERAL);
811
812 atomEClass = createEClass(ATOM);
813 createEReference(atomEClass, ATOM__RELATION);
814 createEReference(atomEClass, ATOM__ARGUMENTS);
815 createEAttribute(atomEClass, ATOM__TRANSITIVE_CLOSURE);
816
817 implicitVariableEClass = createEClass(IMPLICIT_VARIABLE);
818
819 negativeLiteralEClass = createEClass(NEGATIVE_LITERAL);
820 createEReference(negativeLiteralEClass, NEGATIVE_LITERAL__ATOM);
821
822 existentialQuantifierEClass = createEClass(EXISTENTIAL_QUANTIFIER);
823 createEReference(existentialQuantifierEClass, EXISTENTIAL_QUANTIFIER__IMPLICIT_VARIABLES);
824
825 assertionEClass = createEClass(ASSERTION);
826 createEReference(assertionEClass, ASSERTION__RELATION);
827 createEReference(assertionEClass, ASSERTION__ARGUMENTS);
828 createEAttribute(assertionEClass, ASSERTION__VALUE);
829
830 nodeEClass = createEClass(NODE);
831
832 scopeDeclarationEClass = createEClass(SCOPE_DECLARATION);
833 createEReference(scopeDeclarationEClass, SCOPE_DECLARATION__TYPE_SCOPES);
834
835 statementEClass = createEClass(STATEMENT);
836
837 typeScopeEClass = createEClass(TYPE_SCOPE);
838 createEReference(typeScopeEClass, TYPE_SCOPE__TARGET_TYPE);
839 createEAttribute(typeScopeEClass, TYPE_SCOPE__INCREMENT);
840 createEReference(typeScopeEClass, TYPE_SCOPE__MULTIPLICITY);
841
842 multiplicityEClass = createEClass(MULTIPLICITY);
843
844 rangeMultiplicityEClass = createEClass(RANGE_MULTIPLICITY);
845 createEAttribute(rangeMultiplicityEClass, RANGE_MULTIPLICITY__LOWER_BOUND);
846 createEAttribute(rangeMultiplicityEClass, RANGE_MULTIPLICITY__UPPER_BOUND);
847
848 exactMultiplicityEClass = createEClass(EXACT_MULTIPLICITY);
849 createEAttribute(exactMultiplicityEClass, EXACT_MULTIPLICITY__EXACT_VALUE);
850
851 // Create enums
852 logicValueEEnum = createEEnum(LOGIC_VALUE);
853 }
854
855 /**
856 * <!-- begin-user-doc -->
857 * <!-- end-user-doc -->
858 * @generated
859 */
860 private boolean isInitialized = false;
861
862 /**
863 * Complete the initialization of the package and its meta-model. This
864 * method is guarded to have no affect on any invocation but its first.
865 * <!-- begin-user-doc -->
866 * <!-- end-user-doc -->
867 * @generated
868 */
869 public void initializePackageContents() {
870 if (isInitialized)
871 return;
872 isInitialized = true;
873
874 // Initialize package
875 setName(eNAME);
876 setNsPrefix(eNS_PREFIX);
877 setNsURI(eNS_URI);
878
879 // Create type parameters
880
881 // Set bounds for type parameters
882
883 // Add supertypes to classes
884 relationEClass.getESuperTypes().add(this.getNamedElement());
885 classDeclarationEClass.getESuperTypes().add(this.getRelation());
886 classDeclarationEClass.getESuperTypes().add(this.getStatement());
887 referenceDeclarationEClass.getESuperTypes().add(this.getRelation());
888 predicateDefinitionEClass.getESuperTypes().add(this.getRelation());
889 predicateDefinitionEClass.getESuperTypes().add(this.getStatement());
890 parameterEClass.getESuperTypes().add(this.getVariable());
891 variableEClass.getESuperTypes().add(this.getNamedElement());
892 conjunctionEClass.getESuperTypes().add(this.getExistentialQuantifier());
893 atomEClass.getESuperTypes().add(this.getLiteral());
894 implicitVariableEClass.getESuperTypes().add(this.getVariable());
895 negativeLiteralEClass.getESuperTypes().add(this.getExistentialQuantifier());
896 negativeLiteralEClass.getESuperTypes().add(this.getLiteral());
897 assertionEClass.getESuperTypes().add(this.getStatement());
898 nodeEClass.getESuperTypes().add(this.getNamedElement());
899 scopeDeclarationEClass.getESuperTypes().add(this.getStatement());
900 rangeMultiplicityEClass.getESuperTypes().add(this.getMultiplicity());
901 exactMultiplicityEClass.getESuperTypes().add(this.getMultiplicity());
902
903 // Initialize classes, features, and operations; add parameters
904 initEClass(problemEClass, Problem.class, "Problem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
905 initEReference(getProblem_Nodes(), this.getNode(), null, "nodes", null, 0, -1, Problem.class, !IS_TRANSIENT,
906 !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
907 IS_ORDERED);
908 initEReference(getProblem_Statements(), this.getStatement(), null, "statements", null, 0, -1, Problem.class,
909 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
910 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
911
912 initEClass(relationEClass, Relation.class, "Relation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
913
914 initEClass(classDeclarationEClass, ClassDeclaration.class, "ClassDeclaration", !IS_ABSTRACT, !IS_INTERFACE,
915 IS_GENERATED_INSTANCE_CLASS);
916 initEAttribute(getClassDeclaration_Abstract(), ecorePackage.getEBoolean(), "abstract", null, 0, 1,
917 ClassDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
918 !IS_DERIVED, IS_ORDERED);
919 initEReference(getClassDeclaration_SuperTypes(), this.getClassDeclaration(), null, "superTypes", null, 0, -1,
920 ClassDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
921 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
922 initEReference(getClassDeclaration_ReferenceDeclarations(), this.getReferenceDeclaration(), null,
923 "referenceDeclarations", null, 0, -1, ClassDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE,
924 IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
925
926 initEClass(referenceDeclarationEClass, ReferenceDeclaration.class, "ReferenceDeclaration", !IS_ABSTRACT,
927 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
928 initEReference(getReferenceDeclaration_ReferenceType(), this.getClassDeclaration(), null, "referenceType", null,
929 0, 1, ReferenceDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
930 IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
931 initEReference(getReferenceDeclaration_Opposite(), this.getReferenceDeclaration(), null, "opposite", null, 0, 1,
932 ReferenceDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
933 IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
934 initEAttribute(getReferenceDeclaration_Containment(), ecorePackage.getEBoolean(), "containment", null, 0, 1,
935 ReferenceDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
936 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
937 initEReference(getReferenceDeclaration_Multiplicity(), this.getMultiplicity(), null, "multiplicity", null, 0, 1,
938 ReferenceDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
939 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
940
941 initEClass(namedElementEClass, NamedElement.class, "NamedElement", IS_ABSTRACT, !IS_INTERFACE,
942 IS_GENERATED_INSTANCE_CLASS);
943 initEAttribute(getNamedElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, NamedElement.class,
944 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
945
946 initEClass(predicateDefinitionEClass, PredicateDefinition.class, "PredicateDefinition", !IS_ABSTRACT,
947 !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
948 initEAttribute(getPredicateDefinition_Error(), ecorePackage.getEBoolean(), "error", null, 0, 1,
949 PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID,
950 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
951 initEReference(getPredicateDefinition_Parameters(), this.getParameter(), null, "parameters", null, 0, -1,
952 PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
953 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
954 initEReference(getPredicateDefinition_Bodies(), this.getConjunction(), null, "bodies", null, 0, -1,
955 PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
956 !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
957
958 initEClass(parameterEClass, Parameter.class, "Parameter", !IS_ABSTRACT, !IS_INTERFACE,
959 IS_GENERATED_INSTANCE_CLASS);
960 initEReference(getParameter_ParameterType(), this.getClassDeclaration(), null, "parameterType", null, 0, 1,
961 Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
962 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
963
964 initEClass(variableEClass, Variable.class, "Variable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
965
966 initEClass(conjunctionEClass, Conjunction.class, "Conjunction", !IS_ABSTRACT, !IS_INTERFACE,
967 IS_GENERATED_INSTANCE_CLASS);
968 initEReference(getConjunction_Literals(), this.getLiteral(), null, "literals", null, 0, -1, Conjunction.class,
969 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
970 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
971
972 initEClass(literalEClass, Literal.class, "Literal", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
973
974 initEClass(atomEClass, Atom.class, "Atom", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
975 initEReference(getAtom_Relation(), this.getRelation(), null, "relation", null, 0, 1, Atom.class, !IS_TRANSIENT,
976 !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
977 IS_ORDERED);
978 initEReference(getAtom_Arguments(), this.getVariable(), null, "arguments", null, 0, -1, Atom.class,
979 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
980 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
981 initEAttribute(getAtom_TransitiveClosure(), ecorePackage.getEBoolean(), "transitiveClosure", null, 0, 1,
982 Atom.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
983 IS_ORDERED);
984
985 initEClass(implicitVariableEClass, ImplicitVariable.class, "ImplicitVariable", !IS_ABSTRACT, !IS_INTERFACE,
986 IS_GENERATED_INSTANCE_CLASS);
987
988 initEClass(negativeLiteralEClass, NegativeLiteral.class, "NegativeLiteral", !IS_ABSTRACT, !IS_INTERFACE,
989 IS_GENERATED_INSTANCE_CLASS);
990 initEReference(getNegativeLiteral_Atom(), this.getAtom(), null, "atom", null, 0, 1, NegativeLiteral.class,
991 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
992 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
993
994 initEClass(existentialQuantifierEClass, ExistentialQuantifier.class, "ExistentialQuantifier", IS_ABSTRACT,
995 IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
996 initEReference(getExistentialQuantifier_ImplicitVariables(), this.getImplicitVariable(), null,
997 "implicitVariables", null, 0, -1, ExistentialQuantifier.class, !IS_TRANSIENT, !IS_VOLATILE,
998 IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
999
1000 initEClass(assertionEClass, Assertion.class, "Assertion", !IS_ABSTRACT, !IS_INTERFACE,
1001 IS_GENERATED_INSTANCE_CLASS);
1002 initEReference(getAssertion_Relation(), this.getRelation(), null, "relation", null, 0, 1, Assertion.class,
1003 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
1004 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
1005 initEReference(getAssertion_Arguments(), this.getNode(), null, "arguments", null, 0, -1, Assertion.class,
1006 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
1007 IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
1008 initEAttribute(getAssertion_Value(), this.getLogicValue(), "value", null, 0, 1, Assertion.class, !IS_TRANSIENT,
1009 !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
1010
1011 initEClass(nodeEClass, Node.class, "Node", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
1012
1013 initEClass(scopeDeclarationEClass, ScopeDeclaration.class, "ScopeDeclaration", !IS_ABSTRACT, !IS_INTERFACE,
1014 IS_GENERATED_INSTANCE_CLASS);
1015 initEReference(getScopeDeclaration_TypeScopes(), this.getTypeScope(), null, "typeScopes", null, 0, -1,
1016 ScopeDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
1017 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
1018
1019 initEClass(statementEClass, Statement.class, "Statement", IS_ABSTRACT, IS_INTERFACE,
1020 IS_GENERATED_INSTANCE_CLASS);
1021
1022 initEClass(typeScopeEClass, TypeScope.class, "TypeScope", !IS_ABSTRACT, !IS_INTERFACE,
1023 IS_GENERATED_INSTANCE_CLASS);
1024 initEReference(getTypeScope_TargetType(), this.getClassDeclaration(), null, "targetType", null, 0, 1,
1025 TypeScope.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
1026 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
1027 initEAttribute(getTypeScope_Increment(), ecorePackage.getEBoolean(), "increment", null, 0, 1, TypeScope.class,
1028 !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
1029 initEReference(getTypeScope_Multiplicity(), this.getMultiplicity(), null, "multiplicity", null, 0, 1,
1030 TypeScope.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
1031 !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
1032
1033 initEClass(multiplicityEClass, Multiplicity.class, "Multiplicity", IS_ABSTRACT, !IS_INTERFACE,
1034 IS_GENERATED_INSTANCE_CLASS);
1035
1036 initEClass(rangeMultiplicityEClass, RangeMultiplicity.class, "RangeMultiplicity", !IS_ABSTRACT, !IS_INTERFACE,
1037 IS_GENERATED_INSTANCE_CLASS);
1038 initEAttribute(getRangeMultiplicity_LowerBound(), ecorePackage.getEInt(), "lowerBound", "0", 0, 1,
1039 RangeMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
1040 !IS_DERIVED, IS_ORDERED);
1041 initEAttribute(getRangeMultiplicity_UpperBound(), ecorePackage.getEInt(), "upperBound", "-1", 0, 1,
1042 RangeMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
1043 !IS_DERIVED, IS_ORDERED);
1044
1045 initEClass(exactMultiplicityEClass, ExactMultiplicity.class, "ExactMultiplicity", !IS_ABSTRACT, !IS_INTERFACE,
1046 IS_GENERATED_INSTANCE_CLASS);
1047 initEAttribute(getExactMultiplicity_ExactValue(), ecorePackage.getEInt(), "exactValue", "1", 0, 1,
1048 ExactMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
1049 !IS_DERIVED, IS_ORDERED);
1050
1051 // Initialize enums and add enum literals
1052 initEEnum(logicValueEEnum, LogicValue.class, "LogicValue");
1053 addEEnumLiteral(logicValueEEnum, LogicValue.TRUE);
1054 addEEnumLiteral(logicValueEEnum, LogicValue.FALSE);
1055 addEEnumLiteral(logicValueEEnum, LogicValue.UNKNOWN);
1056
1057 // Create resource
1058 createResource(eNS_URI);
1059 }
1060
1061} //ProblemPackageImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RangeMultiplicityImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RangeMultiplicityImpl.java
new file mode 100644
index 00000000..1122b5be
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RangeMultiplicityImpl.java
@@ -0,0 +1,219 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6
7import org.eclipse.emf.ecore.EClass;
8
9import org.eclipse.emf.ecore.impl.ENotificationImpl;
10
11import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
12import org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity;
13
14/**
15 * <!-- begin-user-doc -->
16 * An implementation of the model object '<em><b>Range Multiplicity</b></em>'.
17 * <!-- end-user-doc -->
18 * <p>
19 * The following features are implemented:
20 * </p>
21 * <ul>
22 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.RangeMultiplicityImpl#getLowerBound <em>Lower Bound</em>}</li>
23 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.RangeMultiplicityImpl#getUpperBound <em>Upper Bound</em>}</li>
24 * </ul>
25 *
26 * @generated
27 */
28public class RangeMultiplicityImpl extends MultiplicityImpl implements RangeMultiplicity {
29 /**
30 * The default value of the '{@link #getLowerBound() <em>Lower Bound</em>}' attribute.
31 * <!-- begin-user-doc -->
32 * <!-- end-user-doc -->
33 * @see #getLowerBound()
34 * @generated
35 * @ordered
36 */
37 protected static final int LOWER_BOUND_EDEFAULT = 0;
38
39 /**
40 * The cached value of the '{@link #getLowerBound() <em>Lower Bound</em>}' attribute.
41 * <!-- begin-user-doc -->
42 * <!-- end-user-doc -->
43 * @see #getLowerBound()
44 * @generated
45 * @ordered
46 */
47 protected int lowerBound = LOWER_BOUND_EDEFAULT;
48
49 /**
50 * The default value of the '{@link #getUpperBound() <em>Upper Bound</em>}' attribute.
51 * <!-- begin-user-doc -->
52 * <!-- end-user-doc -->
53 * @see #getUpperBound()
54 * @generated
55 * @ordered
56 */
57 protected static final int UPPER_BOUND_EDEFAULT = -1;
58
59 /**
60 * The cached value of the '{@link #getUpperBound() <em>Upper Bound</em>}' attribute.
61 * <!-- begin-user-doc -->
62 * <!-- end-user-doc -->
63 * @see #getUpperBound()
64 * @generated
65 * @ordered
66 */
67 protected int upperBound = UPPER_BOUND_EDEFAULT;
68
69 /**
70 * <!-- begin-user-doc -->
71 * <!-- end-user-doc -->
72 * @generated
73 */
74 protected RangeMultiplicityImpl() {
75 super();
76 }
77
78 /**
79 * <!-- begin-user-doc -->
80 * <!-- end-user-doc -->
81 * @generated
82 */
83 @Override
84 protected EClass eStaticClass() {
85 return ProblemPackage.Literals.RANGE_MULTIPLICITY;
86 }
87
88 /**
89 * <!-- begin-user-doc -->
90 * <!-- end-user-doc -->
91 * @generated
92 */
93 public int getLowerBound() {
94 return lowerBound;
95 }
96
97 /**
98 * <!-- begin-user-doc -->
99 * <!-- end-user-doc -->
100 * @generated
101 */
102 public void setLowerBound(int newLowerBound) {
103 int oldLowerBound = lowerBound;
104 lowerBound = newLowerBound;
105 if (eNotificationRequired())
106 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.RANGE_MULTIPLICITY__LOWER_BOUND,
107 oldLowerBound, lowerBound));
108 }
109
110 /**
111 * <!-- begin-user-doc -->
112 * <!-- end-user-doc -->
113 * @generated
114 */
115 public int getUpperBound() {
116 return upperBound;
117 }
118
119 /**
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @generated
123 */
124 public void setUpperBound(int newUpperBound) {
125 int oldUpperBound = upperBound;
126 upperBound = newUpperBound;
127 if (eNotificationRequired())
128 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.RANGE_MULTIPLICITY__UPPER_BOUND,
129 oldUpperBound, upperBound));
130 }
131
132 /**
133 * <!-- begin-user-doc -->
134 * <!-- end-user-doc -->
135 * @generated
136 */
137 @Override
138 public Object eGet(int featureID, boolean resolve, boolean coreType) {
139 switch (featureID) {
140 case ProblemPackage.RANGE_MULTIPLICITY__LOWER_BOUND:
141 return getLowerBound();
142 case ProblemPackage.RANGE_MULTIPLICITY__UPPER_BOUND:
143 return getUpperBound();
144 }
145 return super.eGet(featureID, resolve, coreType);
146 }
147
148 /**
149 * <!-- begin-user-doc -->
150 * <!-- end-user-doc -->
151 * @generated
152 */
153 @Override
154 public void eSet(int featureID, Object newValue) {
155 switch (featureID) {
156 case ProblemPackage.RANGE_MULTIPLICITY__LOWER_BOUND:
157 setLowerBound((Integer) newValue);
158 return;
159 case ProblemPackage.RANGE_MULTIPLICITY__UPPER_BOUND:
160 setUpperBound((Integer) newValue);
161 return;
162 }
163 super.eSet(featureID, newValue);
164 }
165
166 /**
167 * <!-- begin-user-doc -->
168 * <!-- end-user-doc -->
169 * @generated
170 */
171 @Override
172 public void eUnset(int featureID) {
173 switch (featureID) {
174 case ProblemPackage.RANGE_MULTIPLICITY__LOWER_BOUND:
175 setLowerBound(LOWER_BOUND_EDEFAULT);
176 return;
177 case ProblemPackage.RANGE_MULTIPLICITY__UPPER_BOUND:
178 setUpperBound(UPPER_BOUND_EDEFAULT);
179 return;
180 }
181 super.eUnset(featureID);
182 }
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 @Override
190 public boolean eIsSet(int featureID) {
191 switch (featureID) {
192 case ProblemPackage.RANGE_MULTIPLICITY__LOWER_BOUND:
193 return lowerBound != LOWER_BOUND_EDEFAULT;
194 case ProblemPackage.RANGE_MULTIPLICITY__UPPER_BOUND:
195 return upperBound != UPPER_BOUND_EDEFAULT;
196 }
197 return super.eIsSet(featureID);
198 }
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 @Override
206 public String toString() {
207 if (eIsProxy())
208 return super.toString();
209
210 StringBuilder result = new StringBuilder(super.toString());
211 result.append(" (lowerBound: ");
212 result.append(lowerBound);
213 result.append(", upperBound: ");
214 result.append(upperBound);
215 result.append(')');
216 return result.toString();
217 }
218
219} //RangeMultiplicityImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java
new file mode 100644
index 00000000..424db23d
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java
@@ -0,0 +1,379 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6import org.eclipse.emf.common.notify.NotificationChain;
7
8import org.eclipse.emf.ecore.EClass;
9import org.eclipse.emf.ecore.InternalEObject;
10
11import org.eclipse.emf.ecore.impl.ENotificationImpl;
12
13import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
14import org.eclipse.viatra.solver.language.model.problem.Multiplicity;
15import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
16import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration;
17
18/**
19 * <!-- begin-user-doc -->
20 * An implementation of the model object '<em><b>Reference Declaration</b></em>'.
21 * <!-- end-user-doc -->
22 * <p>
23 * The following features are implemented:
24 * </p>
25 * <ul>
26 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl#getReferenceType <em>Reference Type</em>}</li>
27 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl#getOpposite <em>Opposite</em>}</li>
28 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl#isContainment <em>Containment</em>}</li>
29 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl#getMultiplicity <em>Multiplicity</em>}</li>
30 * </ul>
31 *
32 * @generated
33 */
34public class ReferenceDeclarationImpl extends RelationImpl implements ReferenceDeclaration {
35 /**
36 * The cached value of the '{@link #getReferenceType() <em>Reference Type</em>}' reference.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @see #getReferenceType()
40 * @generated
41 * @ordered
42 */
43 protected ClassDeclaration referenceType;
44
45 /**
46 * The cached value of the '{@link #getOpposite() <em>Opposite</em>}' reference.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @see #getOpposite()
50 * @generated
51 * @ordered
52 */
53 protected ReferenceDeclaration opposite;
54
55 /**
56 * The default value of the '{@link #isContainment() <em>Containment</em>}' attribute.
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @see #isContainment()
60 * @generated
61 * @ordered
62 */
63 protected static final boolean CONTAINMENT_EDEFAULT = false;
64
65 /**
66 * The cached value of the '{@link #isContainment() <em>Containment</em>}' attribute.
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @see #isContainment()
70 * @generated
71 * @ordered
72 */
73 protected boolean containment = CONTAINMENT_EDEFAULT;
74
75 /**
76 * The cached value of the '{@link #getMultiplicity() <em>Multiplicity</em>}' containment reference.
77 * <!-- begin-user-doc -->
78 * <!-- end-user-doc -->
79 * @see #getMultiplicity()
80 * @generated
81 * @ordered
82 */
83 protected Multiplicity multiplicity;
84
85 /**
86 * <!-- begin-user-doc -->
87 * <!-- end-user-doc -->
88 * @generated
89 */
90 protected ReferenceDeclarationImpl() {
91 super();
92 }
93
94 /**
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @generated
98 */
99 @Override
100 protected EClass eStaticClass() {
101 return ProblemPackage.Literals.REFERENCE_DECLARATION;
102 }
103
104 /**
105 * <!-- begin-user-doc -->
106 * <!-- end-user-doc -->
107 * @generated
108 */
109 public ClassDeclaration getReferenceType() {
110 if (referenceType != null && referenceType.eIsProxy()) {
111 InternalEObject oldReferenceType = (InternalEObject) referenceType;
112 referenceType = (ClassDeclaration) eResolveProxy(oldReferenceType);
113 if (referenceType != oldReferenceType) {
114 if (eNotificationRequired())
115 eNotify(new ENotificationImpl(this, Notification.RESOLVE,
116 ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE, oldReferenceType, referenceType));
117 }
118 }
119 return referenceType;
120 }
121
122 /**
123 * <!-- begin-user-doc -->
124 * <!-- end-user-doc -->
125 * @generated
126 */
127 public ClassDeclaration basicGetReferenceType() {
128 return referenceType;
129 }
130
131 /**
132 * <!-- begin-user-doc -->
133 * <!-- end-user-doc -->
134 * @generated
135 */
136 public void setReferenceType(ClassDeclaration newReferenceType) {
137 ClassDeclaration oldReferenceType = referenceType;
138 referenceType = newReferenceType;
139 if (eNotificationRequired())
140 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE,
141 oldReferenceType, referenceType));
142 }
143
144 /**
145 * <!-- begin-user-doc -->
146 * <!-- end-user-doc -->
147 * @generated
148 */
149 public ReferenceDeclaration getOpposite() {
150 if (opposite != null && opposite.eIsProxy()) {
151 InternalEObject oldOpposite = (InternalEObject) opposite;
152 opposite = (ReferenceDeclaration) eResolveProxy(oldOpposite);
153 if (opposite != oldOpposite) {
154 if (eNotificationRequired())
155 eNotify(new ENotificationImpl(this, Notification.RESOLVE,
156 ProblemPackage.REFERENCE_DECLARATION__OPPOSITE, oldOpposite, opposite));
157 }
158 }
159 return opposite;
160 }
161
162 /**
163 * <!-- begin-user-doc -->
164 * <!-- end-user-doc -->
165 * @generated
166 */
167 public ReferenceDeclaration basicGetOpposite() {
168 return opposite;
169 }
170
171 /**
172 * <!-- begin-user-doc -->
173 * <!-- end-user-doc -->
174 * @generated
175 */
176 public void setOpposite(ReferenceDeclaration newOpposite) {
177 ReferenceDeclaration oldOpposite = opposite;
178 opposite = newOpposite;
179 if (eNotificationRequired())
180 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.REFERENCE_DECLARATION__OPPOSITE,
181 oldOpposite, opposite));
182 }
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 public boolean isContainment() {
190 return containment;
191 }
192
193 /**
194 * <!-- begin-user-doc -->
195 * <!-- end-user-doc -->
196 * @generated
197 */
198 public void setContainment(boolean newContainment) {
199 boolean oldContainment = containment;
200 containment = newContainment;
201 if (eNotificationRequired())
202 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.REFERENCE_DECLARATION__CONTAINMENT,
203 oldContainment, containment));
204 }
205
206 /**
207 * <!-- begin-user-doc -->
208 * <!-- end-user-doc -->
209 * @generated
210 */
211 public Multiplicity getMultiplicity() {
212 return multiplicity;
213 }
214
215 /**
216 * <!-- begin-user-doc -->
217 * <!-- end-user-doc -->
218 * @generated
219 */
220 public NotificationChain basicSetMultiplicity(Multiplicity newMultiplicity, NotificationChain msgs) {
221 Multiplicity oldMultiplicity = multiplicity;
222 multiplicity = newMultiplicity;
223 if (eNotificationRequired()) {
224 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
225 ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY, oldMultiplicity, newMultiplicity);
226 if (msgs == null)
227 msgs = notification;
228 else
229 msgs.add(notification);
230 }
231 return msgs;
232 }
233
234 /**
235 * <!-- begin-user-doc -->
236 * <!-- end-user-doc -->
237 * @generated
238 */
239 public void setMultiplicity(Multiplicity newMultiplicity) {
240 if (newMultiplicity != multiplicity) {
241 NotificationChain msgs = null;
242 if (multiplicity != null)
243 msgs = ((InternalEObject) multiplicity).eInverseRemove(this,
244 EOPPOSITE_FEATURE_BASE - ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY, null, msgs);
245 if (newMultiplicity != null)
246 msgs = ((InternalEObject) newMultiplicity).eInverseAdd(this,
247 EOPPOSITE_FEATURE_BASE - ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY, null, msgs);
248 msgs = basicSetMultiplicity(newMultiplicity, msgs);
249 if (msgs != null)
250 msgs.dispatch();
251 } else if (eNotificationRequired())
252 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY,
253 newMultiplicity, newMultiplicity));
254 }
255
256 /**
257 * <!-- begin-user-doc -->
258 * <!-- end-user-doc -->
259 * @generated
260 */
261 @Override
262 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
263 switch (featureID) {
264 case ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY:
265 return basicSetMultiplicity(null, msgs);
266 }
267 return super.eInverseRemove(otherEnd, featureID, msgs);
268 }
269
270 /**
271 * <!-- begin-user-doc -->
272 * <!-- end-user-doc -->
273 * @generated
274 */
275 @Override
276 public Object eGet(int featureID, boolean resolve, boolean coreType) {
277 switch (featureID) {
278 case ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE:
279 if (resolve)
280 return getReferenceType();
281 return basicGetReferenceType();
282 case ProblemPackage.REFERENCE_DECLARATION__OPPOSITE:
283 if (resolve)
284 return getOpposite();
285 return basicGetOpposite();
286 case ProblemPackage.REFERENCE_DECLARATION__CONTAINMENT:
287 return isContainment();
288 case ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY:
289 return getMultiplicity();
290 }
291 return super.eGet(featureID, resolve, coreType);
292 }
293
294 /**
295 * <!-- begin-user-doc -->
296 * <!-- end-user-doc -->
297 * @generated
298 */
299 @Override
300 public void eSet(int featureID, Object newValue) {
301 switch (featureID) {
302 case ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE:
303 setReferenceType((ClassDeclaration) newValue);
304 return;
305 case ProblemPackage.REFERENCE_DECLARATION__OPPOSITE:
306 setOpposite((ReferenceDeclaration) newValue);
307 return;
308 case ProblemPackage.REFERENCE_DECLARATION__CONTAINMENT:
309 setContainment((Boolean) newValue);
310 return;
311 case ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY:
312 setMultiplicity((Multiplicity) newValue);
313 return;
314 }
315 super.eSet(featureID, newValue);
316 }
317
318 /**
319 * <!-- begin-user-doc -->
320 * <!-- end-user-doc -->
321 * @generated
322 */
323 @Override
324 public void eUnset(int featureID) {
325 switch (featureID) {
326 case ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE:
327 setReferenceType((ClassDeclaration) null);
328 return;
329 case ProblemPackage.REFERENCE_DECLARATION__OPPOSITE:
330 setOpposite((ReferenceDeclaration) null);
331 return;
332 case ProblemPackage.REFERENCE_DECLARATION__CONTAINMENT:
333 setContainment(CONTAINMENT_EDEFAULT);
334 return;
335 case ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY:
336 setMultiplicity((Multiplicity) null);
337 return;
338 }
339 super.eUnset(featureID);
340 }
341
342 /**
343 * <!-- begin-user-doc -->
344 * <!-- end-user-doc -->
345 * @generated
346 */
347 @Override
348 public boolean eIsSet(int featureID) {
349 switch (featureID) {
350 case ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE:
351 return referenceType != null;
352 case ProblemPackage.REFERENCE_DECLARATION__OPPOSITE:
353 return opposite != null;
354 case ProblemPackage.REFERENCE_DECLARATION__CONTAINMENT:
355 return containment != CONTAINMENT_EDEFAULT;
356 case ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY:
357 return multiplicity != null;
358 }
359 return super.eIsSet(featureID);
360 }
361
362 /**
363 * <!-- begin-user-doc -->
364 * <!-- end-user-doc -->
365 * @generated
366 */
367 @Override
368 public String toString() {
369 if (eIsProxy())
370 return super.toString();
371
372 StringBuilder result = new StringBuilder(super.toString());
373 result.append(" (containment: ");
374 result.append(containment);
375 result.append(')');
376 return result.toString();
377 }
378
379} //ReferenceDeclarationImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RelationImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RelationImpl.java
new file mode 100644
index 00000000..20d43043
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RelationImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
8import org.eclipse.viatra.solver.language.model.problem.Relation;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Relation</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public abstract class RelationImpl extends NamedElementImpl implements Relation {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected RelationImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return ProblemPackage.Literals.RELATION;
35 }
36
37} //RelationImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ScopeDeclarationImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ScopeDeclarationImpl.java
new file mode 100644
index 00000000..f178d9e0
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ScopeDeclarationImpl.java
@@ -0,0 +1,153 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import java.util.Collection;
6
7import org.eclipse.emf.common.notify.NotificationChain;
8
9import org.eclipse.emf.common.util.EList;
10
11import org.eclipse.emf.ecore.EClass;
12import org.eclipse.emf.ecore.InternalEObject;
13
14import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
15
16import org.eclipse.emf.ecore.util.EObjectContainmentEList;
17import org.eclipse.emf.ecore.util.InternalEList;
18
19import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
20import org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration;
21import org.eclipse.viatra.solver.language.model.problem.TypeScope;
22
23/**
24 * <!-- begin-user-doc -->
25 * An implementation of the model object '<em><b>Scope Declaration</b></em>'.
26 * <!-- end-user-doc -->
27 * <p>
28 * The following features are implemented:
29 * </p>
30 * <ul>
31 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.ScopeDeclarationImpl#getTypeScopes <em>Type Scopes</em>}</li>
32 * </ul>
33 *
34 * @generated
35 */
36public class ScopeDeclarationImpl extends MinimalEObjectImpl.Container implements ScopeDeclaration {
37 /**
38 * The cached value of the '{@link #getTypeScopes() <em>Type Scopes</em>}' containment reference list.
39 * <!-- begin-user-doc -->
40 * <!-- end-user-doc -->
41 * @see #getTypeScopes()
42 * @generated
43 * @ordered
44 */
45 protected EList<TypeScope> typeScopes;
46
47 /**
48 * <!-- begin-user-doc -->
49 * <!-- end-user-doc -->
50 * @generated
51 */
52 protected ScopeDeclarationImpl() {
53 super();
54 }
55
56 /**
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @generated
60 */
61 @Override
62 protected EClass eStaticClass() {
63 return ProblemPackage.Literals.SCOPE_DECLARATION;
64 }
65
66 /**
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @generated
70 */
71 public EList<TypeScope> getTypeScopes() {
72 if (typeScopes == null) {
73 typeScopes = new EObjectContainmentEList<TypeScope>(TypeScope.class, this,
74 ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES);
75 }
76 return typeScopes;
77 }
78
79 /**
80 * <!-- begin-user-doc -->
81 * <!-- end-user-doc -->
82 * @generated
83 */
84 @Override
85 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
86 switch (featureID) {
87 case ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES:
88 return ((InternalEList<?>) getTypeScopes()).basicRemove(otherEnd, msgs);
89 }
90 return super.eInverseRemove(otherEnd, featureID, msgs);
91 }
92
93 /**
94 * <!-- begin-user-doc -->
95 * <!-- end-user-doc -->
96 * @generated
97 */
98 @Override
99 public Object eGet(int featureID, boolean resolve, boolean coreType) {
100 switch (featureID) {
101 case ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES:
102 return getTypeScopes();
103 }
104 return super.eGet(featureID, resolve, coreType);
105 }
106
107 /**
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @generated
111 */
112 @SuppressWarnings("unchecked")
113 @Override
114 public void eSet(int featureID, Object newValue) {
115 switch (featureID) {
116 case ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES:
117 getTypeScopes().clear();
118 getTypeScopes().addAll((Collection<? extends TypeScope>) newValue);
119 return;
120 }
121 super.eSet(featureID, newValue);
122 }
123
124 /**
125 * <!-- begin-user-doc -->
126 * <!-- end-user-doc -->
127 * @generated
128 */
129 @Override
130 public void eUnset(int featureID) {
131 switch (featureID) {
132 case ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES:
133 getTypeScopes().clear();
134 return;
135 }
136 super.eUnset(featureID);
137 }
138
139 /**
140 * <!-- begin-user-doc -->
141 * <!-- end-user-doc -->
142 * @generated
143 */
144 @Override
145 public boolean eIsSet(int featureID) {
146 switch (featureID) {
147 case ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES:
148 return typeScopes != null && !typeScopes.isEmpty();
149 }
150 return super.eIsSet(featureID);
151 }
152
153} //ScopeDeclarationImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/TypeScopeImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/TypeScopeImpl.java
new file mode 100644
index 00000000..608cc015
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/TypeScopeImpl.java
@@ -0,0 +1,317 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.common.notify.Notification;
6import org.eclipse.emf.common.notify.NotificationChain;
7
8import org.eclipse.emf.ecore.EClass;
9import org.eclipse.emf.ecore.InternalEObject;
10
11import org.eclipse.emf.ecore.impl.ENotificationImpl;
12import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
13
14import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
15import org.eclipse.viatra.solver.language.model.problem.Multiplicity;
16import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
17import org.eclipse.viatra.solver.language.model.problem.TypeScope;
18
19/**
20 * <!-- begin-user-doc -->
21 * An implementation of the model object '<em><b>Type Scope</b></em>'.
22 * <!-- end-user-doc -->
23 * <p>
24 * The following features are implemented:
25 * </p>
26 * <ul>
27 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl#getTargetType <em>Target Type</em>}</li>
28 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl#isIncrement <em>Increment</em>}</li>
29 * <li>{@link org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl#getMultiplicity <em>Multiplicity</em>}</li>
30 * </ul>
31 *
32 * @generated
33 */
34public class TypeScopeImpl extends MinimalEObjectImpl.Container implements TypeScope {
35 /**
36 * The cached value of the '{@link #getTargetType() <em>Target Type</em>}' reference.
37 * <!-- begin-user-doc -->
38 * <!-- end-user-doc -->
39 * @see #getTargetType()
40 * @generated
41 * @ordered
42 */
43 protected ClassDeclaration targetType;
44
45 /**
46 * The default value of the '{@link #isIncrement() <em>Increment</em>}' attribute.
47 * <!-- begin-user-doc -->
48 * <!-- end-user-doc -->
49 * @see #isIncrement()
50 * @generated
51 * @ordered
52 */
53 protected static final boolean INCREMENT_EDEFAULT = false;
54
55 /**
56 * The cached value of the '{@link #isIncrement() <em>Increment</em>}' attribute.
57 * <!-- begin-user-doc -->
58 * <!-- end-user-doc -->
59 * @see #isIncrement()
60 * @generated
61 * @ordered
62 */
63 protected boolean increment = INCREMENT_EDEFAULT;
64
65 /**
66 * The cached value of the '{@link #getMultiplicity() <em>Multiplicity</em>}' containment reference.
67 * <!-- begin-user-doc -->
68 * <!-- end-user-doc -->
69 * @see #getMultiplicity()
70 * @generated
71 * @ordered
72 */
73 protected Multiplicity multiplicity;
74
75 /**
76 * <!-- begin-user-doc -->
77 * <!-- end-user-doc -->
78 * @generated
79 */
80 protected TypeScopeImpl() {
81 super();
82 }
83
84 /**
85 * <!-- begin-user-doc -->
86 * <!-- end-user-doc -->
87 * @generated
88 */
89 @Override
90 protected EClass eStaticClass() {
91 return ProblemPackage.Literals.TYPE_SCOPE;
92 }
93
94 /**
95 * <!-- begin-user-doc -->
96 * <!-- end-user-doc -->
97 * @generated
98 */
99 public ClassDeclaration getTargetType() {
100 if (targetType != null && targetType.eIsProxy()) {
101 InternalEObject oldTargetType = (InternalEObject) targetType;
102 targetType = (ClassDeclaration) eResolveProxy(oldTargetType);
103 if (targetType != oldTargetType) {
104 if (eNotificationRequired())
105 eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.TYPE_SCOPE__TARGET_TYPE,
106 oldTargetType, targetType));
107 }
108 }
109 return targetType;
110 }
111
112 /**
113 * <!-- begin-user-doc -->
114 * <!-- end-user-doc -->
115 * @generated
116 */
117 public ClassDeclaration basicGetTargetType() {
118 return targetType;
119 }
120
121 /**
122 * <!-- begin-user-doc -->
123 * <!-- end-user-doc -->
124 * @generated
125 */
126 public void setTargetType(ClassDeclaration newTargetType) {
127 ClassDeclaration oldTargetType = targetType;
128 targetType = newTargetType;
129 if (eNotificationRequired())
130 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.TYPE_SCOPE__TARGET_TYPE, oldTargetType,
131 targetType));
132 }
133
134 /**
135 * <!-- begin-user-doc -->
136 * <!-- end-user-doc -->
137 * @generated
138 */
139 public boolean isIncrement() {
140 return increment;
141 }
142
143 /**
144 * <!-- begin-user-doc -->
145 * <!-- end-user-doc -->
146 * @generated
147 */
148 public void setIncrement(boolean newIncrement) {
149 boolean oldIncrement = increment;
150 increment = newIncrement;
151 if (eNotificationRequired())
152 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.TYPE_SCOPE__INCREMENT, oldIncrement,
153 increment));
154 }
155
156 /**
157 * <!-- begin-user-doc -->
158 * <!-- end-user-doc -->
159 * @generated
160 */
161 public Multiplicity getMultiplicity() {
162 return multiplicity;
163 }
164
165 /**
166 * <!-- begin-user-doc -->
167 * <!-- end-user-doc -->
168 * @generated
169 */
170 public NotificationChain basicSetMultiplicity(Multiplicity newMultiplicity, NotificationChain msgs) {
171 Multiplicity oldMultiplicity = multiplicity;
172 multiplicity = newMultiplicity;
173 if (eNotificationRequired()) {
174 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
175 ProblemPackage.TYPE_SCOPE__MULTIPLICITY, oldMultiplicity, newMultiplicity);
176 if (msgs == null)
177 msgs = notification;
178 else
179 msgs.add(notification);
180 }
181 return msgs;
182 }
183
184 /**
185 * <!-- begin-user-doc -->
186 * <!-- end-user-doc -->
187 * @generated
188 */
189 public void setMultiplicity(Multiplicity newMultiplicity) {
190 if (newMultiplicity != multiplicity) {
191 NotificationChain msgs = null;
192 if (multiplicity != null)
193 msgs = ((InternalEObject) multiplicity).eInverseRemove(this,
194 EOPPOSITE_FEATURE_BASE - ProblemPackage.TYPE_SCOPE__MULTIPLICITY, null, msgs);
195 if (newMultiplicity != null)
196 msgs = ((InternalEObject) newMultiplicity).eInverseAdd(this,
197 EOPPOSITE_FEATURE_BASE - ProblemPackage.TYPE_SCOPE__MULTIPLICITY, null, msgs);
198 msgs = basicSetMultiplicity(newMultiplicity, msgs);
199 if (msgs != null)
200 msgs.dispatch();
201 } else if (eNotificationRequired())
202 eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.TYPE_SCOPE__MULTIPLICITY,
203 newMultiplicity, newMultiplicity));
204 }
205
206 /**
207 * <!-- begin-user-doc -->
208 * <!-- end-user-doc -->
209 * @generated
210 */
211 @Override
212 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
213 switch (featureID) {
214 case ProblemPackage.TYPE_SCOPE__MULTIPLICITY:
215 return basicSetMultiplicity(null, msgs);
216 }
217 return super.eInverseRemove(otherEnd, featureID, msgs);
218 }
219
220 /**
221 * <!-- begin-user-doc -->
222 * <!-- end-user-doc -->
223 * @generated
224 */
225 @Override
226 public Object eGet(int featureID, boolean resolve, boolean coreType) {
227 switch (featureID) {
228 case ProblemPackage.TYPE_SCOPE__TARGET_TYPE:
229 if (resolve)
230 return getTargetType();
231 return basicGetTargetType();
232 case ProblemPackage.TYPE_SCOPE__INCREMENT:
233 return isIncrement();
234 case ProblemPackage.TYPE_SCOPE__MULTIPLICITY:
235 return getMultiplicity();
236 }
237 return super.eGet(featureID, resolve, coreType);
238 }
239
240 /**
241 * <!-- begin-user-doc -->
242 * <!-- end-user-doc -->
243 * @generated
244 */
245 @Override
246 public void eSet(int featureID, Object newValue) {
247 switch (featureID) {
248 case ProblemPackage.TYPE_SCOPE__TARGET_TYPE:
249 setTargetType((ClassDeclaration) newValue);
250 return;
251 case ProblemPackage.TYPE_SCOPE__INCREMENT:
252 setIncrement((Boolean) newValue);
253 return;
254 case ProblemPackage.TYPE_SCOPE__MULTIPLICITY:
255 setMultiplicity((Multiplicity) newValue);
256 return;
257 }
258 super.eSet(featureID, newValue);
259 }
260
261 /**
262 * <!-- begin-user-doc -->
263 * <!-- end-user-doc -->
264 * @generated
265 */
266 @Override
267 public void eUnset(int featureID) {
268 switch (featureID) {
269 case ProblemPackage.TYPE_SCOPE__TARGET_TYPE:
270 setTargetType((ClassDeclaration) null);
271 return;
272 case ProblemPackage.TYPE_SCOPE__INCREMENT:
273 setIncrement(INCREMENT_EDEFAULT);
274 return;
275 case ProblemPackage.TYPE_SCOPE__MULTIPLICITY:
276 setMultiplicity((Multiplicity) null);
277 return;
278 }
279 super.eUnset(featureID);
280 }
281
282 /**
283 * <!-- begin-user-doc -->
284 * <!-- end-user-doc -->
285 * @generated
286 */
287 @Override
288 public boolean eIsSet(int featureID) {
289 switch (featureID) {
290 case ProblemPackage.TYPE_SCOPE__TARGET_TYPE:
291 return targetType != null;
292 case ProblemPackage.TYPE_SCOPE__INCREMENT:
293 return increment != INCREMENT_EDEFAULT;
294 case ProblemPackage.TYPE_SCOPE__MULTIPLICITY:
295 return multiplicity != null;
296 }
297 return super.eIsSet(featureID);
298 }
299
300 /**
301 * <!-- begin-user-doc -->
302 * <!-- end-user-doc -->
303 * @generated
304 */
305 @Override
306 public String toString() {
307 if (eIsProxy())
308 return super.toString();
309
310 StringBuilder result = new StringBuilder(super.toString());
311 result.append(" (increment: ");
312 result.append(increment);
313 result.append(')');
314 return result.toString();
315 }
316
317} //TypeScopeImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java
new file mode 100644
index 00000000..0a8cde48
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java
@@ -0,0 +1,37 @@
1/**
2 */
3package org.eclipse.viatra.solver.language.model.problem.impl;
4
5import org.eclipse.emf.ecore.EClass;
6
7import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
8import org.eclipse.viatra.solver.language.model.problem.Variable;
9
10/**
11 * <!-- begin-user-doc -->
12 * An implementation of the model object '<em><b>Variable</b></em>'.
13 * <!-- end-user-doc -->
14 *
15 * @generated
16 */
17public abstract class VariableImpl extends NamedElementImpl implements Variable {
18 /**
19 * <!-- begin-user-doc -->
20 * <!-- end-user-doc -->
21 * @generated
22 */
23 protected VariableImpl() {
24 super();
25 }
26
27 /**
28 * <!-- begin-user-doc -->
29 * <!-- end-user-doc -->
30 * @generated
31 */
32 @Override
33 protected EClass eStaticClass() {
34 return ProblemPackage.Literals.VARIABLE;
35 }
36
37} //VariableImpl