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