From e92ebe4a61a106ff9c0e8f5bbbc3632f1dc60009 Mon Sep 17 00:00:00 2001
From: Kristóf Marussy
Date: Sat, 26 Jun 2021 21:43:55 +0200
Subject: FIx scoping, extend grammar
---
.../solver/language/model/problem/Argument.java | 69 ++++++
.../viatra/solver/language/model/problem/Atom.java | 12 +-
.../language/model/problem/ClassDeclaration.java | 23 ++
.../solver/language/model/problem/Problem.java | 4 +-
.../language/model/problem/ProblemFactory.java | 18 ++
.../language/model/problem/ProblemPackage.java | 251 ++++++++++++++++++---
.../model/problem/UnboundedMultiplicity.java | 16 ++
.../language/model/problem/impl/ArgumentImpl.java | 247 ++++++++++++++++++++
.../language/model/problem/impl/AtomImpl.java | 65 ++++--
.../model/problem/impl/ClassDeclarationImpl.java | 74 ++++++
.../model/problem/impl/ConjunctionImpl.java | 1 +
.../model/problem/impl/NegativeLiteralImpl.java | 1 +
.../model/problem/impl/ProblemFactoryImpl.java | 24 ++
.../language/model/problem/impl/ProblemImpl.java | 5 +-
.../model/problem/impl/ProblemPackageImpl.java | 97 +++++++-
.../problem/impl/UnboundedMultiplicityImpl.java | 37 +++
.../model/problem/util/ProblemAdapterFactory.java | 38 ++++
.../language/model/problem/util/ProblemSwitch.java | 48 ++++
.../src/main/resources/model/problem.ecore | 14 +-
.../src/main/resources/model/problem.genmodel | 8 +-
20 files changed, 974 insertions(+), 78 deletions(-)
create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Argument.java
create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/UnboundedMultiplicity.java
create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ArgumentImpl.java
create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/UnboundedMultiplicityImpl.java
(limited to 'org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src')
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Argument.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Argument.java
new file mode 100644
index 00000000..5442f8e0
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Argument.java
@@ -0,0 +1,69 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem;
+
+import org.eclipse.emf.ecore.EObject;
+
+/**
+ *
+ * A representation of the model object 'Argument'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.Argument#getVariable Variable}
+ * - {@link org.eclipse.viatra.solver.language.model.problem.Argument#getSingletonVariable Singleton Variable}
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getArgument()
+ * @model
+ * @generated
+ */
+public interface Argument extends EObject {
+ /**
+ * Returns the value of the 'Variable' reference.
+ *
+ *
+ * @return the value of the 'Variable' reference.
+ * @see #setVariable(Variable)
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getArgument_Variable()
+ * @model
+ * @generated
+ */
+ Variable getVariable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.Argument#getVariable Variable}' reference.
+ *
+ *
+ * @param value the new value of the 'Variable' reference.
+ * @see #getVariable()
+ * @generated
+ */
+ void setVariable(Variable 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#getArgument_SingletonVariable()
+ * @model containment="true"
+ * @generated
+ */
+ ImplicitVariable getSingletonVariable();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.Argument#getSingletonVariable Singleton Variable}' containment reference.
+ *
+ *
+ * @param value the new value of the 'Singleton Variable' containment reference.
+ * @see #getSingletonVariable()
+ * @generated
+ */
+ void setSingletonVariable(ImplicitVariable value);
+
+} // Argument
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Atom.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Atom.java
index bee08d8d..d1b4d3fe 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Atom.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Atom.java
@@ -14,8 +14,8 @@ import org.eclipse.emf.common.util.EList;
*
*
* - {@link org.eclipse.viatra.solver.language.model.problem.Atom#getRelation Relation}
- * - {@link org.eclipse.viatra.solver.language.model.problem.Atom#getArguments Arguments}
* - {@link org.eclipse.viatra.solver.language.model.problem.Atom#isTransitiveClosure Transitive Closure}
+ * - {@link org.eclipse.viatra.solver.language.model.problem.Atom#getArguments Arguments}
*
*
* @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAtom()
@@ -46,16 +46,16 @@ public interface Atom extends Literal {
void setRelation(Relation value);
/**
- * Returns the value of the 'Arguments' reference list.
- * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Variable}.
+ * Returns the value of the 'Arguments' containment reference list.
+ * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Argument}.
*
*
- * @return the value of the 'Arguments' reference list.
+ * @return the value of the 'Arguments' containment reference list.
* @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAtom_Arguments()
- * @model
+ * @model containment="true"
* @generated
*/
- EList getArguments();
+ EList getArguments();
/**
* Returns the value of the 'Transitive Closure' attribute.
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ClassDeclaration.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ClassDeclaration.java
index 7212d006..1387575a 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ClassDeclaration.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ClassDeclaration.java
@@ -16,6 +16,7 @@ import org.eclipse.emf.common.util.EList;
* {@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#isAbstract Abstract}
* {@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getSuperTypes Super Types}
* {@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getReferenceDeclarations Reference Declarations}
+ * {@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getNewNode New Node}
*
*
* @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getClassDeclaration()
@@ -69,4 +70,26 @@ public interface ClassDeclaration extends Relation, Statement {
*/
EList getReferenceDeclarations();
+ /**
+ * Returns the value of the 'New Node' containment reference.
+ *
+ *
+ * @return the value of the 'New Node' containment reference.
+ * @see #setNewNode(Node)
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getClassDeclaration_NewNode()
+ * @model containment="true"
+ * @generated
+ */
+ Node getNewNode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getNewNode New Node}' containment reference.
+ *
+ *
+ * @param value the new value of the 'New Node' containment reference.
+ * @see #getNewNode()
+ * @generated
+ */
+ void setNewNode(Node value);
+
} // ClassDeclaration
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Problem.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Problem.java
index 3342767d..7e19bd22 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Problem.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Problem.java
@@ -4,8 +4,6 @@ package org.eclipse.viatra.solver.language.model.problem;
import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EObject;
-
/**
*
* A representation of the model object 'Problem'.
@@ -23,7 +21,7 @@ import org.eclipse.emf.ecore.EObject;
* @model
* @generated
*/
-public interface Problem extends EObject {
+public interface Problem extends NamedElement {
/**
* Returns the value of the 'Nodes' containment reference list.
* The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Node}.
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java
index 301f7cce..bdfc326b 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java
@@ -156,6 +156,24 @@ public interface ProblemFactory extends EFactory {
*/
ExactMultiplicity createExactMultiplicity();
+ /**
+ * Returns a new object of class 'Unbounded Multiplicity'.
+ *
+ *
+ * @return a new object of class 'Unbounded Multiplicity'.
+ * @generated
+ */
+ UnboundedMultiplicity createUnboundedMultiplicity();
+
+ /**
+ * Returns a new object of class 'Argument'.
+ *
+ *
+ * @return a new object of class 'Argument'.
+ * @generated
+ */
+ Argument createArgument();
+
/**
* Returns the package supported by this factory.
*
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java
index 59906b1f..1358eaeb 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java
@@ -58,87 +58,96 @@ public interface ProblemPackage extends EPackage {
ProblemPackage eINSTANCE = org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl.init();
/**
- * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl Problem}' class.
+ * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NamedElementImpl Named Element}' class.
*
*
- * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl
- * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getProblem()
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.NamedElementImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNamedElement()
* @generated
*/
- int PROBLEM = 0;
+ int NAMED_ELEMENT = 4;
/**
- * The feature id for the 'Nodes' containment reference list.
+ * The feature id for the 'Name' attribute.
*
*
* @generated
* @ordered
*/
- int PROBLEM__NODES = 0;
+ int NAMED_ELEMENT__NAME = 0;
/**
- * The feature id for the 'Statements' containment reference list.
+ * The number of structural features of the 'Named Element' class.
*
*
* @generated
* @ordered
*/
- int PROBLEM__STATEMENTS = 1;
+ int NAMED_ELEMENT_FEATURE_COUNT = 1;
/**
- * The number of structural features of the 'Problem' class.
+ * The number of operations of the 'Named Element' class.
*
*
* @generated
* @ordered
*/
- int PROBLEM_FEATURE_COUNT = 2;
+ int NAMED_ELEMENT_OPERATION_COUNT = 0;
/**
- * The number of operations of the 'Problem' class.
+ * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl Problem}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getProblem()
+ * @generated
+ */
+ int PROBLEM = 0;
+
+ /**
+ * The feature id for the 'Name' attribute.
*
*
* @generated
* @ordered
*/
- int PROBLEM_OPERATION_COUNT = 0;
+ int PROBLEM__NAME = NAMED_ELEMENT__NAME;
/**
- * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NamedElementImpl Named Element}' class.
+ * The feature id for the 'Nodes' containment reference list.
*
*
- * @see org.eclipse.viatra.solver.language.model.problem.impl.NamedElementImpl
- * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNamedElement()
* @generated
+ * @ordered
*/
- int NAMED_ELEMENT = 4;
+ int PROBLEM__NODES = NAMED_ELEMENT_FEATURE_COUNT + 0;
/**
- * The feature id for the 'Name' attribute.
+ * The feature id for the 'Statements' containment reference list.
*
*
* @generated
* @ordered
*/
- int NAMED_ELEMENT__NAME = 0;
+ int PROBLEM__STATEMENTS = NAMED_ELEMENT_FEATURE_COUNT + 1;
/**
- * The number of structural features of the 'Named Element' class.
+ * The number of structural features of the 'Problem' class.
*
*
* @generated
* @ordered
*/
- int NAMED_ELEMENT_FEATURE_COUNT = 1;
+ int PROBLEM_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 2;
/**
- * The number of operations of the 'Named Element' class.
+ * The number of operations of the 'Problem' class.
*
*
* @generated
* @ordered
*/
- int NAMED_ELEMENT_OPERATION_COUNT = 0;
+ int PROBLEM_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;
/**
* The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.RelationImpl Relation}' class.
@@ -223,6 +232,15 @@ public interface ProblemPackage extends EPackage {
*/
int CLASS_DECLARATION__REFERENCE_DECLARATIONS = RELATION_FEATURE_COUNT + 2;
+ /**
+ * The feature id for the 'New Node' containment reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int CLASS_DECLARATION__NEW_NODE = RELATION_FEATURE_COUNT + 3;
+
/**
* The number of structural features of the 'Class Declaration' class.
*
@@ -230,7 +248,7 @@ public interface ProblemPackage extends EPackage {
* @generated
* @ordered
*/
- int CLASS_DECLARATION_FEATURE_COUNT = RELATION_FEATURE_COUNT + 3;
+ int CLASS_DECLARATION_FEATURE_COUNT = RELATION_FEATURE_COUNT + 4;
/**
* The number of operations of the 'Class Declaration' class.
@@ -592,22 +610,22 @@ public interface ProblemPackage extends EPackage {
int ATOM__RELATION = LITERAL_FEATURE_COUNT + 0;
/**
- * The feature id for the 'Arguments' reference list.
+ * The feature id for the 'Transitive Closure' attribute.
*
*
* @generated
* @ordered
*/
- int ATOM__ARGUMENTS = LITERAL_FEATURE_COUNT + 1;
+ int ATOM__TRANSITIVE_CLOSURE = LITERAL_FEATURE_COUNT + 1;
/**
- * The feature id for the 'Transitive Closure' attribute.
+ * The feature id for the 'Arguments' containment reference list.
*
*
* @generated
* @ordered
*/
- int ATOM__TRANSITIVE_CLOSURE = LITERAL_FEATURE_COUNT + 2;
+ int ATOM__ARGUMENTS = LITERAL_FEATURE_COUNT + 2;
/**
* The number of structural features of the 'Atom' class.
@@ -1033,6 +1051,80 @@ public interface ProblemPackage extends EPackage {
*/
int EXACT_MULTIPLICITY_OPERATION_COUNT = MULTIPLICITY_OPERATION_COUNT + 0;
+ /**
+ * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.UnboundedMultiplicityImpl Unbounded Multiplicity}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.UnboundedMultiplicityImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getUnboundedMultiplicity()
+ * @generated
+ */
+ int UNBOUNDED_MULTIPLICITY = 22;
+
+ /**
+ * The number of structural features of the 'Unbounded Multiplicity' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int UNBOUNDED_MULTIPLICITY_FEATURE_COUNT = MULTIPLICITY_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the 'Unbounded Multiplicity' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int UNBOUNDED_MULTIPLICITY_OPERATION_COUNT = MULTIPLICITY_OPERATION_COUNT + 0;
+
+ /**
+ * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ArgumentImpl Argument}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ArgumentImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getArgument()
+ * @generated
+ */
+ int ARGUMENT = 23;
+
+ /**
+ * The feature id for the 'Variable' reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int ARGUMENT__VARIABLE = 0;
+
+ /**
+ * The feature id for the 'Singleton Variable' containment reference.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int ARGUMENT__SINGLETON_VARIABLE = 1;
+
+ /**
+ * The number of structural features of the 'Argument' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int ARGUMENT_FEATURE_COUNT = 2;
+
+ /**
+ * 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.LogicValue Logic Value}' enum.
*
@@ -1041,7 +1133,7 @@ public interface ProblemPackage extends EPackage {
* @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getLogicValue()
* @generated
*/
- int LOGIC_VALUE = 22;
+ int LOGIC_VALUE = 24;
/**
* Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Problem Problem}'.
@@ -1128,6 +1220,17 @@ public interface ProblemPackage extends EPackage {
*/
EReference getClassDeclaration_ReferenceDeclarations();
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getNewNode New Node}'.
+ *
+ *
+ * @return the meta object for the containment reference 'New Node'.
+ * @see org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getNewNode()
+ * @see #getClassDeclaration()
+ * @generated
+ */
+ EReference getClassDeclaration_NewNode();
+
/**
* Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration Reference Declaration}'.
*
@@ -1330,10 +1433,10 @@ public interface ProblemPackage extends EPackage {
EReference getAtom_Relation();
/**
- * Returns the meta object for the reference list '{@link org.eclipse.viatra.solver.language.model.problem.Atom#getArguments Arguments}'.
+ * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.Atom#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.Atom#getArguments()
* @see #getAtom()
* @generated
@@ -1593,6 +1696,48 @@ public interface ProblemPackage extends EPackage {
*/
EAttribute getExactMultiplicity_ExactValue();
+ /**
+ * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.UnboundedMultiplicity Unbounded Multiplicity}'.
+ *
+ *
+ * @return the meta object for class 'Unbounded Multiplicity'.
+ * @see org.eclipse.viatra.solver.language.model.problem.UnboundedMultiplicity
+ * @generated
+ */
+ EClass getUnboundedMultiplicity();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Argument Argument}'.
+ *
+ *
+ * @return the meta object for class 'Argument'.
+ * @see org.eclipse.viatra.solver.language.model.problem.Argument
+ * @generated
+ */
+ EClass getArgument();
+
+ /**
+ * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.Argument#getVariable Variable}'.
+ *
+ *
+ * @return the meta object for the reference 'Variable'.
+ * @see org.eclipse.viatra.solver.language.model.problem.Argument#getVariable()
+ * @see #getArgument()
+ * @generated
+ */
+ EReference getArgument_Variable();
+
+ /**
+ * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.Argument#getSingletonVariable Singleton Variable}'.
+ *
+ *
+ * @return the meta object for the containment reference 'Singleton Variable'.
+ * @see org.eclipse.viatra.solver.language.model.problem.Argument#getSingletonVariable()
+ * @see #getArgument()
+ * @generated
+ */
+ EReference getArgument_SingletonVariable();
+
/**
* Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.model.problem.LogicValue Logic Value}'.
*
@@ -1696,6 +1841,14 @@ public interface ProblemPackage extends EPackage {
*/
EReference CLASS_DECLARATION__REFERENCE_DECLARATIONS = eINSTANCE.getClassDeclaration_ReferenceDeclarations();
+ /**
+ * The meta object literal for the 'New Node' containment reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference CLASS_DECLARATION__NEW_NODE = eINSTANCE.getClassDeclaration_NewNode();
+
/**
* The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl Reference Declaration}' class.
*
@@ -1865,7 +2018,7 @@ public interface ProblemPackage extends EPackage {
EReference ATOM__RELATION = eINSTANCE.getAtom_Relation();
/**
- * The meta object literal for the 'Arguments' reference list feature.
+ * The meta object literal for the 'Arguments' containment reference list feature.
*
*
* @generated
@@ -2086,6 +2239,42 @@ public interface ProblemPackage extends EPackage {
*/
EAttribute EXACT_MULTIPLICITY__EXACT_VALUE = eINSTANCE.getExactMultiplicity_ExactValue();
+ /**
+ * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.UnboundedMultiplicityImpl Unbounded Multiplicity}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.UnboundedMultiplicityImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getUnboundedMultiplicity()
+ * @generated
+ */
+ EClass UNBOUNDED_MULTIPLICITY = eINSTANCE.getUnboundedMultiplicity();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ArgumentImpl Argument}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ArgumentImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getArgument()
+ * @generated
+ */
+ EClass ARGUMENT = eINSTANCE.getArgument();
+
+ /**
+ * The meta object literal for the 'Variable' reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference ARGUMENT__VARIABLE = eINSTANCE.getArgument_Variable();
+
+ /**
+ * The meta object literal for the 'Singleton Variable' containment reference feature.
+ *
+ *
+ * @generated
+ */
+ EReference ARGUMENT__SINGLETON_VARIABLE = eINSTANCE.getArgument_SingletonVariable();
+
/**
* The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.LogicValue Logic Value}' enum.
*
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/UnboundedMultiplicity.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/UnboundedMultiplicity.java
new file mode 100644
index 00000000..725311a4
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/UnboundedMultiplicity.java
@@ -0,0 +1,16 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem;
+
+/**
+ *
+ * A representation of the model object 'Unbounded Multiplicity'.
+ *
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getUnboundedMultiplicity()
+ * @model
+ * @generated
+ */
+public interface UnboundedMultiplicity extends Multiplicity {
+} // UnboundedMultiplicity
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ArgumentImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ArgumentImpl.java
new file mode 100644
index 00000000..9f6bc7ae
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ArgumentImpl.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.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.Variable;
+
+/**
+ *
+ * An implementation of the model object 'Argument'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.impl.ArgumentImpl#getVariable Variable}
+ * - {@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 #getVariable() Variable}' reference.
+ *
+ *
+ * @see #getVariable()
+ * @generated
+ * @ordered
+ */
+ protected Variable variable;
+
+ /**
+ * The cached value of the '{@link #getSingletonVariable() Singleton Variable}' containment reference.
+ *
+ *
+ * @see #getSingletonVariable()
+ * @generated
+ * @ordered
+ */
+ protected ImplicitVariable singletonVariable;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected ArgumentImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProblemPackage.Literals.ARGUMENT;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Variable getVariable() {
+ if (variable != null && variable.eIsProxy()) {
+ InternalEObject oldVariable = (InternalEObject) variable;
+ variable = (Variable) eResolveProxy(oldVariable);
+ if (variable != oldVariable) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.ARGUMENT__VARIABLE,
+ oldVariable, variable));
+ }
+ }
+ return variable;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Variable basicGetVariable() {
+ return variable;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setVariable(Variable newVariable) {
+ Variable oldVariable = variable;
+ variable = newVariable;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ARGUMENT__VARIABLE, oldVariable,
+ variable));
+ }
+
+ /**
+ *
+ *
+ * @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:
+ if (resolve)
+ return getVariable();
+ return basicGetVariable();
+ 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:
+ setVariable((Variable) 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:
+ setVariable((Variable) 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:
+ return variable != null;
+ case ProblemPackage.ARGUMENT__SINGLETON_VARIABLE:
+ return singletonVariable != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //ArgumentImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java
index 4571db14..d70fe90b 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java
@@ -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;
@@ -13,12 +14,12 @@ import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
-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.Argument;
import org.eclipse.viatra.solver.language.model.problem.Atom;
import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
import org.eclipse.viatra.solver.language.model.problem.Relation;
-import org.eclipse.viatra.solver.language.model.problem.Variable;
/**
*
@@ -29,8 +30,8 @@ import org.eclipse.viatra.solver.language.model.problem.Variable;
*
*
* - {@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl#getRelation Relation}
- * - {@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl#getArguments Arguments}
* - {@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl#isTransitiveClosure Transitive Closure}
+ * - {@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl#getArguments Arguments}
*
*
* @generated
@@ -47,34 +48,34 @@ public class AtomImpl extends LiteralImpl implements Atom {
protected Relation relation;
/**
- * The cached value of the '{@link #getArguments() Arguments}' reference list.
+ * The default value of the '{@link #isTransitiveClosure() Transitive Closure}' attribute.
*
*
- * @see #getArguments()
+ * @see #isTransitiveClosure()
* @generated
* @ordered
*/
- protected EList arguments;
+ protected static final boolean TRANSITIVE_CLOSURE_EDEFAULT = false;
/**
- * The default value of the '{@link #isTransitiveClosure() Transitive Closure}' attribute.
+ * The cached value of the '{@link #isTransitiveClosure() Transitive Closure}' attribute.
*
*
* @see #isTransitiveClosure()
* @generated
* @ordered
*/
- protected static final boolean TRANSITIVE_CLOSURE_EDEFAULT = false;
+ protected boolean transitiveClosure = TRANSITIVE_CLOSURE_EDEFAULT;
/**
- * The cached value of the '{@link #isTransitiveClosure() Transitive Closure}' attribute.
+ * The cached value of the '{@link #getArguments() Arguments}' containment reference list.
*
*
- * @see #isTransitiveClosure()
+ * @see #getArguments()
* @generated
* @ordered
*/
- protected boolean transitiveClosure = TRANSITIVE_CLOSURE_EDEFAULT;
+ protected EList arguments;
/**
*
@@ -140,9 +141,9 @@ public class AtomImpl extends LiteralImpl implements Atom {
*
* @generated
*/
- public EList getArguments() {
+ public EList getArguments() {
if (arguments == null) {
- arguments = new EObjectResolvingEList(Variable.class, this, ProblemPackage.ATOM__ARGUMENTS);
+ arguments = new EObjectContainmentEList(Argument.class, this, ProblemPackage.ATOM__ARGUMENTS);
}
return arguments;
}
@@ -169,6 +170,20 @@ public class AtomImpl extends LiteralImpl implements Atom {
oldTransitiveClosure, transitiveClosure));
}
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ProblemPackage.ATOM__ARGUMENTS:
+ return ((InternalEList>) getArguments()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
/**
*
*
@@ -181,10 +196,10 @@ public class AtomImpl extends LiteralImpl implements Atom {
if (resolve)
return getRelation();
return basicGetRelation();
- case ProblemPackage.ATOM__ARGUMENTS:
- return getArguments();
case ProblemPackage.ATOM__TRANSITIVE_CLOSURE:
return isTransitiveClosure();
+ case ProblemPackage.ATOM__ARGUMENTS:
+ return getArguments();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -201,13 +216,13 @@ public class AtomImpl extends LiteralImpl implements Atom {
case ProblemPackage.ATOM__RELATION:
setRelation((Relation) newValue);
return;
- case ProblemPackage.ATOM__ARGUMENTS:
- getArguments().clear();
- getArguments().addAll((Collection extends Variable>) newValue);
- return;
case ProblemPackage.ATOM__TRANSITIVE_CLOSURE:
setTransitiveClosure((Boolean) newValue);
return;
+ case ProblemPackage.ATOM__ARGUMENTS:
+ getArguments().clear();
+ getArguments().addAll((Collection extends Argument>) newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -223,12 +238,12 @@ public class AtomImpl extends LiteralImpl implements Atom {
case ProblemPackage.ATOM__RELATION:
setRelation((Relation) null);
return;
- case ProblemPackage.ATOM__ARGUMENTS:
- getArguments().clear();
- return;
case ProblemPackage.ATOM__TRANSITIVE_CLOSURE:
setTransitiveClosure(TRANSITIVE_CLOSURE_EDEFAULT);
return;
+ case ProblemPackage.ATOM__ARGUMENTS:
+ getArguments().clear();
+ return;
}
super.eUnset(featureID);
}
@@ -243,10 +258,10 @@ public class AtomImpl extends LiteralImpl implements Atom {
switch (featureID) {
case ProblemPackage.ATOM__RELATION:
return relation != null;
- case ProblemPackage.ATOM__ARGUMENTS:
- return arguments != null && !arguments.isEmpty();
case ProblemPackage.ATOM__TRANSITIVE_CLOSURE:
return transitiveClosure != TRANSITIVE_CLOSURE_EDEFAULT;
+ case ProblemPackage.ATOM__ARGUMENTS:
+ return arguments != null && !arguments.isEmpty();
}
return super.eIsSet(featureID);
}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java
index e1d07071..89de4d01 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java
@@ -19,6 +19,7 @@ import org.eclipse.emf.ecore.util.EObjectResolvingEList;
import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
+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.ReferenceDeclaration;
@@ -33,6 +34,7 @@ import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration;
* {@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl#isAbstract Abstract}
* {@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl#getSuperTypes Super Types}
* {@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl#getReferenceDeclarations Reference Declarations}
+ * {@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl#getNewNode New Node}
*
*
* @generated
@@ -78,6 +80,16 @@ public class ClassDeclarationImpl extends RelationImpl implements ClassDeclarati
*/
protected EList referenceDeclarations;
+ /**
+ * The cached value of the '{@link #getNewNode() New Node}' containment reference.
+ *
+ *
+ * @see #getNewNode()
+ * @generated
+ * @ordered
+ */
+ protected Node newNode;
+
/**
*
*
@@ -145,6 +157,56 @@ public class ClassDeclarationImpl extends RelationImpl implements ClassDeclarati
return referenceDeclarations;
}
+ /**
+ *
+ *
+ * @generated
+ */
+ public Node getNewNode() {
+ return newNode;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public NotificationChain basicSetNewNode(Node newNewNode, NotificationChain msgs) {
+ Node oldNewNode = newNode;
+ newNode = newNewNode;
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
+ ProblemPackage.CLASS_DECLARATION__NEW_NODE, oldNewNode, newNewNode);
+ if (msgs == null)
+ msgs = notification;
+ else
+ msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public void setNewNode(Node newNewNode) {
+ if (newNewNode != newNode) {
+ NotificationChain msgs = null;
+ if (newNode != null)
+ msgs = ((InternalEObject) newNode).eInverseRemove(this,
+ EOPPOSITE_FEATURE_BASE - ProblemPackage.CLASS_DECLARATION__NEW_NODE, null, msgs);
+ if (newNewNode != null)
+ msgs = ((InternalEObject) newNewNode).eInverseAdd(this,
+ EOPPOSITE_FEATURE_BASE - ProblemPackage.CLASS_DECLARATION__NEW_NODE, null, msgs);
+ msgs = basicSetNewNode(newNewNode, msgs);
+ if (msgs != null)
+ msgs.dispatch();
+ } else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.CLASS_DECLARATION__NEW_NODE,
+ newNewNode, newNewNode));
+ }
+
/**
*
*
@@ -155,6 +217,8 @@ public class ClassDeclarationImpl extends RelationImpl implements ClassDeclarati
switch (featureID) {
case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS:
return ((InternalEList>) getReferenceDeclarations()).basicRemove(otherEnd, msgs);
+ case ProblemPackage.CLASS_DECLARATION__NEW_NODE:
+ return basicSetNewNode(null, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -173,6 +237,8 @@ public class ClassDeclarationImpl extends RelationImpl implements ClassDeclarati
return getSuperTypes();
case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS:
return getReferenceDeclarations();
+ case ProblemPackage.CLASS_DECLARATION__NEW_NODE:
+ return getNewNode();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -197,6 +263,9 @@ public class ClassDeclarationImpl extends RelationImpl implements ClassDeclarati
getReferenceDeclarations().clear();
getReferenceDeclarations().addAll((Collection extends ReferenceDeclaration>) newValue);
return;
+ case ProblemPackage.CLASS_DECLARATION__NEW_NODE:
+ setNewNode((Node) newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -218,6 +287,9 @@ public class ClassDeclarationImpl extends RelationImpl implements ClassDeclarati
case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS:
getReferenceDeclarations().clear();
return;
+ case ProblemPackage.CLASS_DECLARATION__NEW_NODE:
+ setNewNode((Node) null);
+ return;
}
super.eUnset(featureID);
}
@@ -236,6 +308,8 @@ public class ClassDeclarationImpl extends RelationImpl implements ClassDeclarati
return superTypes != null && !superTypes.isEmpty();
case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS:
return referenceDeclarations != null && !referenceDeclarations.isEmpty();
+ case ProblemPackage.CLASS_DECLARATION__NEW_NODE:
+ return newNode != null;
}
return super.eIsSet(featureID);
}
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java
index 3bdf887f..72258cc1 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java
@@ -45,6 +45,7 @@ public class ConjunctionImpl extends MinimalEObjectImpl.Container implements Con
* @ordered
*/
protected EList implicitVariables;
+
/**
* The cached value of the '{@link #getLiterals() Literals}' containment reference list.
*
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java
index 5295406b..857a779d 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java
@@ -47,6 +47,7 @@ public class NegativeLiteralImpl extends MinimalEObjectImpl.Container implements
* @ordered
*/
protected EList implicitVariables;
+
/**
* The cached value of the '{@link #getAtom() Atom}' containment reference.
*
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java
index 563f8b05..3bb50cfe 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java
@@ -87,6 +87,10 @@ public class ProblemFactoryImpl extends EFactoryImpl implements ProblemFactory {
return createRangeMultiplicity();
case ProblemPackage.EXACT_MULTIPLICITY:
return createExactMultiplicity();
+ case ProblemPackage.UNBOUNDED_MULTIPLICITY:
+ return createUnboundedMultiplicity();
+ case ProblemPackage.ARGUMENT:
+ return createArgument();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
}
@@ -272,6 +276,26 @@ public class ProblemFactoryImpl extends EFactoryImpl implements ProblemFactory {
return exactMultiplicity;
}
+ /**
+ *
+ *
+ * @generated
+ */
+ public UnboundedMultiplicity createUnboundedMultiplicity() {
+ UnboundedMultiplicityImpl unboundedMultiplicity = new UnboundedMultiplicityImpl();
+ return unboundedMultiplicity;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public Argument createArgument() {
+ ArgumentImpl argument = new ArgumentImpl();
+ return argument;
+ }
+
/**
*
*
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java
index 32bba265..191021c4 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java
@@ -11,8 +11,6 @@ import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
-import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
-
import org.eclipse.emf.ecore.util.EObjectContainmentEList;
import org.eclipse.emf.ecore.util.InternalEList;
@@ -35,7 +33,7 @@ import org.eclipse.viatra.solver.language.model.problem.Statement;
*
* @generated
*/
-public class ProblemImpl extends MinimalEObjectImpl.Container implements Problem {
+public class ProblemImpl extends NamedElementImpl implements Problem {
/**
* The cached value of the '{@link #getNodes() Nodes}' containment reference list.
*
@@ -45,6 +43,7 @@ public class ProblemImpl extends MinimalEObjectImpl.Container implements Problem
* @ordered
*/
protected EList nodes;
+
/**
* The cached value of the '{@link #getStatements() Statements}' containment reference list.
*
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java
index de0aa595..f412addc 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java
@@ -10,6 +10,7 @@ import org.eclipse.emf.ecore.EReference;
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.Atom;
import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration;
@@ -34,6 +35,7 @@ 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.TypeScope;
+import org.eclipse.viatra.solver.language.model.problem.UnboundedMultiplicity;
import org.eclipse.viatra.solver.language.model.problem.Variable;
/**
@@ -197,6 +199,20 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
*/
private EClass exactMultiplicityEClass = null;
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass unboundedMultiplicityEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass argumentEClass = null;
+
/**
*
*
@@ -340,6 +356,15 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
return (EReference) classDeclarationEClass.getEStructuralFeatures().get(2);
}
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getClassDeclaration_NewNode() {
+ return (EReference) classDeclarationEClass.getEStructuralFeatures().get(3);
+ }
+
/**
*
*
@@ -517,7 +542,7 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
* @generated
*/
public EReference getAtom_Arguments() {
- return (EReference) atomEClass.getEStructuralFeatures().get(1);
+ return (EReference) atomEClass.getEStructuralFeatures().get(2);
}
/**
@@ -526,7 +551,7 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
* @generated
*/
public EAttribute getAtom_TransitiveClosure() {
- return (EAttribute) atomEClass.getEStructuralFeatures().get(2);
+ return (EAttribute) atomEClass.getEStructuralFeatures().get(1);
}
/**
@@ -736,6 +761,42 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
return (EAttribute) exactMultiplicityEClass.getEStructuralFeatures().get(0);
}
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getUnboundedMultiplicity() {
+ return unboundedMultiplicityEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getArgument() {
+ return argumentEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getArgument_Variable() {
+ return (EReference) argumentEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getArgument_SingletonVariable() {
+ return (EReference) argumentEClass.getEStructuralFeatures().get(1);
+ }
+
/**
*
*
@@ -784,6 +845,7 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
createEAttribute(classDeclarationEClass, CLASS_DECLARATION__ABSTRACT);
createEReference(classDeclarationEClass, CLASS_DECLARATION__SUPER_TYPES);
createEReference(classDeclarationEClass, CLASS_DECLARATION__REFERENCE_DECLARATIONS);
+ createEReference(classDeclarationEClass, CLASS_DECLARATION__NEW_NODE);
referenceDeclarationEClass = createEClass(REFERENCE_DECLARATION);
createEReference(referenceDeclarationEClass, REFERENCE_DECLARATION__REFERENCE_TYPE);
@@ -811,8 +873,8 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
atomEClass = createEClass(ATOM);
createEReference(atomEClass, ATOM__RELATION);
- createEReference(atomEClass, ATOM__ARGUMENTS);
createEAttribute(atomEClass, ATOM__TRANSITIVE_CLOSURE);
+ createEReference(atomEClass, ATOM__ARGUMENTS);
implicitVariableEClass = createEClass(IMPLICIT_VARIABLE);
@@ -848,6 +910,12 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
exactMultiplicityEClass = createEClass(EXACT_MULTIPLICITY);
createEAttribute(exactMultiplicityEClass, EXACT_MULTIPLICITY__EXACT_VALUE);
+ unboundedMultiplicityEClass = createEClass(UNBOUNDED_MULTIPLICITY);
+
+ argumentEClass = createEClass(ARGUMENT);
+ createEReference(argumentEClass, ARGUMENT__VARIABLE);
+ createEReference(argumentEClass, ARGUMENT__SINGLETON_VARIABLE);
+
// Create enums
logicValueEEnum = createEEnum(LOGIC_VALUE);
}
@@ -881,6 +949,7 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
// Set bounds for type parameters
// Add supertypes to classes
+ problemEClass.getESuperTypes().add(this.getNamedElement());
relationEClass.getESuperTypes().add(this.getNamedElement());
classDeclarationEClass.getESuperTypes().add(this.getRelation());
classDeclarationEClass.getESuperTypes().add(this.getStatement());
@@ -899,6 +968,7 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
scopeDeclarationEClass.getESuperTypes().add(this.getStatement());
rangeMultiplicityEClass.getESuperTypes().add(this.getMultiplicity());
exactMultiplicityEClass.getESuperTypes().add(this.getMultiplicity());
+ unboundedMultiplicityEClass.getESuperTypes().add(this.getMultiplicity());
// Initialize classes, features, and operations; add parameters
initEClass(problemEClass, Problem.class, "Problem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -922,6 +992,9 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
initEReference(getClassDeclaration_ReferenceDeclarations(), this.getReferenceDeclaration(), null,
"referenceDeclarations", null, 0, -1, ClassDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE,
IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getClassDeclaration_NewNode(), this.getNode(), null, "newNode", null, 0, 1,
+ ClassDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(referenceDeclarationEClass, ReferenceDeclaration.class, "ReferenceDeclaration", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -975,12 +1048,12 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
initEReference(getAtom_Relation(), this.getRelation(), null, "relation", null, 0, 1, Atom.class, !IS_TRANSIENT,
!IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
- initEReference(getAtom_Arguments(), this.getVariable(), null, "arguments", null, 0, -1, Atom.class,
- !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
- IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getAtom_TransitiveClosure(), ecorePackage.getEBoolean(), "transitiveClosure", null, 0, 1,
Atom.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED,
IS_ORDERED);
+ initEReference(getAtom_Arguments(), this.getArgument(), null, "arguments", null, 0, -1, Atom.class,
+ !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE,
+ IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(implicitVariableEClass, ImplicitVariable.class, "ImplicitVariable", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
@@ -1048,6 +1121,18 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
ExactMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
+ 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_Variable(), this.getVariable(), null, "variable", 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);
+
// Initialize enums and add enum literals
initEEnum(logicValueEEnum, LogicValue.class, "LogicValue");
addEEnumLiteral(logicValueEEnum, LogicValue.TRUE);
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/UnboundedMultiplicityImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/UnboundedMultiplicityImpl.java
new file mode 100644
index 00000000..34283189
--- /dev/null
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/UnboundedMultiplicityImpl.java
@@ -0,0 +1,37 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem.impl;
+
+import org.eclipse.emf.ecore.EClass;
+
+import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
+import org.eclipse.viatra.solver.language.model.problem.UnboundedMultiplicity;
+
+/**
+ *
+ * An implementation of the model object 'Unbounded Multiplicity'.
+ *
+ *
+ * @generated
+ */
+public class UnboundedMultiplicityImpl extends MultiplicityImpl implements UnboundedMultiplicity {
+ /**
+ *
+ *
+ * @generated
+ */
+ protected UnboundedMultiplicityImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProblemPackage.Literals.UNBOUNDED_MULTIPLICITY;
+ }
+
+} //UnboundedMultiplicityImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java
index f228f54a..c41a4034 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java
@@ -176,6 +176,16 @@ public class ProblemAdapterFactory extends AdapterFactoryImpl {
return createExactMultiplicityAdapter();
}
+ @Override
+ public Adapter caseUnboundedMultiplicity(UnboundedMultiplicity object) {
+ return createUnboundedMultiplicityAdapter();
+ }
+
+ @Override
+ public Adapter caseArgument(Argument object) {
+ return createArgumentAdapter();
+ }
+
@Override
public Adapter defaultCase(EObject object) {
return createEObjectAdapter();
@@ -503,6 +513,34 @@ public class ProblemAdapterFactory extends AdapterFactoryImpl {
return null;
}
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.UnboundedMultiplicity Unbounded Multiplicity}'.
+ *
+ * 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.UnboundedMultiplicity
+ * @generated
+ */
+ public Adapter createUnboundedMultiplicityAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Argument 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.Argument
+ * @generated
+ */
+ public Adapter createArgumentAdapter() {
+ return null;
+ }
+
/**
* Creates a new adapter for the default case.
*
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java
index a9e1455b..361b663c 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java
@@ -69,6 +69,8 @@ public class ProblemSwitch extends Switch {
case ProblemPackage.PROBLEM: {
Problem problem = (Problem) theEObject;
T result = caseProblem(problem);
+ if (result == null)
+ result = caseNamedElement(problem);
if (result == null)
result = defaultCase(theEObject);
return result;
@@ -266,6 +268,22 @@ public class ProblemSwitch extends Switch {
result = defaultCase(theEObject);
return result;
}
+ case ProblemPackage.UNBOUNDED_MULTIPLICITY: {
+ UnboundedMultiplicity unboundedMultiplicity = (UnboundedMultiplicity) theEObject;
+ T result = caseUnboundedMultiplicity(unboundedMultiplicity);
+ if (result == null)
+ result = caseMultiplicity(unboundedMultiplicity);
+ 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;
+ }
default:
return defaultCase(theEObject);
}
@@ -601,6 +619,36 @@ public class ProblemSwitch extends Switch {
return null;
}
+ /**
+ * Returns the result of interpreting the object as an instance of 'Unbounded Multiplicity'.
+ *
+ * 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 'Unbounded Multiplicity'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUnboundedMultiplicity(UnboundedMultiplicity object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of '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 'Argument'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseArgument(Argument object) {
+ return null;
+ }
+
/**
* Returns the result of interpreting the object as an instance of 'EObject'.
*
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.ecore b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.ecore
index 9b87280d..dd52134b 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.ecore
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.ecore
@@ -2,7 +2,7 @@
-
+
+
@@ -44,9 +46,9 @@
-
+
@@ -91,4 +93,10 @@
+
+
+
+
+
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.genmodel b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.genmodel
index 2dfe62e6..379cb028 100644
--- a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.genmodel
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/resources/model/problem.genmodel
@@ -25,6 +25,7 @@
+
@@ -50,8 +51,8 @@
-
+
@@ -83,5 +84,10 @@
+
+
+
+
+
--
cgit v1.2.3-70-g09d2