getArguments();
/**
* Returns the value of the 'Value' attribute.
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/AssertionArgument.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/AssertionArgument.java
new file mode 100644
index 00000000..054b34a2
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/AssertionArgument.java
@@ -0,0 +1,18 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ *
+ * A representation of the model object 'Assertion Argument'.
+ *
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAssertionArgument()
+ * @model abstract="true"
+ * @generated
+ */
+public interface AssertionArgument extends EObject {
+} // AssertionArgument
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Constant.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Constant.java
new file mode 100644
index 00000000..89f12830
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Constant.java
@@ -0,0 +1,18 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ *
+ * A representation of the model object 'Constant'.
+ *
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getConstant()
+ * @model abstract="true"
+ * @generated
+ */
+public interface Constant extends EObject {
+} // Constant
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ConstantArgument.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ConstantArgument.java
new file mode 100644
index 00000000..96b631f0
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ConstantArgument.java
@@ -0,0 +1,44 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem;
+
+/**
+ *
+ * A representation of the model object 'Constant Argument'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.ConstantArgument#getConstant Constant}
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getConstantArgument()
+ * @model
+ * @generated
+ */
+public interface ConstantArgument extends Argument {
+ /**
+ * Returns the value of the 'Constant' containment reference.
+ *
+ *
+ * @return the value of the 'Constant' containment reference.
+ * @see #setConstant(Constant)
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getConstantArgument_Constant()
+ * @model containment="true"
+ * @generated
+ */
+ Constant getConstant();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ConstantArgument#getConstant Constant}' containment reference.
+ *
+ *
+ * @param value the new value of the 'Constant' containment reference.
+ * @see #getConstant()
+ * @generated
+ */
+ void setConstant(Constant value);
+
+} // ConstantArgument
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ConstantAssertionArgument.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ConstantAssertionArgument.java
new file mode 100644
index 00000000..fd40de62
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ConstantAssertionArgument.java
@@ -0,0 +1,44 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem;
+
+/**
+ *
+ * A representation of the model object 'Constant Assertion Argument'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument#getConstant Constant}
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getConstantAssertionArgument()
+ * @model
+ * @generated
+ */
+public interface ConstantAssertionArgument extends AssertionArgument {
+ /**
+ * Returns the value of the 'Constant' containment reference.
+ *
+ *
+ * @return the value of the 'Constant' containment reference.
+ * @see #setConstant(Constant)
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getConstantAssertionArgument_Constant()
+ * @model containment="true"
+ * @generated
+ */
+ Constant getConstant();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument#getConstant Constant}' containment reference.
+ *
+ *
+ * @param value the new value of the 'Constant' containment reference.
+ * @see #getConstant()
+ * @generated
+ */
+ void setConstant(Constant value);
+
+} // ConstantAssertionArgument
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/IntConstant.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/IntConstant.java
new file mode 100644
index 00000000..8c42d183
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/IntConstant.java
@@ -0,0 +1,45 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem;
+
+/**
+ *
+ * A representation of the model object 'Int Constant'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.IntConstant#getIntValue Int Value}
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getIntConstant()
+ * @model
+ * @generated
+ */
+public interface IntConstant extends Constant {
+ /**
+ * Returns the value of the 'Int Value' attribute.
+ * The default value is "0"
.
+ *
+ *
+ * @return the value of the 'Int Value' attribute.
+ * @see #setIntValue(int)
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getIntConstant_IntValue()
+ * @model default="0"
+ * @generated
+ */
+ int getIntValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.IntConstant#getIntValue Int Value}' attribute.
+ *
+ *
+ * @param value the new value of the 'Int Value' attribute.
+ * @see #getIntValue()
+ * @generated
+ */
+ void setIntValue(int value);
+
+} // IntConstant
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NodeAssertionArgument.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NodeAssertionArgument.java
new file mode 100644
index 00000000..fd006405
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NodeAssertionArgument.java
@@ -0,0 +1,44 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem;
+
+/**
+ *
+ * A representation of the model object 'Node Assertion Argument'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument#getNode Node}
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNodeAssertionArgument()
+ * @model
+ * @generated
+ */
+public interface NodeAssertionArgument extends AssertionArgument {
+ /**
+ * Returns the value of the 'Node' reference.
+ *
+ *
+ * @return the value of the 'Node' reference.
+ * @see #setNode(Node)
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNodeAssertionArgument_Node()
+ * @model
+ * @generated
+ */
+ Node getNode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument#getNode Node}' reference.
+ *
+ *
+ * @param value the new value of the 'Node' reference.
+ * @see #getNode()
+ * @generated
+ */
+ void setNode(Node value);
+
+} // NodeAssertionArgument
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NodeValueAssertion.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NodeValueAssertion.java
new file mode 100644
index 00000000..bfe5901a
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NodeValueAssertion.java
@@ -0,0 +1,67 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem;
+
+/**
+ *
+ * A representation of the model object 'Node Value Assertion'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion#getNode Node}
+ * - {@link org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion#getValue Value}
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNodeValueAssertion()
+ * @model
+ * @generated
+ */
+public interface NodeValueAssertion extends Statement {
+ /**
+ * Returns the value of the 'Node' reference.
+ *
+ *
+ * @return the value of the 'Node' reference.
+ * @see #setNode(Node)
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNodeValueAssertion_Node()
+ * @model
+ * @generated
+ */
+ Node getNode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion#getNode Node}' reference.
+ *
+ *
+ * @param value the new value of the 'Node' reference.
+ * @see #getNode()
+ * @generated
+ */
+ void setNode(Node value);
+
+ /**
+ * Returns the value of the 'Value' containment reference.
+ *
+ *
+ * @return the value of the 'Value' containment reference.
+ * @see #setValue(Constant)
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNodeValueAssertion_Value()
+ * @model containment="true"
+ * @generated
+ */
+ Constant getValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion#getValue Value}' containment reference.
+ *
+ *
+ * @param value the new value of the 'Value' containment reference.
+ * @see #getValue()
+ * @generated
+ */
+ void setValue(Constant value);
+
+} // NodeValueAssertion
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java
index e4332d19..bb97cbc9 100644
--- a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java
@@ -166,13 +166,13 @@ public interface ProblemFactory extends EFactory {
UnboundedMultiplicity createUnboundedMultiplicity();
/**
- * Returns a new object of class 'Argument'.
+ * Returns a new object of class 'Variable Or Node Argument'.
*
*
- * @return a new object of class 'Argument'.
+ * @return a new object of class 'Variable Or Node Argument'.
* @generated
*/
- Argument createArgument();
+ VariableOrNodeArgument createVariableOrNodeArgument();
/**
* Returns a new object of class 'Enum Declaration'.
@@ -183,6 +183,69 @@ public interface ProblemFactory extends EFactory {
*/
EnumDeclaration createEnumDeclaration();
+ /**
+ * Returns a new object of class 'Int Constant'.
+ *
+ *
+ * @return a new object of class 'Int Constant'.
+ * @generated
+ */
+ IntConstant createIntConstant();
+
+ /**
+ * Returns a new object of class 'Real Constant'.
+ *
+ *
+ * @return a new object of class 'Real Constant'.
+ * @generated
+ */
+ RealConstant createRealConstant();
+
+ /**
+ * Returns a new object of class 'String Constant'.
+ *
+ *
+ * @return a new object of class 'String Constant'.
+ * @generated
+ */
+ StringConstant createStringConstant();
+
+ /**
+ * Returns a new object of class 'Constant Argument'.
+ *
+ *
+ * @return a new object of class 'Constant Argument'.
+ * @generated
+ */
+ ConstantArgument createConstantArgument();
+
+ /**
+ * Returns a new object of class 'Node Assertion Argument'.
+ *
+ *
+ * @return a new object of class 'Node Assertion Argument'.
+ * @generated
+ */
+ NodeAssertionArgument createNodeAssertionArgument();
+
+ /**
+ * Returns a new object of class 'Constant Assertion Argument'.
+ *
+ *
+ * @return a new object of class 'Constant Assertion Argument'.
+ * @generated
+ */
+ ConstantAssertionArgument createConstantAssertionArgument();
+
+ /**
+ * Returns a new object of class 'Node Value Assertion'.
+ *
+ *
+ * @return a new object of class 'Node Value Assertion'.
+ * @generated
+ */
+ NodeValueAssertion createNodeValueAssertion();
+
/**
* Returns the package supported by this factory.
*
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java
index ec96501d..b711566a 100644
--- a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java
@@ -813,22 +813,22 @@ public interface ProblemPackage extends EPackage {
int ASSERTION__RELATION = STATEMENT_FEATURE_COUNT + 0;
/**
- * The feature id for the 'Arguments' reference list.
+ * The feature id for the 'Value' attribute.
*
*
* @generated
* @ordered
*/
- int ASSERTION__ARGUMENTS = STATEMENT_FEATURE_COUNT + 1;
+ int ASSERTION__VALUE = STATEMENT_FEATURE_COUNT + 1;
/**
- * The feature id for the 'Value' attribute.
+ * The feature id for the 'Arguments' containment reference list.
*
*
* @generated
* @ordered
*/
- int ASSERTION__VALUE = STATEMENT_FEATURE_COUNT + 2;
+ int ASSERTION__ARGUMENTS = STATEMENT_FEATURE_COUNT + 2;
/**
* The number of structural features of the 'Assertion' class.
@@ -1124,7 +1124,35 @@ public interface ProblemPackage extends EPackage {
* @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getArgument()
* @generated
*/
- int ARGUMENT = 23;
+ int ARGUMENT = 31;
+
+ /**
+ * The number of structural features of the 'Argument' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int ARGUMENT_FEATURE_COUNT = 0;
+
+ /**
+ * The number of operations of the 'Argument' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int ARGUMENT_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.VariableOrNodeArgumentImpl Variable Or Node Argument}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.VariableOrNodeArgumentImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getVariableOrNodeArgument()
+ * @generated
+ */
+ int VARIABLE_OR_NODE_ARGUMENT = 23;
/**
* The feature id for the 'Variable Or Node' reference.
@@ -1133,7 +1161,7 @@ public interface ProblemPackage extends EPackage {
* @generated
* @ordered
*/
- int ARGUMENT__VARIABLE_OR_NODE = 0;
+ int VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE = ARGUMENT_FEATURE_COUNT + 0;
/**
* The feature id for the 'Singleton Variable' containment reference.
@@ -1142,25 +1170,25 @@ public interface ProblemPackage extends EPackage {
* @generated
* @ordered
*/
- int ARGUMENT__SINGLETON_VARIABLE = 1;
+ int VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE = ARGUMENT_FEATURE_COUNT + 1;
/**
- * The number of structural features of the 'Argument' class.
+ * The number of structural features of the 'Variable Or Node Argument' class.
*
*
* @generated
* @ordered
*/
- int ARGUMENT_FEATURE_COUNT = 2;
+ int VARIABLE_OR_NODE_ARGUMENT_FEATURE_COUNT = ARGUMENT_FEATURE_COUNT + 2;
/**
- * The number of operations of the 'Argument' class.
+ * The number of operations of the 'Variable Or Node Argument' class.
*
*
* @generated
* @ordered
*/
- int ARGUMENT_OPERATION_COUNT = 0;
+ int VARIABLE_OR_NODE_ARGUMENT_OPERATION_COUNT = ARGUMENT_OPERATION_COUNT + 0;
/**
* The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.EnumDeclarationImpl Enum Declaration}' class.
@@ -1208,6 +1236,330 @@ public interface ProblemPackage extends EPackage {
*/
int ENUM_DECLARATION_OPERATION_COUNT = RELATION_OPERATION_COUNT + 0;
+ /**
+ * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ConstantImpl Constant}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ConstantImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getConstant()
+ * @generated
+ */
+ int CONSTANT = 26;
+
+ /**
+ * The number of structural features of the 'Constant' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_FEATURE_COUNT = 0;
+
+ /**
+ * The number of operations of the 'Constant' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.IntConstantImpl Int Constant}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.IntConstantImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getIntConstant()
+ * @generated
+ */
+ int INT_CONSTANT = 27;
+
+ /**
+ * The feature id for the 'Int Value' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int INT_CONSTANT__INT_VALUE = CONSTANT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the 'Int Constant' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int INT_CONSTANT_FEATURE_COUNT = CONSTANT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the 'Int Constant' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int INT_CONSTANT_OPERATION_COUNT = CONSTANT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.RealConstantImpl Real Constant}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.RealConstantImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getRealConstant()
+ * @generated
+ */
+ int REAL_CONSTANT = 28;
+
+ /**
+ * The feature id for the 'Real Value' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int REAL_CONSTANT__REAL_VALUE = CONSTANT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the 'Real Constant' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int REAL_CONSTANT_FEATURE_COUNT = CONSTANT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the 'Real Constant' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int REAL_CONSTANT_OPERATION_COUNT = CONSTANT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.StringConstantImpl String Constant}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.StringConstantImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getStringConstant()
+ * @generated
+ */
+ int STRING_CONSTANT = 29;
+
+ /**
+ * The feature id for the 'String Value' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int STRING_CONSTANT__STRING_VALUE = CONSTANT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the 'String Constant' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int STRING_CONSTANT_FEATURE_COUNT = CONSTANT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the 'String Constant' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int STRING_CONSTANT_OPERATION_COUNT = CONSTANT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ConstantArgumentImpl Constant Argument}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ConstantArgumentImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getConstantArgument()
+ * @generated
+ */
+ int CONSTANT_ARGUMENT = 30;
+
+ /**
+ * The feature id for the 'Constant' containment reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_ARGUMENT__CONSTANT = ARGUMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the 'Constant Argument' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_ARGUMENT_FEATURE_COUNT = ARGUMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the 'Constant Argument' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_ARGUMENT_OPERATION_COUNT = ARGUMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionArgumentImpl Assertion Argument}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.AssertionArgumentImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getAssertionArgument()
+ * @generated
+ */
+ int ASSERTION_ARGUMENT = 33;
+
+ /**
+ * The number of structural features of the 'Assertion Argument' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int ASSERTION_ARGUMENT_FEATURE_COUNT = 0;
+
+ /**
+ * The number of operations of the 'Assertion Argument' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int ASSERTION_ARGUMENT_OPERATION_COUNT = 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NodeAssertionArgumentImpl Node Assertion Argument}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.NodeAssertionArgumentImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNodeAssertionArgument()
+ * @generated
+ */
+ int NODE_ASSERTION_ARGUMENT = 32;
+
+ /**
+ * The feature id for the 'Node' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_ASSERTION_ARGUMENT__NODE = ASSERTION_ARGUMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the 'Node Assertion Argument' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_ASSERTION_ARGUMENT_FEATURE_COUNT = ASSERTION_ARGUMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the 'Node Assertion Argument' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_ASSERTION_ARGUMENT_OPERATION_COUNT = ASSERTION_ARGUMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ConstantAssertionArgumentImpl Constant Assertion Argument}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ConstantAssertionArgumentImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getConstantAssertionArgument()
+ * @generated
+ */
+ int CONSTANT_ASSERTION_ARGUMENT = 34;
+
+ /**
+ * The feature id for the 'Constant' containment reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_ASSERTION_ARGUMENT__CONSTANT = ASSERTION_ARGUMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the 'Constant Assertion Argument' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_ASSERTION_ARGUMENT_FEATURE_COUNT = ASSERTION_ARGUMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the 'Constant Assertion Argument' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CONSTANT_ASSERTION_ARGUMENT_OPERATION_COUNT = ASSERTION_ARGUMENT_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NodeValueAssertionImpl Node Value Assertion}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.NodeValueAssertionImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNodeValueAssertion()
+ * @generated
+ */
+ int NODE_VALUE_ASSERTION = 35;
+
+ /**
+ * The feature id for the 'Node' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_VALUE_ASSERTION__NODE = STATEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the 'Value' containment reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_VALUE_ASSERTION__VALUE = STATEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The number of structural features of the 'Node Value Assertion' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_VALUE_ASSERTION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The number of operations of the 'Node Value Assertion' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int NODE_VALUE_ASSERTION_OPERATION_COUNT = STATEMENT_OPERATION_COUNT + 0;
+
/**
* The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.LogicValue Logic Value}' enum.
*
@@ -1216,7 +1568,7 @@ public interface ProblemPackage extends EPackage {
* @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getLogicValue()
* @generated
*/
- int LOGIC_VALUE = 26;
+ int LOGIC_VALUE = 36;
/**
* Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Problem Problem}'.
@@ -1611,10 +1963,10 @@ public interface ProblemPackage extends EPackage {
EReference getAssertion_Relation();
/**
- * Returns the meta object for the reference list '{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getArguments Arguments}'.
+ * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getArguments Arguments}'.
*
*
- * @return the meta object for the reference list 'Arguments'.
+ * @return the meta object for the containment reference list 'Arguments'.
* @see org.eclipse.viatra.solver.language.model.problem.Assertion#getArguments()
* @see #getAssertion()
* @generated
@@ -1789,6 +2141,38 @@ public interface ProblemPackage extends EPackage {
*/
EClass getUnboundedMultiplicity();
+ /**
+ * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument Variable Or Node Argument}'.
+ *
+ *
+ * @return the meta object for class 'Variable Or Node Argument'.
+ * @see org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument
+ * @generated
+ */
+ EClass getVariableOrNodeArgument();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument#getVariableOrNode Variable Or Node}'.
+ *
+ *
+ * @return the meta object for the reference 'Variable Or Node'.
+ * @see org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument#getVariableOrNode()
+ * @see #getVariableOrNodeArgument()
+ * @generated
+ */
+ EReference getVariableOrNodeArgument_VariableOrNode();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument#getSingletonVariable Singleton Variable}'.
+ *
+ *
+ * @return the meta object for the containment reference 'Singleton Variable'.
+ * @see org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument#getSingletonVariable()
+ * @see #getVariableOrNodeArgument()
+ * @generated
+ */
+ EReference getVariableOrNodeArgument_SingletonVariable();
+
/**
* Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Argument Argument}'.
*
@@ -1800,26 +2184,88 @@ public interface ProblemPackage extends EPackage {
EClass getArgument();
/**
- * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.Argument#getVariableOrNode Variable Or Node}'.
+ * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument Node Assertion Argument}'.
*
*
- * @return the meta object for the reference 'Variable Or Node'.
- * @see org.eclipse.viatra.solver.language.model.problem.Argument#getVariableOrNode()
- * @see #getArgument()
+ * @return the meta object for class 'Node Assertion Argument'.
+ * @see org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument
* @generated
*/
- EReference getArgument_VariableOrNode();
+ EClass getNodeAssertionArgument();
/**
- * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.Argument#getSingletonVariable Singleton Variable}'.
+ * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument#getNode Node}'.
*
*
- * @return the meta object for the containment reference 'Singleton Variable'.
- * @see org.eclipse.viatra.solver.language.model.problem.Argument#getSingletonVariable()
- * @see #getArgument()
+ * @return the meta object for the reference 'Node'.
+ * @see org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument#getNode()
+ * @see #getNodeAssertionArgument()
* @generated
*/
- EReference getArgument_SingletonVariable();
+ EReference getNodeAssertionArgument_Node();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.AssertionArgument Assertion Argument}'.
+ *
+ *
+ * @return the meta object for class 'Assertion Argument'.
+ * @see org.eclipse.viatra.solver.language.model.problem.AssertionArgument
+ * @generated
+ */
+ EClass getAssertionArgument();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument Constant Assertion Argument}'.
+ *
+ *
+ * @return the meta object for class 'Constant Assertion Argument'.
+ * @see org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument
+ * @generated
+ */
+ EClass getConstantAssertionArgument();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument#getConstant Constant}'.
+ *
+ *
+ * @return the meta object for the containment reference 'Constant'.
+ * @see org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument#getConstant()
+ * @see #getConstantAssertionArgument()
+ * @generated
+ */
+ EReference getConstantAssertionArgument_Constant();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion Node Value Assertion}'.
+ *
+ *
+ * @return the meta object for class 'Node Value Assertion'.
+ * @see org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion
+ * @generated
+ */
+ EClass getNodeValueAssertion();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion#getNode Node}'.
+ *
+ *
+ * @return the meta object for the reference 'Node'.
+ * @see org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion#getNode()
+ * @see #getNodeValueAssertion()
+ * @generated
+ */
+ EReference getNodeValueAssertion_Node();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion#getValue Value}'.
+ *
+ *
+ * @return the meta object for the containment reference 'Value'.
+ * @see org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion#getValue()
+ * @see #getNodeValueAssertion()
+ * @generated
+ */
+ EReference getNodeValueAssertion_Value();
/**
* Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.EnumDeclaration Enum Declaration}'.
@@ -1852,6 +2298,100 @@ public interface ProblemPackage extends EPackage {
*/
EClass getVariableOrNode();
+ /**
+ * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Constant Constant}'.
+ *
+ *
+ * @return the meta object for class 'Constant'.
+ * @see org.eclipse.viatra.solver.language.model.problem.Constant
+ * @generated
+ */
+ EClass getConstant();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.IntConstant Int Constant}'.
+ *
+ *
+ * @return the meta object for class 'Int Constant'.
+ * @see org.eclipse.viatra.solver.language.model.problem.IntConstant
+ * @generated
+ */
+ EClass getIntConstant();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.IntConstant#getIntValue Int Value}'.
+ *
+ *
+ * @return the meta object for the attribute 'Int Value'.
+ * @see org.eclipse.viatra.solver.language.model.problem.IntConstant#getIntValue()
+ * @see #getIntConstant()
+ * @generated
+ */
+ EAttribute getIntConstant_IntValue();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.RealConstant Real Constant}'.
+ *
+ *
+ * @return the meta object for class 'Real Constant'.
+ * @see org.eclipse.viatra.solver.language.model.problem.RealConstant
+ * @generated
+ */
+ EClass getRealConstant();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.RealConstant#getRealValue Real Value}'.
+ *
+ *
+ * @return the meta object for the attribute 'Real Value'.
+ * @see org.eclipse.viatra.solver.language.model.problem.RealConstant#getRealValue()
+ * @see #getRealConstant()
+ * @generated
+ */
+ EAttribute getRealConstant_RealValue();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.StringConstant String Constant}'.
+ *
+ *
+ * @return the meta object for class 'String Constant'.
+ * @see org.eclipse.viatra.solver.language.model.problem.StringConstant
+ * @generated
+ */
+ EClass getStringConstant();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.StringConstant#getStringValue String Value}'.
+ *
+ *
+ * @return the meta object for the attribute 'String Value'.
+ * @see org.eclipse.viatra.solver.language.model.problem.StringConstant#getStringValue()
+ * @see #getStringConstant()
+ * @generated
+ */
+ EAttribute getStringConstant_StringValue();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ConstantArgument Constant Argument}'.
+ *
+ *
+ * @return the meta object for class 'Constant Argument'.
+ * @see org.eclipse.viatra.solver.language.model.problem.ConstantArgument
+ * @generated
+ */
+ EClass getConstantArgument();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.ConstantArgument#getConstant Constant}'.
+ *
+ *
+ * @return the meta object for the containment reference 'Constant'.
+ * @see org.eclipse.viatra.solver.language.model.problem.ConstantArgument#getConstant()
+ * @see #getConstantArgument()
+ * @generated
+ */
+ EReference getConstantArgument_Constant();
+
/**
* Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.model.problem.LogicValue Logic Value}'.
*
@@ -2212,7 +2752,7 @@ public interface ProblemPackage extends EPackage {
EReference ASSERTION__RELATION = eINSTANCE.getAssertion_Relation();
/**
- * The meta object literal for the 'Arguments' reference list feature.
+ * The meta object literal for the 'Arguments' containment reference list feature.
*
*
* @generated
@@ -2363,6 +2903,33 @@ public interface ProblemPackage extends EPackage {
*/
EClass UNBOUNDED_MULTIPLICITY = eINSTANCE.getUnboundedMultiplicity();
+ /**
+ * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.VariableOrNodeArgumentImpl Variable Or Node Argument}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.VariableOrNodeArgumentImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getVariableOrNodeArgument()
+ * @generated
+ */
+ EClass VARIABLE_OR_NODE_ARGUMENT = eINSTANCE.getVariableOrNodeArgument();
+
+ /**
+ * The meta object literal for the 'Variable Or Node' reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE = eINSTANCE.getVariableOrNodeArgument_VariableOrNode();
+
+ /**
+ * The meta object literal for the 'Singleton Variable' containment reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE = eINSTANCE
+ .getVariableOrNodeArgument_SingletonVariable();
+
/**
* The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ArgumentImpl Argument}' class.
*
@@ -2374,20 +2941,76 @@ public interface ProblemPackage extends EPackage {
EClass ARGUMENT = eINSTANCE.getArgument();
/**
- * The meta object literal for the 'Variable Or Node' reference feature.
+ * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NodeAssertionArgumentImpl Node Assertion Argument}' class.
*
*
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.NodeAssertionArgumentImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNodeAssertionArgument()
* @generated
*/
- EReference ARGUMENT__VARIABLE_OR_NODE = eINSTANCE.getArgument_VariableOrNode();
+ EClass NODE_ASSERTION_ARGUMENT = eINSTANCE.getNodeAssertionArgument();
/**
- * The meta object literal for the 'Singleton Variable' containment reference feature.
+ * The meta object literal for the 'Node' reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference NODE_ASSERTION_ARGUMENT__NODE = eINSTANCE.getNodeAssertionArgument_Node();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionArgumentImpl Assertion Argument}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.AssertionArgumentImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getAssertionArgument()
+ * @generated
+ */
+ EClass ASSERTION_ARGUMENT = eINSTANCE.getAssertionArgument();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ConstantAssertionArgumentImpl Constant Assertion Argument}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ConstantAssertionArgumentImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getConstantAssertionArgument()
+ * @generated
+ */
+ EClass CONSTANT_ASSERTION_ARGUMENT = eINSTANCE.getConstantAssertionArgument();
+
+ /**
+ * The meta object literal for the 'Constant' containment reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference CONSTANT_ASSERTION_ARGUMENT__CONSTANT = eINSTANCE.getConstantAssertionArgument_Constant();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NodeValueAssertionImpl Node Value Assertion}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.NodeValueAssertionImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNodeValueAssertion()
+ * @generated
+ */
+ EClass NODE_VALUE_ASSERTION = eINSTANCE.getNodeValueAssertion();
+
+ /**
+ * The meta object literal for the 'Node' reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference NODE_VALUE_ASSERTION__NODE = eINSTANCE.getNodeValueAssertion_Node();
+
+ /**
+ * The meta object literal for the 'Value' containment reference feature.
*
*
* @generated
*/
- EReference ARGUMENT__SINGLETON_VARIABLE = eINSTANCE.getArgument_SingletonVariable();
+ EReference NODE_VALUE_ASSERTION__VALUE = eINSTANCE.getNodeValueAssertion_Value();
/**
* The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.EnumDeclarationImpl Enum Declaration}' class.
@@ -2417,6 +3040,88 @@ public interface ProblemPackage extends EPackage {
*/
EClass VARIABLE_OR_NODE = eINSTANCE.getVariableOrNode();
+ /**
+ * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ConstantImpl Constant}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ConstantImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getConstant()
+ * @generated
+ */
+ EClass CONSTANT = eINSTANCE.getConstant();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.IntConstantImpl Int Constant}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.IntConstantImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getIntConstant()
+ * @generated
+ */
+ EClass INT_CONSTANT = eINSTANCE.getIntConstant();
+
+ /**
+ * The meta object literal for the 'Int Value' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute INT_CONSTANT__INT_VALUE = eINSTANCE.getIntConstant_IntValue();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.RealConstantImpl Real Constant}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.RealConstantImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getRealConstant()
+ * @generated
+ */
+ EClass REAL_CONSTANT = eINSTANCE.getRealConstant();
+
+ /**
+ * The meta object literal for the 'Real Value' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute REAL_CONSTANT__REAL_VALUE = eINSTANCE.getRealConstant_RealValue();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.StringConstantImpl String Constant}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.StringConstantImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getStringConstant()
+ * @generated
+ */
+ EClass STRING_CONSTANT = eINSTANCE.getStringConstant();
+
+ /**
+ * The meta object literal for the 'String Value' attribute feature.
+ *
+ *
+ * @generated
+ */
+ EAttribute STRING_CONSTANT__STRING_VALUE = eINSTANCE.getStringConstant_StringValue();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ConstantArgumentImpl Constant Argument}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ConstantArgumentImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getConstantArgument()
+ * @generated
+ */
+ EClass CONSTANT_ARGUMENT = eINSTANCE.getConstantArgument();
+
+ /**
+ * The meta object literal for the 'Constant' containment reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference CONSTANT_ARGUMENT__CONSTANT = eINSTANCE.getConstantArgument_Constant();
+
/**
* The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.LogicValue Logic Value}' enum.
*
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RealConstant.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RealConstant.java
new file mode 100644
index 00000000..7ece8fb9
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RealConstant.java
@@ -0,0 +1,45 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem;
+
+/**
+ *
+ * A representation of the model object 'Real Constant'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.RealConstant#getRealValue Real Value}
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getRealConstant()
+ * @model
+ * @generated
+ */
+public interface RealConstant extends Constant {
+ /**
+ * Returns the value of the 'Real Value' attribute.
+ * The default value is "0.0"
.
+ *
+ *
+ * @return the value of the 'Real Value' attribute.
+ * @see #setRealValue(double)
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getRealConstant_RealValue()
+ * @model default="0.0"
+ * @generated
+ */
+ double getRealValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.RealConstant#getRealValue Real Value}' attribute.
+ *
+ *
+ * @param value the new value of the 'Real Value' attribute.
+ * @see #getRealValue()
+ * @generated
+ */
+ void setRealValue(double value);
+
+} // RealConstant
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/StringConstant.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/StringConstant.java
new file mode 100644
index 00000000..5a6c6ec8
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/StringConstant.java
@@ -0,0 +1,44 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem;
+
+/**
+ *
+ * A representation of the model object 'String Constant'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.StringConstant#getStringValue String Value}
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getStringConstant()
+ * @model
+ * @generated
+ */
+public interface StringConstant extends Constant {
+ /**
+ * Returns the value of the 'String Value' attribute.
+ *
+ *
+ * @return the value of the 'String Value' attribute.
+ * @see #setStringValue(String)
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getStringConstant_StringValue()
+ * @model
+ * @generated
+ */
+ String getStringValue();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.StringConstant#getStringValue String Value}' attribute.
+ *
+ *
+ * @param value the new value of the 'String Value' attribute.
+ * @see #getStringValue()
+ * @generated
+ */
+ void setStringValue(String value);
+
+} // StringConstant
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/VariableOrNodeArgument.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/VariableOrNodeArgument.java
new file mode 100644
index 00000000..02032585
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/VariableOrNodeArgument.java
@@ -0,0 +1,67 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem;
+
+/**
+ *
+ * A representation of the model object 'Variable Or Node Argument'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument#getVariableOrNode Variable Or Node}
+ * - {@link org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument#getSingletonVariable Singleton Variable}
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getVariableOrNodeArgument()
+ * @model
+ * @generated
+ */
+public interface VariableOrNodeArgument extends Argument {
+ /**
+ * Returns the value of the 'Variable Or Node' reference.
+ *
+ *
+ * @return the value of the 'Variable Or Node' reference.
+ * @see #setVariableOrNode(VariableOrNode)
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getVariableOrNodeArgument_VariableOrNode()
+ * @model
+ * @generated
+ */
+ VariableOrNode getVariableOrNode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument#getVariableOrNode Variable Or Node}' reference.
+ *
+ *
+ * @param value the new value of the 'Variable Or Node' reference.
+ * @see #getVariableOrNode()
+ * @generated
+ */
+ void setVariableOrNode(VariableOrNode value);
+
+ /**
+ * Returns the value of the 'Singleton Variable' containment reference.
+ *
+ *
+ * @return the value of the 'Singleton Variable' containment reference.
+ * @see #setSingletonVariable(ImplicitVariable)
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getVariableOrNodeArgument_SingletonVariable()
+ * @model containment="true"
+ * @generated
+ */
+ ImplicitVariable getSingletonVariable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument#getSingletonVariable Singleton Variable}' containment reference.
+ *
+ *
+ * @param value the new value of the 'Singleton Variable' containment reference.
+ * @see #getSingletonVariable()
+ * @generated
+ */
+ void setSingletonVariable(ImplicitVariable value);
+
+} // VariableOrNodeArgument
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
index f7d045ca..68b23c09 100644
--- 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
@@ -2,55 +2,20 @@
*/
package org.eclipse.viatra.solver.language.model.problem.impl;
-import org.eclipse.emf.common.notify.Notification;
-import org.eclipse.emf.common.notify.NotificationChain;
-
import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.InternalEObject;
-
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
import org.eclipse.viatra.solver.language.model.problem.Argument;
-import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable;
import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
-import org.eclipse.viatra.solver.language.model.problem.VariableOrNode;
/**
*
* An implementation of the model object 'Argument'.
*
- *
- * The following features are implemented:
- *
- *
- * - {@link org.eclipse.viatra.solver.language.model.problem.impl.ArgumentImpl#getVariableOrNode Variable Or Node}
- * - {@link org.eclipse.viatra.solver.language.model.problem.impl.ArgumentImpl#getSingletonVariable Singleton Variable}
- *
*
* @generated
*/
-public class ArgumentImpl extends MinimalEObjectImpl.Container implements Argument {
- /**
- * The cached value of the '{@link #getVariableOrNode() Variable Or Node}' reference.
- *
- *
- * @see #getVariableOrNode()
- * @generated
- * @ordered
- */
- protected VariableOrNode variableOrNode;
-
- /**
- * The cached value of the '{@link #getSingletonVariable() Singleton Variable}' containment reference.
- *
- *
- * @see #getSingletonVariable()
- * @generated
- * @ordered
- */
- protected ImplicitVariable singletonVariable;
-
+public abstract class ArgumentImpl extends MinimalEObjectImpl.Container implements Argument {
/**
*
*
@@ -70,178 +35,4 @@ public class ArgumentImpl extends MinimalEObjectImpl.Container implements Argume
return ProblemPackage.Literals.ARGUMENT;
}
- /**
- *
- *
- * @generated
- */
- public VariableOrNode getVariableOrNode() {
- if (variableOrNode != null && variableOrNode.eIsProxy()) {
- InternalEObject oldVariableOrNode = (InternalEObject) variableOrNode;
- variableOrNode = (VariableOrNode) eResolveProxy(oldVariableOrNode);
- if (variableOrNode != oldVariableOrNode) {
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.ARGUMENT__VARIABLE_OR_NODE,
- oldVariableOrNode, variableOrNode));
- }
- }
- return variableOrNode;
- }
-
- /**
- *
- *
- * @generated
- */
- public VariableOrNode basicGetVariableOrNode() {
- return variableOrNode;
- }
-
- /**
- *
- *
- * @generated
- */
- public void setVariableOrNode(VariableOrNode newVariableOrNode) {
- VariableOrNode oldVariableOrNode = variableOrNode;
- variableOrNode = newVariableOrNode;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ARGUMENT__VARIABLE_OR_NODE,
- oldVariableOrNode, variableOrNode));
- }
-
- /**
- *
- *
- * @generated
- */
- public ImplicitVariable getSingletonVariable() {
- return singletonVariable;
- }
-
- /**
- *
- *
- * @generated
- */
- public NotificationChain basicSetSingletonVariable(ImplicitVariable newSingletonVariable, NotificationChain msgs) {
- ImplicitVariable oldSingletonVariable = singletonVariable;
- singletonVariable = newSingletonVariable;
- if (eNotificationRequired()) {
- ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
- ProblemPackage.ARGUMENT__SINGLETON_VARIABLE, oldSingletonVariable, newSingletonVariable);
- if (msgs == null)
- msgs = notification;
- else
- msgs.add(notification);
- }
- return msgs;
- }
-
- /**
- *
- *
- * @generated
- */
- public void setSingletonVariable(ImplicitVariable newSingletonVariable) {
- if (newSingletonVariable != singletonVariable) {
- NotificationChain msgs = null;
- if (singletonVariable != null)
- msgs = ((InternalEObject) singletonVariable).eInverseRemove(this,
- EOPPOSITE_FEATURE_BASE - ProblemPackage.ARGUMENT__SINGLETON_VARIABLE, null, msgs);
- if (newSingletonVariable != null)
- msgs = ((InternalEObject) newSingletonVariable).eInverseAdd(this,
- EOPPOSITE_FEATURE_BASE - ProblemPackage.ARGUMENT__SINGLETON_VARIABLE, null, msgs);
- msgs = basicSetSingletonVariable(newSingletonVariable, msgs);
- if (msgs != null)
- msgs.dispatch();
- } else if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ARGUMENT__SINGLETON_VARIABLE,
- newSingletonVariable, newSingletonVariable));
- }
-
- /**
- *
- *
- * @generated
- */
- @Override
- public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
- switch (featureID) {
- case ProblemPackage.ARGUMENT__SINGLETON_VARIABLE:
- return basicSetSingletonVariable(null, msgs);
- }
- return super.eInverseRemove(otherEnd, featureID, msgs);
- }
-
- /**
- *
- *
- * @generated
- */
- @Override
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case ProblemPackage.ARGUMENT__VARIABLE_OR_NODE:
- if (resolve)
- return getVariableOrNode();
- return basicGetVariableOrNode();
- case ProblemPackage.ARGUMENT__SINGLETON_VARIABLE:
- return getSingletonVariable();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- *
- *
- * @generated
- */
- @Override
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case ProblemPackage.ARGUMENT__VARIABLE_OR_NODE:
- setVariableOrNode((VariableOrNode) newValue);
- return;
- case ProblemPackage.ARGUMENT__SINGLETON_VARIABLE:
- setSingletonVariable((ImplicitVariable) newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- *
- *
- * @generated
- */
- @Override
- public void eUnset(int featureID) {
- switch (featureID) {
- case ProblemPackage.ARGUMENT__VARIABLE_OR_NODE:
- setVariableOrNode((VariableOrNode) null);
- return;
- case ProblemPackage.ARGUMENT__SINGLETON_VARIABLE:
- setSingletonVariable((ImplicitVariable) null);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- *
- *
- * @generated
- */
- @Override
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case ProblemPackage.ARGUMENT__VARIABLE_OR_NODE:
- return variableOrNode != null;
- case ProblemPackage.ARGUMENT__SINGLETON_VARIABLE:
- return singletonVariable != null;
- }
- return super.eIsSet(featureID);
- }
-
} //ArgumentImpl
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionArgumentImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionArgumentImpl.java
new file mode 100644
index 00000000..af41b241
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionArgumentImpl.java
@@ -0,0 +1,39 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.viatra.solver.language.model.problem.AssertionArgument;
+import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
+
+/**
+ *
+ * An implementation of the model object 'Assertion Argument'.
+ *
+ *
+ * @generated
+ */
+public abstract class AssertionArgumentImpl extends MinimalEObjectImpl.Container implements AssertionArgument {
+ /**
+ *
+ *
+ * @generated
+ */
+ protected AssertionArgumentImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProblemPackage.Literals.ASSERTION_ARGUMENT;
+ }
+
+} //AssertionArgumentImpl
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
index 5856a276..2567d57b 100644
--- 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
@@ -6,6 +6,7 @@ import java.util.Collection;
import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
@@ -14,11 +15,11 @@ import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-import org.eclipse.emf.ecore.util.EObjectResolvingEList;
-
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.viatra.solver.language.model.problem.Assertion;
+import org.eclipse.viatra.solver.language.model.problem.AssertionArgument;
import org.eclipse.viatra.solver.language.model.problem.LogicValue;
-import org.eclipse.viatra.solver.language.model.problem.Node;
import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
import org.eclipse.viatra.solver.language.model.problem.Relation;
@@ -31,8 +32,8 @@ import org.eclipse.viatra.solver.language.model.problem.Relation;
*
*
* - {@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl#getRelation Relation}
- * - {@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl#getArguments Arguments}
* - {@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl#getValue Value}
+ * - {@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl#getArguments Arguments}
*
*
* @generated
@@ -49,34 +50,34 @@ public class AssertionImpl extends MinimalEObjectImpl.Container implements Asser
protected Relation relation;
/**
- * The cached value of the '{@link #getArguments() Arguments}' reference list.
+ * The default value of the '{@link #getValue() Value}' attribute.
*
*
- * @see #getArguments()
+ * @see #getValue()
* @generated
* @ordered
*/
- protected EList arguments;
+ protected static final LogicValue VALUE_EDEFAULT = LogicValue.TRUE;
/**
- * The default value of the '{@link #getValue() Value}' attribute.
+ * The cached value of the '{@link #getValue() Value}' attribute.
*
*
* @see #getValue()
* @generated
* @ordered
*/
- protected static final LogicValue VALUE_EDEFAULT = LogicValue.TRUE;
+ protected LogicValue value = VALUE_EDEFAULT;
/**
- * The cached value of the '{@link #getValue() Value}' attribute.
+ * The cached value of the '{@link #getArguments() Arguments}' containment reference list.
*
*
- * @see #getValue()
+ * @see #getArguments()
* @generated
* @ordered
*/
- protected LogicValue value = VALUE_EDEFAULT;
+ protected EList arguments;
/**
*
@@ -142,13 +143,28 @@ public class AssertionImpl extends MinimalEObjectImpl.Container implements Asser
*
* @generated
*/
- public EList getArguments() {
+ public EList getArguments() {
if (arguments == null) {
- arguments = new EObjectResolvingEList(Node.class, this, ProblemPackage.ASSERTION__ARGUMENTS);
+ arguments = new EObjectContainmentEList(AssertionArgument.class, this,
+ ProblemPackage.ASSERTION__ARGUMENTS);
}
return arguments;
}
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ProblemPackage.ASSERTION__ARGUMENTS:
+ return ((InternalEList>) getArguments()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
/**
*
*
@@ -182,10 +198,10 @@ public class AssertionImpl extends MinimalEObjectImpl.Container implements Asser
if (resolve)
return getRelation();
return basicGetRelation();
- case ProblemPackage.ASSERTION__ARGUMENTS:
- return getArguments();
case ProblemPackage.ASSERTION__VALUE:
return getValue();
+ case ProblemPackage.ASSERTION__ARGUMENTS:
+ return getArguments();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -202,13 +218,13 @@ public class AssertionImpl extends MinimalEObjectImpl.Container implements Asser
case ProblemPackage.ASSERTION__RELATION:
setRelation((Relation) newValue);
return;
- case ProblemPackage.ASSERTION__ARGUMENTS:
- getArguments().clear();
- getArguments().addAll((Collection extends Node>) newValue);
- return;
case ProblemPackage.ASSERTION__VALUE:
setValue((LogicValue) newValue);
return;
+ case ProblemPackage.ASSERTION__ARGUMENTS:
+ getArguments().clear();
+ getArguments().addAll((Collection extends AssertionArgument>) newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -224,12 +240,12 @@ public class AssertionImpl extends MinimalEObjectImpl.Container implements Asser
case ProblemPackage.ASSERTION__RELATION:
setRelation((Relation) null);
return;
- case ProblemPackage.ASSERTION__ARGUMENTS:
- getArguments().clear();
- return;
case ProblemPackage.ASSERTION__VALUE:
setValue(VALUE_EDEFAULT);
return;
+ case ProblemPackage.ASSERTION__ARGUMENTS:
+ getArguments().clear();
+ return;
}
super.eUnset(featureID);
}
@@ -244,10 +260,10 @@ public class AssertionImpl extends MinimalEObjectImpl.Container implements Asser
switch (featureID) {
case ProblemPackage.ASSERTION__RELATION:
return relation != null;
- case ProblemPackage.ASSERTION__ARGUMENTS:
- return arguments != null && !arguments.isEmpty();
case ProblemPackage.ASSERTION__VALUE:
return value != VALUE_EDEFAULT;
+ case ProblemPackage.ASSERTION__ARGUMENTS:
+ return arguments != null && !arguments.isEmpty();
}
return super.eIsSet(featureID);
}
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantArgumentImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantArgumentImpl.java
new file mode 100644
index 00000000..10798200
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantArgumentImpl.java
@@ -0,0 +1,182 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.viatra.solver.language.model.problem.Constant;
+import org.eclipse.viatra.solver.language.model.problem.ConstantArgument;
+import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
+
+/**
+ *
+ * An implementation of the model object 'Constant Argument'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.impl.ConstantArgumentImpl#getConstant Constant}
+ *
+ *
+ * @generated
+ */
+public class ConstantArgumentImpl extends ArgumentImpl implements ConstantArgument {
+ /**
+ * The cached value of the '{@link #getConstant() Constant}' containment reference.
+ *
+ *
+ * @see #getConstant()
+ * @generated
+ * @ordered
+ */
+ protected Constant constant;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected ConstantArgumentImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProblemPackage.Literals.CONSTANT_ARGUMENT;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Constant getConstant() {
+ return constant;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public NotificationChain basicSetConstant(Constant newConstant, NotificationChain msgs) {
+ Constant oldConstant = constant;
+ constant = newConstant;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ ProblemPackage.CONSTANT_ARGUMENT__CONSTANT, oldConstant, newConstant);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setConstant(Constant newConstant) {
+ if (newConstant != constant) {
+ NotificationChain msgs = null;
+ if (constant != null)
+ msgs = ((InternalEObject) constant).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - ProblemPackage.CONSTANT_ARGUMENT__CONSTANT, null, msgs);
+ if (newConstant != null)
+ msgs = ((InternalEObject) newConstant).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - ProblemPackage.CONSTANT_ARGUMENT__CONSTANT, null, msgs);
+ msgs = basicSetConstant(newConstant, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.CONSTANT_ARGUMENT__CONSTANT,
+ newConstant, newConstant));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ProblemPackage.CONSTANT_ARGUMENT__CONSTANT:
+ return basicSetConstant(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProblemPackage.CONSTANT_ARGUMENT__CONSTANT:
+ return getConstant();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProblemPackage.CONSTANT_ARGUMENT__CONSTANT:
+ setConstant((Constant) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.CONSTANT_ARGUMENT__CONSTANT:
+ setConstant((Constant) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.CONSTANT_ARGUMENT__CONSTANT:
+ return constant != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ConstantArgumentImpl
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantAssertionArgumentImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantAssertionArgumentImpl.java
new file mode 100644
index 00000000..6b5b3ed2
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantAssertionArgumentImpl.java
@@ -0,0 +1,182 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.viatra.solver.language.model.problem.Constant;
+import org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument;
+import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
+
+/**
+ *
+ * An implementation of the model object 'Constant Assertion Argument'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.impl.ConstantAssertionArgumentImpl#getConstant Constant}
+ *
+ *
+ * @generated
+ */
+public class ConstantAssertionArgumentImpl extends AssertionArgumentImpl implements ConstantAssertionArgument {
+ /**
+ * The cached value of the '{@link #getConstant() Constant}' containment reference.
+ *
+ *
+ * @see #getConstant()
+ * @generated
+ * @ordered
+ */
+ protected Constant constant;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected ConstantAssertionArgumentImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProblemPackage.Literals.CONSTANT_ASSERTION_ARGUMENT;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Constant getConstant() {
+ return constant;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public NotificationChain basicSetConstant(Constant newConstant, NotificationChain msgs) {
+ Constant oldConstant = constant;
+ constant = newConstant;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT, oldConstant, newConstant);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setConstant(Constant newConstant) {
+ if (newConstant != constant) {
+ NotificationChain msgs = null;
+ if (constant != null)
+ msgs = ((InternalEObject) constant).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT, null, msgs);
+ if (newConstant != null)
+ msgs = ((InternalEObject) newConstant).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT, null, msgs);
+ msgs = basicSetConstant(newConstant, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT,
+ newConstant, newConstant));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT:
+ return basicSetConstant(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT:
+ return getConstant();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT:
+ setConstant((Constant) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT:
+ setConstant((Constant) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT:
+ return constant != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ConstantAssertionArgumentImpl
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantImpl.java
new file mode 100644
index 00000000..14be4fb4
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantImpl.java
@@ -0,0 +1,39 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.viatra.solver.language.model.problem.Constant;
+import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
+
+/**
+ *
+ * An implementation of the model object 'Constant'.
+ *
+ *
+ * @generated
+ */
+public abstract class ConstantImpl extends MinimalEObjectImpl.Container implements Constant {
+ /**
+ *
+ *
+ * @generated
+ */
+ protected ConstantImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProblemPackage.Literals.CONSTANT;
+ }
+
+} //ConstantImpl
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/IntConstantImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/IntConstantImpl.java
new file mode 100644
index 00000000..1a0da417
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/IntConstantImpl.java
@@ -0,0 +1,164 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.viatra.solver.language.model.problem.IntConstant;
+import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
+
+/**
+ *
+ * An implementation of the model object 'Int Constant'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.impl.IntConstantImpl#getIntValue Int Value}
+ *
+ *
+ * @generated
+ */
+public class IntConstantImpl extends ConstantImpl implements IntConstant {
+ /**
+ * The default value of the '{@link #getIntValue() Int Value}' attribute.
+ *
+ *
+ * @see #getIntValue()
+ * @generated
+ * @ordered
+ */
+ protected static final int INT_VALUE_EDEFAULT = 0;
+
+ /**
+ * The cached value of the '{@link #getIntValue() Int Value}' attribute.
+ *
+ *
+ * @see #getIntValue()
+ * @generated
+ * @ordered
+ */
+ protected int intValue = INT_VALUE_EDEFAULT;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected IntConstantImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProblemPackage.Literals.INT_CONSTANT;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public int getIntValue() {
+ return intValue;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setIntValue(int newIntValue) {
+ int oldIntValue = intValue;
+ intValue = newIntValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.INT_CONSTANT__INT_VALUE, oldIntValue,
+ intValue));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProblemPackage.INT_CONSTANT__INT_VALUE:
+ return getIntValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProblemPackage.INT_CONSTANT__INT_VALUE:
+ setIntValue((Integer) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.INT_CONSTANT__INT_VALUE:
+ setIntValue(INT_VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.INT_CONSTANT__INT_VALUE:
+ return intValue != INT_VALUE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (intValue: ");
+ result.append(intValue);
+ result.append(')');
+ return result.toString();
+ }
+
+} //IntConstantImpl
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeAssertionArgumentImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeAssertionArgumentImpl.java
new file mode 100644
index 00000000..27a702fd
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeAssertionArgumentImpl.java
@@ -0,0 +1,159 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.viatra.solver.language.model.problem.Node;
+import org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument;
+import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
+
+/**
+ *
+ * An implementation of the model object 'Node Assertion Argument'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.impl.NodeAssertionArgumentImpl#getNode Node}
+ *
+ *
+ * @generated
+ */
+public class NodeAssertionArgumentImpl extends AssertionArgumentImpl implements NodeAssertionArgument {
+ /**
+ * The cached value of the '{@link #getNode() Node}' reference.
+ *
+ *
+ * @see #getNode()
+ * @generated
+ * @ordered
+ */
+ protected Node node;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected NodeAssertionArgumentImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProblemPackage.Literals.NODE_ASSERTION_ARGUMENT;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Node getNode() {
+ if (node != null && node.eIsProxy()) {
+ InternalEObject oldNode = (InternalEObject) node;
+ node = (Node) eResolveProxy(oldNode);
+ if (node != oldNode) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ ProblemPackage.NODE_ASSERTION_ARGUMENT__NODE, oldNode, node));
+ }
+ }
+ return node;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Node basicGetNode() {
+ return node;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setNode(Node newNode) {
+ Node oldNode = node;
+ node = newNode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.NODE_ASSERTION_ARGUMENT__NODE, oldNode,
+ node));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProblemPackage.NODE_ASSERTION_ARGUMENT__NODE:
+ if (resolve)
+ return getNode();
+ return basicGetNode();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProblemPackage.NODE_ASSERTION_ARGUMENT__NODE:
+ setNode((Node) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.NODE_ASSERTION_ARGUMENT__NODE:
+ setNode((Node) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.NODE_ASSERTION_ARGUMENT__NODE:
+ return node != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //NodeAssertionArgumentImpl
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeValueAssertionImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeValueAssertionImpl.java
new file mode 100644
index 00000000..0078b35e
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeValueAssertionImpl.java
@@ -0,0 +1,247 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
+
+import org.eclipse.viatra.solver.language.model.problem.Constant;
+import org.eclipse.viatra.solver.language.model.problem.Node;
+import org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion;
+import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
+
+/**
+ *
+ * An implementation of the model object 'Node Value Assertion'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.impl.NodeValueAssertionImpl#getNode Node}
+ * - {@link org.eclipse.viatra.solver.language.model.problem.impl.NodeValueAssertionImpl#getValue Value}
+ *
+ *
+ * @generated
+ */
+public class NodeValueAssertionImpl extends MinimalEObjectImpl.Container implements NodeValueAssertion {
+ /**
+ * The cached value of the '{@link #getNode() Node}' reference.
+ *
+ *
+ * @see #getNode()
+ * @generated
+ * @ordered
+ */
+ protected Node node;
+
+ /**
+ * The cached value of the '{@link #getValue() Value}' containment reference.
+ *
+ *
+ * @see #getValue()
+ * @generated
+ * @ordered
+ */
+ protected Constant value;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected NodeValueAssertionImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProblemPackage.Literals.NODE_VALUE_ASSERTION;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Node getNode() {
+ if (node != null && node.eIsProxy()) {
+ InternalEObject oldNode = (InternalEObject) node;
+ node = (Node) eResolveProxy(oldNode);
+ if (node != oldNode) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.NODE_VALUE_ASSERTION__NODE,
+ oldNode, node));
+ }
+ }
+ return node;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Node basicGetNode() {
+ return node;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setNode(Node newNode) {
+ Node oldNode = node;
+ node = newNode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.NODE_VALUE_ASSERTION__NODE, oldNode,
+ node));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Constant getValue() {
+ return value;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public NotificationChain basicSetValue(Constant newValue, NotificationChain msgs) {
+ Constant oldValue = value;
+ value = newValue;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ ProblemPackage.NODE_VALUE_ASSERTION__VALUE, oldValue, newValue);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setValue(Constant newValue) {
+ if (newValue != value) {
+ NotificationChain msgs = null;
+ if (value != null)
+ msgs = ((InternalEObject) value).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - ProblemPackage.NODE_VALUE_ASSERTION__VALUE, null, msgs);
+ if (newValue != null)
+ msgs = ((InternalEObject) newValue).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - ProblemPackage.NODE_VALUE_ASSERTION__VALUE, null, msgs);
+ msgs = basicSetValue(newValue, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.NODE_VALUE_ASSERTION__VALUE, newValue,
+ newValue));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ProblemPackage.NODE_VALUE_ASSERTION__VALUE:
+ return basicSetValue(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProblemPackage.NODE_VALUE_ASSERTION__NODE:
+ if (resolve)
+ return getNode();
+ return basicGetNode();
+ case ProblemPackage.NODE_VALUE_ASSERTION__VALUE:
+ return getValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProblemPackage.NODE_VALUE_ASSERTION__NODE:
+ setNode((Node) newValue);
+ return;
+ case ProblemPackage.NODE_VALUE_ASSERTION__VALUE:
+ setValue((Constant) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.NODE_VALUE_ASSERTION__NODE:
+ setNode((Node) null);
+ return;
+ case ProblemPackage.NODE_VALUE_ASSERTION__VALUE:
+ setValue((Constant) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.NODE_VALUE_ASSERTION__NODE:
+ return node != null;
+ case ProblemPackage.NODE_VALUE_ASSERTION__VALUE:
+ return value != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //NodeValueAssertionImpl
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
index 2f4144b9..27da13e2 100644
--- 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
@@ -89,10 +89,24 @@ public class ProblemFactoryImpl extends EFactoryImpl implements ProblemFactory {
return createExactMultiplicity();
case ProblemPackage.UNBOUNDED_MULTIPLICITY:
return createUnboundedMultiplicity();
- case ProblemPackage.ARGUMENT:
- return createArgument();
+ case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT:
+ return createVariableOrNodeArgument();
case ProblemPackage.ENUM_DECLARATION:
return createEnumDeclaration();
+ case ProblemPackage.INT_CONSTANT:
+ return createIntConstant();
+ case ProblemPackage.REAL_CONSTANT:
+ return createRealConstant();
+ case ProblemPackage.STRING_CONSTANT:
+ return createStringConstant();
+ case ProblemPackage.CONSTANT_ARGUMENT:
+ return createConstantArgument();
+ case ProblemPackage.NODE_ASSERTION_ARGUMENT:
+ return createNodeAssertionArgument();
+ case ProblemPackage.CONSTANT_ASSERTION_ARGUMENT:
+ return createConstantAssertionArgument();
+ case ProblemPackage.NODE_VALUE_ASSERTION:
+ return createNodeValueAssertion();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
}
@@ -293,9 +307,9 @@ public class ProblemFactoryImpl extends EFactoryImpl implements ProblemFactory {
*
* @generated
*/
- public Argument createArgument() {
- ArgumentImpl argument = new ArgumentImpl();
- return argument;
+ public VariableOrNodeArgument createVariableOrNodeArgument() {
+ VariableOrNodeArgumentImpl variableOrNodeArgument = new VariableOrNodeArgumentImpl();
+ return variableOrNodeArgument;
}
/**
@@ -308,6 +322,76 @@ public class ProblemFactoryImpl extends EFactoryImpl implements ProblemFactory {
return enumDeclaration;
}
+ /**
+ *
+ *
+ * @generated
+ */
+ public IntConstant createIntConstant() {
+ IntConstantImpl intConstant = new IntConstantImpl();
+ return intConstant;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public RealConstant createRealConstant() {
+ RealConstantImpl realConstant = new RealConstantImpl();
+ return realConstant;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public StringConstant createStringConstant() {
+ StringConstantImpl stringConstant = new StringConstantImpl();
+ return stringConstant;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public ConstantArgument createConstantArgument() {
+ ConstantArgumentImpl constantArgument = new ConstantArgumentImpl();
+ return constantArgument;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public NodeAssertionArgument createNodeAssertionArgument() {
+ NodeAssertionArgumentImpl nodeAssertionArgument = new NodeAssertionArgumentImpl();
+ return nodeAssertionArgument;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public ConstantAssertionArgument createConstantAssertionArgument() {
+ ConstantAssertionArgumentImpl constantAssertionArgument = new ConstantAssertionArgumentImpl();
+ return constantAssertionArgument;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public NodeValueAssertion createNodeValueAssertion() {
+ NodeValueAssertionImpl nodeValueAssertion = new NodeValueAssertionImpl();
+ return nodeValueAssertion;
+ }
+
/**
*
*
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
index d10ff2f0..ee72c538 100644
--- 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
@@ -12,33 +12,43 @@ import org.eclipse.emf.ecore.impl.EPackageImpl;
import org.eclipse.viatra.solver.language.model.problem.Argument;
import org.eclipse.viatra.solver.language.model.problem.Assertion;
+import org.eclipse.viatra.solver.language.model.problem.AssertionArgument;
import org.eclipse.viatra.solver.language.model.problem.Atom;
import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
import org.eclipse.viatra.solver.language.model.problem.Conjunction;
+import org.eclipse.viatra.solver.language.model.problem.Constant;
+import org.eclipse.viatra.solver.language.model.problem.ConstantArgument;
+import org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument;
import org.eclipse.viatra.solver.language.model.problem.EnumDeclaration;
import org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity;
import org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier;
import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable;
+import org.eclipse.viatra.solver.language.model.problem.IntConstant;
import org.eclipse.viatra.solver.language.model.problem.Literal;
import org.eclipse.viatra.solver.language.model.problem.LogicValue;
import org.eclipse.viatra.solver.language.model.problem.Multiplicity;
import org.eclipse.viatra.solver.language.model.problem.NamedElement;
import org.eclipse.viatra.solver.language.model.problem.NegativeLiteral;
import org.eclipse.viatra.solver.language.model.problem.Node;
+import org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument;
+import org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion;
import org.eclipse.viatra.solver.language.model.problem.Parameter;
import org.eclipse.viatra.solver.language.model.problem.PredicateDefinition;
import org.eclipse.viatra.solver.language.model.problem.Problem;
import org.eclipse.viatra.solver.language.model.problem.ProblemFactory;
import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
import org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity;
+import org.eclipse.viatra.solver.language.model.problem.RealConstant;
import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration;
import org.eclipse.viatra.solver.language.model.problem.Relation;
import org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration;
import org.eclipse.viatra.solver.language.model.problem.Statement;
+import org.eclipse.viatra.solver.language.model.problem.StringConstant;
import org.eclipse.viatra.solver.language.model.problem.TypeScope;
import org.eclipse.viatra.solver.language.model.problem.UnboundedMultiplicity;
import org.eclipse.viatra.solver.language.model.problem.Variable;
import org.eclipse.viatra.solver.language.model.problem.VariableOrNode;
+import org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument;
/**
*
@@ -208,6 +218,13 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
*/
private EClass unboundedMultiplicityEClass = null;
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass variableOrNodeArgumentEClass = null;
+
/**
*
*
@@ -215,6 +232,34 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
*/
private EClass argumentEClass = null;
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass nodeAssertionArgumentEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass assertionArgumentEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass constantAssertionArgumentEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass nodeValueAssertionEClass = null;
+
/**
*
*
@@ -229,6 +274,41 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
*/
private EClass variableOrNodeEClass = null;
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass constantEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass intConstantEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass realConstantEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass stringConstantEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass constantArgumentEClass = null;
+
/**
*
*
@@ -639,7 +719,7 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
* @generated
*/
public EReference getAssertion_Arguments() {
- return (EReference) assertionEClass.getEStructuralFeatures().get(1);
+ return (EReference) assertionEClass.getEStructuralFeatures().get(2);
}
/**
@@ -648,7 +728,7 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
* @generated
*/
public EAttribute getAssertion_Value() {
- return (EAttribute) assertionEClass.getEStructuralFeatures().get(2);
+ return (EAttribute) assertionEClass.getEStructuralFeatures().get(1);
}
/**
@@ -786,6 +866,33 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
return unboundedMultiplicityEClass;
}
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getVariableOrNodeArgument() {
+ return variableOrNodeArgumentEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getVariableOrNodeArgument_VariableOrNode() {
+ return (EReference) variableOrNodeArgumentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getVariableOrNodeArgument_SingletonVariable() {
+ return (EReference) variableOrNodeArgumentEClass.getEStructuralFeatures().get(1);
+ }
+
/**
*
*
@@ -800,8 +907,8 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
*
* @generated
*/
- public EReference getArgument_VariableOrNode() {
- return (EReference) argumentEClass.getEStructuralFeatures().get(0);
+ public EClass getNodeAssertionArgument() {
+ return nodeAssertionArgumentEClass;
}
/**
@@ -809,8 +916,62 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
*
* @generated
*/
- public EReference getArgument_SingletonVariable() {
- return (EReference) argumentEClass.getEStructuralFeatures().get(1);
+ public EReference getNodeAssertionArgument_Node() {
+ return (EReference) nodeAssertionArgumentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getAssertionArgument() {
+ return assertionArgumentEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getConstantAssertionArgument() {
+ return constantAssertionArgumentEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getConstantAssertionArgument_Constant() {
+ return (EReference) constantAssertionArgumentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getNodeValueAssertion() {
+ return nodeValueAssertionEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getNodeValueAssertion_Node() {
+ return (EReference) nodeValueAssertionEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getNodeValueAssertion_Value() {
+ return (EReference) nodeValueAssertionEClass.getEStructuralFeatures().get(1);
}
/**
@@ -840,6 +1001,87 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
return variableOrNodeEClass;
}
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getConstant() {
+ return constantEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getIntConstant() {
+ return intConstantEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getIntConstant_IntValue() {
+ return (EAttribute) intConstantEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getRealConstant() {
+ return realConstantEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getRealConstant_RealValue() {
+ return (EAttribute) realConstantEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getStringConstant() {
+ return stringConstantEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EAttribute getStringConstant_StringValue() {
+ return (EAttribute) stringConstantEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getConstantArgument() {
+ return constantArgumentEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getConstantArgument_Constant() {
+ return (EReference) constantArgumentEClass.getEStructuralFeatures().get(0);
+ }
+
/**
*
*
@@ -929,8 +1171,8 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
assertionEClass = createEClass(ASSERTION);
createEReference(assertionEClass, ASSERTION__RELATION);
- createEReference(assertionEClass, ASSERTION__ARGUMENTS);
createEAttribute(assertionEClass, ASSERTION__VALUE);
+ createEReference(assertionEClass, ASSERTION__ARGUMENTS);
nodeEClass = createEClass(NODE);
@@ -955,15 +1197,43 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
unboundedMultiplicityEClass = createEClass(UNBOUNDED_MULTIPLICITY);
- argumentEClass = createEClass(ARGUMENT);
- createEReference(argumentEClass, ARGUMENT__VARIABLE_OR_NODE);
- createEReference(argumentEClass, ARGUMENT__SINGLETON_VARIABLE);
+ variableOrNodeArgumentEClass = createEClass(VARIABLE_OR_NODE_ARGUMENT);
+ createEReference(variableOrNodeArgumentEClass, VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE);
+ createEReference(variableOrNodeArgumentEClass, VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE);
enumDeclarationEClass = createEClass(ENUM_DECLARATION);
createEReference(enumDeclarationEClass, ENUM_DECLARATION__LITERALS);
variableOrNodeEClass = createEClass(VARIABLE_OR_NODE);
+ constantEClass = createEClass(CONSTANT);
+
+ intConstantEClass = createEClass(INT_CONSTANT);
+ createEAttribute(intConstantEClass, INT_CONSTANT__INT_VALUE);
+
+ realConstantEClass = createEClass(REAL_CONSTANT);
+ createEAttribute(realConstantEClass, REAL_CONSTANT__REAL_VALUE);
+
+ stringConstantEClass = createEClass(STRING_CONSTANT);
+ createEAttribute(stringConstantEClass, STRING_CONSTANT__STRING_VALUE);
+
+ constantArgumentEClass = createEClass(CONSTANT_ARGUMENT);
+ createEReference(constantArgumentEClass, CONSTANT_ARGUMENT__CONSTANT);
+
+ argumentEClass = createEClass(ARGUMENT);
+
+ nodeAssertionArgumentEClass = createEClass(NODE_ASSERTION_ARGUMENT);
+ createEReference(nodeAssertionArgumentEClass, NODE_ASSERTION_ARGUMENT__NODE);
+
+ assertionArgumentEClass = createEClass(ASSERTION_ARGUMENT);
+
+ constantAssertionArgumentEClass = createEClass(CONSTANT_ASSERTION_ARGUMENT);
+ createEReference(constantAssertionArgumentEClass, CONSTANT_ASSERTION_ARGUMENT__CONSTANT);
+
+ nodeValueAssertionEClass = createEClass(NODE_VALUE_ASSERTION);
+ createEReference(nodeValueAssertionEClass, NODE_VALUE_ASSERTION__NODE);
+ createEReference(nodeValueAssertionEClass, NODE_VALUE_ASSERTION__VALUE);
+
// Create enums
logicValueEEnum = createEEnum(LOGIC_VALUE);
}
@@ -1017,9 +1287,17 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
rangeMultiplicityEClass.getESuperTypes().add(this.getMultiplicity());
exactMultiplicityEClass.getESuperTypes().add(this.getMultiplicity());
unboundedMultiplicityEClass.getESuperTypes().add(this.getMultiplicity());
+ variableOrNodeArgumentEClass.getESuperTypes().add(this.getArgument());
enumDeclarationEClass.getESuperTypes().add(this.getRelation());
enumDeclarationEClass.getESuperTypes().add(this.getStatement());
variableOrNodeEClass.getESuperTypes().add(this.getNamedElement());
+ intConstantEClass.getESuperTypes().add(this.getConstant());
+ realConstantEClass.getESuperTypes().add(this.getConstant());
+ stringConstantEClass.getESuperTypes().add(this.getConstant());
+ constantArgumentEClass.getESuperTypes().add(this.getArgument());
+ nodeAssertionArgumentEClass.getESuperTypes().add(this.getAssertionArgument());
+ constantAssertionArgumentEClass.getESuperTypes().add(this.getAssertionArgument());
+ nodeValueAssertionEClass.getESuperTypes().add(this.getStatement());
// Initialize classes, features, and operations; add parameters
initEClass(problemEClass, Problem.class, "Problem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -1126,11 +1404,11 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
initEReference(getAssertion_Relation(), this.getRelation(), null, "relation", null, 0, 1, Assertion.class,
!IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getAssertion_Arguments(), this.getNode(), null, "arguments", null, 0, -1, Assertion.class,
- !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
- IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getAssertion_Value(), this.getLogicValue(), "value", null, 0, 1, Assertion.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getAssertion_Arguments(), this.getAssertionArgument(), null, "arguments", null, 0, -1,
+ Assertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(nodeEClass, Node.class, "Node", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -1175,14 +1453,14 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
initEClass(unboundedMultiplicityEClass, UnboundedMultiplicity.class, "UnboundedMultiplicity", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEClass(argumentEClass, Argument.class, "Argument", !IS_ABSTRACT, !IS_INTERFACE,
- IS_GENERATED_INSTANCE_CLASS);
- initEReference(getArgument_VariableOrNode(), this.getVariableOrNode(), null, "variableOrNode", null, 0, 1,
- Argument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
- !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getArgument_SingletonVariable(), this.getImplicitVariable(), null, "singletonVariable", null, 0,
- 1, Argument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
- !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEClass(variableOrNodeArgumentEClass, VariableOrNodeArgument.class, "VariableOrNodeArgument", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getVariableOrNodeArgument_VariableOrNode(), this.getVariableOrNode(), null, "variableOrNode",
+ null, 0, 1, VariableOrNodeArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getVariableOrNodeArgument_SingletonVariable(), this.getImplicitVariable(), null,
+ "singletonVariable", null, 0, 1, VariableOrNodeArgument.class, !IS_TRANSIENT, !IS_VOLATILE,
+ IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(enumDeclarationEClass, EnumDeclaration.class, "EnumDeclaration", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
@@ -1193,6 +1471,57 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
initEClass(variableOrNodeEClass, VariableOrNode.class, "VariableOrNode", IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
+ initEClass(constantEClass, Constant.class, "Constant", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(intConstantEClass, IntConstant.class, "IntConstant", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getIntConstant_IntValue(), ecorePackage.getEInt(), "intValue", "0", 0, 1, IntConstant.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(realConstantEClass, RealConstant.class, "RealConstant", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getRealConstant_RealValue(), ecorePackage.getEDouble(), "realValue", "0.0", 0, 1,
+ RealConstant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+
+ initEClass(stringConstantEClass, StringConstant.class, "StringConstant", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getStringConstant_StringValue(), ecorePackage.getEString(), "stringValue", null, 0, 1,
+ StringConstant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
+ !IS_DERIVED, IS_ORDERED);
+
+ initEClass(constantArgumentEClass, ConstantArgument.class, "ConstantArgument", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getConstantArgument_Constant(), this.getConstant(), null, "constant", null, 0, 1,
+ ConstantArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(argumentEClass, Argument.class, "Argument", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(nodeAssertionArgumentEClass, NodeAssertionArgument.class, "NodeAssertionArgument", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getNodeAssertionArgument_Node(), this.getNode(), null, "node", null, 0, 1,
+ NodeAssertionArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(assertionArgumentEClass, AssertionArgument.class, "AssertionArgument", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
+ initEClass(constantAssertionArgumentEClass, ConstantAssertionArgument.class, "ConstantAssertionArgument",
+ !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getConstantAssertionArgument_Constant(), this.getConstant(), null, "constant", null, 0, 1,
+ ConstantAssertionArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE,
+ !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(nodeValueAssertionEClass, NodeValueAssertion.class, "NodeValueAssertion", !IS_ABSTRACT,
+ !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getNodeValueAssertion_Node(), this.getNode(), null, "node", null, 0, 1, NodeValueAssertion.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getNodeValueAssertion_Value(), this.getConstant(), null, "value", null, 0, 1,
+ NodeValueAssertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
// Initialize enums and add enum literals
initEEnum(logicValueEEnum, LogicValue.class, "LogicValue");
addEEnumLiteral(logicValueEEnum, LogicValue.TRUE);
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RealConstantImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RealConstantImpl.java
new file mode 100644
index 00000000..f28d7b5f
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RealConstantImpl.java
@@ -0,0 +1,164 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
+import org.eclipse.viatra.solver.language.model.problem.RealConstant;
+
+/**
+ *
+ * An implementation of the model object 'Real Constant'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.impl.RealConstantImpl#getRealValue Real Value}
+ *
+ *
+ * @generated
+ */
+public class RealConstantImpl extends ConstantImpl implements RealConstant {
+ /**
+ * The default value of the '{@link #getRealValue() Real Value}' attribute.
+ *
+ *
+ * @see #getRealValue()
+ * @generated
+ * @ordered
+ */
+ protected static final double REAL_VALUE_EDEFAULT = 0.0;
+
+ /**
+ * The cached value of the '{@link #getRealValue() Real Value}' attribute.
+ *
+ *
+ * @see #getRealValue()
+ * @generated
+ * @ordered
+ */
+ protected double realValue = REAL_VALUE_EDEFAULT;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected RealConstantImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProblemPackage.Literals.REAL_CONSTANT;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public double getRealValue() {
+ return realValue;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setRealValue(double newRealValue) {
+ double oldRealValue = realValue;
+ realValue = newRealValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.REAL_CONSTANT__REAL_VALUE,
+ oldRealValue, realValue));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProblemPackage.REAL_CONSTANT__REAL_VALUE:
+ return getRealValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProblemPackage.REAL_CONSTANT__REAL_VALUE:
+ setRealValue((Double) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.REAL_CONSTANT__REAL_VALUE:
+ setRealValue(REAL_VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.REAL_CONSTANT__REAL_VALUE:
+ return realValue != REAL_VALUE_EDEFAULT;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (realValue: ");
+ result.append(realValue);
+ result.append(')');
+ return result.toString();
+ }
+
+} //RealConstantImpl
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/StringConstantImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/StringConstantImpl.java
new file mode 100644
index 00000000..9eb05cf3
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/StringConstantImpl.java
@@ -0,0 +1,164 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
+import org.eclipse.viatra.solver.language.model.problem.StringConstant;
+
+/**
+ *
+ * An implementation of the model object 'String Constant'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.impl.StringConstantImpl#getStringValue String Value}
+ *
+ *
+ * @generated
+ */
+public class StringConstantImpl extends ConstantImpl implements StringConstant {
+ /**
+ * The default value of the '{@link #getStringValue() String Value}' attribute.
+ *
+ *
+ * @see #getStringValue()
+ * @generated
+ * @ordered
+ */
+ protected static final String STRING_VALUE_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getStringValue() String Value}' attribute.
+ *
+ *
+ * @see #getStringValue()
+ * @generated
+ * @ordered
+ */
+ protected String stringValue = STRING_VALUE_EDEFAULT;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected StringConstantImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProblemPackage.Literals.STRING_CONSTANT;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public String getStringValue() {
+ return stringValue;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setStringValue(String newStringValue) {
+ String oldStringValue = stringValue;
+ stringValue = newStringValue;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.STRING_CONSTANT__STRING_VALUE,
+ oldStringValue, stringValue));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProblemPackage.STRING_CONSTANT__STRING_VALUE:
+ return getStringValue();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProblemPackage.STRING_CONSTANT__STRING_VALUE:
+ setStringValue((String) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.STRING_CONSTANT__STRING_VALUE:
+ setStringValue(STRING_VALUE_EDEFAULT);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.STRING_CONSTANT__STRING_VALUE:
+ return STRING_VALUE_EDEFAULT == null ? stringValue != null : !STRING_VALUE_EDEFAULT.equals(stringValue);
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public String toString() {
+ if (eIsProxy())
+ return super.toString();
+
+ StringBuilder result = new StringBuilder(super.toString());
+ result.append(" (stringValue: ");
+ result.append(stringValue);
+ result.append(')');
+ return result.toString();
+ }
+
+} //StringConstantImpl
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableOrNodeArgumentImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableOrNodeArgumentImpl.java
new file mode 100644
index 00000000..693d5cdd
--- /dev/null
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableOrNodeArgumentImpl.java
@@ -0,0 +1,251 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable;
+import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
+import org.eclipse.viatra.solver.language.model.problem.VariableOrNode;
+import org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument;
+
+/**
+ *
+ * An implementation of the model object 'Variable Or Node Argument'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.impl.VariableOrNodeArgumentImpl#getVariableOrNode Variable Or Node}
+ * - {@link org.eclipse.viatra.solver.language.model.problem.impl.VariableOrNodeArgumentImpl#getSingletonVariable Singleton Variable}
+ *
+ *
+ * @generated
+ */
+public class VariableOrNodeArgumentImpl extends ArgumentImpl implements VariableOrNodeArgument {
+ /**
+ * The cached value of the '{@link #getVariableOrNode() Variable Or Node}' reference.
+ *
+ *
+ * @see #getVariableOrNode()
+ * @generated
+ * @ordered
+ */
+ protected VariableOrNode variableOrNode;
+
+ /**
+ * The cached value of the '{@link #getSingletonVariable() Singleton Variable}' containment reference.
+ *
+ *
+ * @see #getSingletonVariable()
+ * @generated
+ * @ordered
+ */
+ protected ImplicitVariable singletonVariable;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected VariableOrNodeArgumentImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProblemPackage.Literals.VARIABLE_OR_NODE_ARGUMENT;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public VariableOrNode getVariableOrNode() {
+ if (variableOrNode != null && variableOrNode.eIsProxy()) {
+ InternalEObject oldVariableOrNode = (InternalEObject) variableOrNode;
+ variableOrNode = (VariableOrNode) eResolveProxy(oldVariableOrNode);
+ if (variableOrNode != oldVariableOrNode) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE,
+ ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE, oldVariableOrNode,
+ variableOrNode));
+ }
+ }
+ return variableOrNode;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public VariableOrNode basicGetVariableOrNode() {
+ return variableOrNode;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setVariableOrNode(VariableOrNode newVariableOrNode) {
+ VariableOrNode oldVariableOrNode = variableOrNode;
+ variableOrNode = newVariableOrNode;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE, oldVariableOrNode, variableOrNode));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public ImplicitVariable getSingletonVariable() {
+ return singletonVariable;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public NotificationChain basicSetSingletonVariable(ImplicitVariable newSingletonVariable, NotificationChain msgs) {
+ ImplicitVariable oldSingletonVariable = singletonVariable;
+ singletonVariable = newSingletonVariable;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE, oldSingletonVariable,
+ newSingletonVariable);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setSingletonVariable(ImplicitVariable newSingletonVariable) {
+ if (newSingletonVariable != singletonVariable) {
+ NotificationChain msgs = null;
+ if (singletonVariable != null)
+ msgs = ((InternalEObject) singletonVariable).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE, null,
+ msgs);
+ if (newSingletonVariable != null)
+ msgs = ((InternalEObject) newSingletonVariable).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE, null,
+ msgs);
+ msgs = basicSetSingletonVariable(newSingletonVariable, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET,
+ ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE, newSingletonVariable,
+ newSingletonVariable));
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE:
+ return basicSetSingletonVariable(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE:
+ if (resolve)
+ return getVariableOrNode();
+ return basicGetVariableOrNode();
+ case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE:
+ return getSingletonVariable();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE:
+ setVariableOrNode((VariableOrNode) newValue);
+ return;
+ case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE:
+ setSingletonVariable((ImplicitVariable) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE:
+ setVariableOrNode((VariableOrNode) null);
+ return;
+ case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE:
+ setSingletonVariable((ImplicitVariable) null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE:
+ return variableOrNode != null;
+ case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE:
+ return singletonVariable != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //VariableOrNodeArgumentImpl
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java
index 3fc3ca75..07246d70 100644
--- a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java
@@ -182,8 +182,8 @@ public class ProblemAdapterFactory extends AdapterFactoryImpl {
}
@Override
- public Adapter caseArgument(Argument object) {
- return createArgumentAdapter();
+ public Adapter caseVariableOrNodeArgument(VariableOrNodeArgument object) {
+ return createVariableOrNodeArgumentAdapter();
}
@Override
@@ -196,6 +196,56 @@ public class ProblemAdapterFactory extends AdapterFactoryImpl {
return createVariableOrNodeAdapter();
}
+ @Override
+ public Adapter caseConstant(Constant object) {
+ return createConstantAdapter();
+ }
+
+ @Override
+ public Adapter caseIntConstant(IntConstant object) {
+ return createIntConstantAdapter();
+ }
+
+ @Override
+ public Adapter caseRealConstant(RealConstant object) {
+ return createRealConstantAdapter();
+ }
+
+ @Override
+ public Adapter caseStringConstant(StringConstant object) {
+ return createStringConstantAdapter();
+ }
+
+ @Override
+ public Adapter caseConstantArgument(ConstantArgument object) {
+ return createConstantArgumentAdapter();
+ }
+
+ @Override
+ public Adapter caseArgument(Argument object) {
+ return createArgumentAdapter();
+ }
+
+ @Override
+ public Adapter caseNodeAssertionArgument(NodeAssertionArgument object) {
+ return createNodeAssertionArgumentAdapter();
+ }
+
+ @Override
+ public Adapter caseAssertionArgument(AssertionArgument object) {
+ return createAssertionArgumentAdapter();
+ }
+
+ @Override
+ public Adapter caseConstantAssertionArgument(ConstantAssertionArgument object) {
+ return createConstantAssertionArgumentAdapter();
+ }
+
+ @Override
+ public Adapter caseNodeValueAssertion(NodeValueAssertion object) {
+ return createNodeValueAssertionAdapter();
+ }
+
@Override
public Adapter defaultCase(EObject object) {
return createEObjectAdapter();
@@ -537,6 +587,20 @@ public class ProblemAdapterFactory extends AdapterFactoryImpl {
return null;
}
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument Variable Or Node Argument}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument
+ * @generated
+ */
+ public Adapter createVariableOrNodeArgumentAdapter() {
+ return null;
+ }
+
/**
* Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Argument Argument}'.
*
@@ -551,6 +615,62 @@ public class ProblemAdapterFactory extends AdapterFactoryImpl {
return null;
}
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument Node Assertion Argument}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument
+ * @generated
+ */
+ public Adapter createNodeAssertionArgumentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.AssertionArgument Assertion Argument}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see org.eclipse.viatra.solver.language.model.problem.AssertionArgument
+ * @generated
+ */
+ public Adapter createAssertionArgumentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument Constant Assertion Argument}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument
+ * @generated
+ */
+ public Adapter createConstantAssertionArgumentAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion Node Value Assertion}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion
+ * @generated
+ */
+ public Adapter createNodeValueAssertionAdapter() {
+ return null;
+ }
+
/**
* Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.EnumDeclaration Enum Declaration}'.
*
@@ -579,6 +699,76 @@ public class ProblemAdapterFactory extends AdapterFactoryImpl {
return null;
}
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Constant Constant}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see org.eclipse.viatra.solver.language.model.problem.Constant
+ * @generated
+ */
+ public Adapter createConstantAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.IntConstant Int Constant}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see org.eclipse.viatra.solver.language.model.problem.IntConstant
+ * @generated
+ */
+ public Adapter createIntConstantAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.RealConstant Real Constant}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see org.eclipse.viatra.solver.language.model.problem.RealConstant
+ * @generated
+ */
+ public Adapter createRealConstantAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.StringConstant String Constant}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see org.eclipse.viatra.solver.language.model.problem.StringConstant
+ * @generated
+ */
+ public Adapter createStringConstantAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.ConstantArgument Constant Argument}'.
+ *
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ *
+ * @return the new adapter.
+ * @see org.eclipse.viatra.solver.language.model.problem.ConstantArgument
+ * @generated
+ */
+ public Adapter createConstantArgumentAdapter() {
+ return null;
+ }
+
/**
* Creates a new adapter for the default case.
*
diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java
index b74718b5..837d3a03 100644
--- a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java
+++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java
@@ -285,9 +285,11 @@ public class ProblemSwitch extends Switch {
result = defaultCase(theEObject);
return result;
}
- case ProblemPackage.ARGUMENT: {
- Argument argument = (Argument) theEObject;
- T result = caseArgument(argument);
+ case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT: {
+ VariableOrNodeArgument variableOrNodeArgument = (VariableOrNodeArgument) theEObject;
+ T result = caseVariableOrNodeArgument(variableOrNodeArgument);
+ if (result == null)
+ result = caseArgument(variableOrNodeArgument);
if (result == null)
result = defaultCase(theEObject);
return result;
@@ -314,6 +316,90 @@ public class ProblemSwitch extends Switch {
result = defaultCase(theEObject);
return result;
}
+ case ProblemPackage.CONSTANT: {
+ Constant constant = (Constant) theEObject;
+ T result = caseConstant(constant);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ProblemPackage.INT_CONSTANT: {
+ IntConstant intConstant = (IntConstant) theEObject;
+ T result = caseIntConstant(intConstant);
+ if (result == null)
+ result = caseConstant(intConstant);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ProblemPackage.REAL_CONSTANT: {
+ RealConstant realConstant = (RealConstant) theEObject;
+ T result = caseRealConstant(realConstant);
+ if (result == null)
+ result = caseConstant(realConstant);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ProblemPackage.STRING_CONSTANT: {
+ StringConstant stringConstant = (StringConstant) theEObject;
+ T result = caseStringConstant(stringConstant);
+ if (result == null)
+ result = caseConstant(stringConstant);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ProblemPackage.CONSTANT_ARGUMENT: {
+ ConstantArgument constantArgument = (ConstantArgument) theEObject;
+ T result = caseConstantArgument(constantArgument);
+ if (result == null)
+ result = caseArgument(constantArgument);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ProblemPackage.ARGUMENT: {
+ Argument argument = (Argument) theEObject;
+ T result = caseArgument(argument);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ProblemPackage.NODE_ASSERTION_ARGUMENT: {
+ NodeAssertionArgument nodeAssertionArgument = (NodeAssertionArgument) theEObject;
+ T result = caseNodeAssertionArgument(nodeAssertionArgument);
+ if (result == null)
+ result = caseAssertionArgument(nodeAssertionArgument);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ProblemPackage.ASSERTION_ARGUMENT: {
+ AssertionArgument assertionArgument = (AssertionArgument) theEObject;
+ T result = caseAssertionArgument(assertionArgument);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ProblemPackage.CONSTANT_ASSERTION_ARGUMENT: {
+ ConstantAssertionArgument constantAssertionArgument = (ConstantAssertionArgument) theEObject;
+ T result = caseConstantAssertionArgument(constantAssertionArgument);
+ if (result == null)
+ result = caseAssertionArgument(constantAssertionArgument);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ProblemPackage.NODE_VALUE_ASSERTION: {
+ NodeValueAssertion nodeValueAssertion = (NodeValueAssertion) theEObject;
+ T result = caseNodeValueAssertion(nodeValueAssertion);
+ if (result == null)
+ result = caseStatement(nodeValueAssertion);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
default:
return defaultCase(theEObject);
}
@@ -664,6 +750,21 @@ public class ProblemSwitch extends Switch {
return null;
}
+ /**
+ * Returns the result of interpreting the object as an instance of 'Variable Or Node Argument'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Variable Or Node Argument'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVariableOrNodeArgument(VariableOrNodeArgument object) {
+ return null;
+ }
+
/**
* Returns the result of interpreting the object as an instance of 'Argument'.
*
@@ -679,6 +780,66 @@ public class ProblemSwitch extends Switch {
return null;
}
+ /**
+ * Returns the result of interpreting the object as an instance of 'Node Assertion Argument'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Node Assertion Argument'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNodeAssertionArgument(NodeAssertionArgument object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Assertion Argument'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Assertion Argument'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseAssertionArgument(AssertionArgument object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Constant Assertion Argument'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Constant Assertion Argument'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConstantAssertionArgument(ConstantAssertionArgument object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Node Value Assertion'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Node Value Assertion'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseNodeValueAssertion(NodeValueAssertion object) {
+ return null;
+ }
+
/**
* Returns the result of interpreting the object as an instance of 'Enum Declaration'.
*
@@ -709,6 +870,81 @@ public class ProblemSwitch extends Switch {
return null;
}
+ /**
+ * Returns the result of interpreting the object as an instance of 'Constant'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Constant'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConstant(Constant object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Int Constant'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Int Constant'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseIntConstant(IntConstant object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Real Constant'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Real Constant'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseRealConstant(RealConstant object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'String Constant'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'String Constant'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseStringConstant(StringConstant object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Constant Argument'.
+ *
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ *
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of 'Constant Argument'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseConstantArgument(ConstantArgument object) {
+ return null;
+ }
+
/**
* Returns the result of interpreting the object as an instance of 'EObject'.
*
diff --git a/language-model/src/main/resources/model/problem.ecore b/language-model/src/main/resources/model/problem.ecore
index 99404f61..43d69a86 100644
--- a/language-model/src/main/resources/model/problem.ecore
+++ b/language-model/src/main/resources/model/problem.ecore
@@ -61,9 +61,9 @@
-
+
@@ -94,7 +94,7 @@
defaultValueLiteral="1"/>
-
+
@@ -104,4 +104,34 @@
eType="#//Node" containment="true"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/language-model/src/main/resources/model/problem.genmodel b/language-model/src/main/resources/model/problem.genmodel
index 8a881ff7..fb93d60e 100644
--- a/language-model/src/main/resources/model/problem.genmodel
+++ b/language-model/src/main/resources/model/problem.genmodel
@@ -62,8 +62,8 @@
-
+
@@ -84,13 +84,38 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
--
cgit v1.2.3-70-g09d2