From b88c842ba625753ea185e6166cd967e694160798 Mon Sep 17 00:00:00 2001
From: Kristóf Marussy
Date: Sun, 27 Jun 2021 01:43:59 +0200
Subject: Add enum support
---
.../solver/language/model/problem/Argument.java | 20 +--
.../language/model/problem/ClassDeclaration.java | 4 +-
.../language/model/problem/EnumDeclaration.java | 36 +++++
.../viatra/solver/language/model/problem/Node.java | 2 +-
.../solver/language/model/problem/Parameter.java | 6 +-
.../language/model/problem/ProblemFactory.java | 9 ++
.../language/model/problem/ProblemPackage.java | 172 +++++++++++++++++++--
.../model/problem/ReferenceDeclaration.java | 6 +-
.../solver/language/model/problem/Variable.java | 2 +-
.../language/model/problem/VariableOrNode.java | 16 ++
.../language/model/problem/impl/ArgumentImpl.java | 58 +++----
.../model/problem/impl/ClassDeclarationImpl.java | 9 +-
.../model/problem/impl/EnumDeclarationImpl.java | 150 ++++++++++++++++++
.../language/model/problem/impl/NodeImpl.java | 2 +-
.../language/model/problem/impl/ParameterImpl.java | 19 ++-
.../model/problem/impl/ProblemFactoryImpl.java | 12 ++
.../model/problem/impl/ProblemPackageImpl.java | 82 ++++++++--
.../problem/impl/ReferenceDeclarationImpl.java | 19 ++-
.../language/model/problem/impl/VariableImpl.java | 2 +-
.../model/problem/impl/VariableOrNodeImpl.java | 37 +++++
.../model/problem/util/ProblemAdapterFactory.java | 38 +++++
.../language/model/problem/util/ProblemSwitch.java | 60 +++++++
22 files changed, 660 insertions(+), 101 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/EnumDeclaration.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/VariableOrNode.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/EnumDeclarationImpl.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/VariableOrNodeImpl.java
(limited to 'org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem')
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
index 5442f8e0..4857b38a 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/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
@@ -13,7 +13,7 @@ import org.eclipse.emf.ecore.EObject;
* 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#getVariableOrNode Variable Or Node}
* - {@link org.eclipse.viatra.solver.language.model.problem.Argument#getSingletonVariable Singleton Variable}
*
*
@@ -23,26 +23,26 @@ import org.eclipse.emf.ecore.EObject;
*/
public interface Argument extends EObject {
/**
- * Returns the value of the 'Variable' reference.
+ * Returns the value of the 'Variable Or Node' reference.
*
*
- * @return the value of the 'Variable' reference.
- * @see #setVariable(Variable)
- * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getArgument_Variable()
+ * @return the value of the 'Variable Or Node' reference.
+ * @see #setVariableOrNode(VariableOrNode)
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getArgument_VariableOrNode()
* @model
* @generated
*/
- Variable getVariable();
+ VariableOrNode getVariableOrNode();
/**
- * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.Argument#getVariable Variable}' reference.
+ * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.Argument#getVariableOrNode Variable Or Node}' reference.
*
*
- * @param value the new value of the 'Variable' reference.
- * @see #getVariable()
+ * @param value the new value of the 'Variable Or Node' reference.
+ * @see #getVariableOrNode()
* @generated
*/
- void setVariable(Variable value);
+ void setVariableOrNode(VariableOrNode value);
/**
* Returns the value of the 'Singleton Variable' 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/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 1387575a..d0f471be 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
@@ -48,7 +48,7 @@ public interface ClassDeclaration extends Relation, Statement {
/**
* Returns the value of the 'Super Types' reference list.
- * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration}.
+ * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Relation}.
*
*
* @return the value of the 'Super Types' reference list.
@@ -56,7 +56,7 @@ public interface ClassDeclaration extends Relation, Statement {
* @model
* @generated
*/
- EList getSuperTypes();
+ EList getSuperTypes();
/**
* Returns the value of the 'Reference Declarations' 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/EnumDeclaration.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/EnumDeclaration.java
new file mode 100644
index 00000000..81f2967d
--- /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/EnumDeclaration.java
@@ -0,0 +1,36 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem;
+
+import org.eclipse.emf.common.util.EList;
+
+/**
+ *
+ * A representation of the model object 'Enum Declaration'.
+ *
+ *
+ *
+ * The following features are supported:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.EnumDeclaration#getLiterals Literals}
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getEnumDeclaration()
+ * @model
+ * @generated
+ */
+public interface EnumDeclaration extends Relation, Statement {
+ /**
+ * Returns the value of the 'Literals' containment reference list.
+ * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Node}.
+ *
+ *
+ * @return the value of the 'Literals' containment reference list.
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getEnumDeclaration_Literals()
+ * @model containment="true"
+ * @generated
+ */
+ EList getLiterals();
+
+} // EnumDeclaration
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/Node.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/Node.java
index e6547083..3da08af3 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/Node.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/Node.java
@@ -12,5 +12,5 @@ package org.eclipse.viatra.solver.language.model.problem;
* @model
* @generated
*/
-public interface Node extends NamedElement {
+public interface Node extends VariableOrNode {
} // 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/Parameter.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/Parameter.java
index 5ed8ac3c..7bedca1b 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/Parameter.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/Parameter.java
@@ -24,12 +24,12 @@ public interface Parameter extends Variable {
*
*
* @return the value of the 'Parameter Type' reference.
- * @see #setParameterType(ClassDeclaration)
+ * @see #setParameterType(Relation)
* @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getParameter_ParameterType()
* @model
* @generated
*/
- ClassDeclaration getParameterType();
+ Relation getParameterType();
/**
* Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.Parameter#getParameterType Parameter Type}' reference.
@@ -39,6 +39,6 @@ public interface Parameter extends Variable {
* @see #getParameterType()
* @generated
*/
- void setParameterType(ClassDeclaration value);
+ void setParameterType(Relation value);
} // Parameter
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 bdfc326b..e4332d19 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
@@ -174,6 +174,15 @@ public interface ProblemFactory extends EFactory {
*/
Argument createArgument();
+ /**
+ * Returns a new object of class 'Enum Declaration'.
+ *
+ *
+ * @return a new object of class 'Enum Declaration'.
+ * @generated
+ */
+ EnumDeclaration createEnumDeclaration();
+
/**
* 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 1358eaeb..ec96501d 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
@@ -396,6 +396,43 @@ public interface ProblemPackage extends EPackage {
*/
int PREDICATE_DEFINITION_OPERATION_COUNT = RELATION_OPERATION_COUNT + 0;
+ /**
+ * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.VariableOrNodeImpl Variable Or Node}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.VariableOrNodeImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getVariableOrNode()
+ * @generated
+ */
+ int VARIABLE_OR_NODE = 25;
+
+ /**
+ * The feature id for the 'Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_OR_NODE__NAME = NAMED_ELEMENT__NAME;
+
+ /**
+ * The number of structural features of the 'Variable Or Node' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_OR_NODE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The number of operations of the 'Variable Or Node' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int VARIABLE_OR_NODE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;
+
/**
* The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.VariableImpl Variable}' class.
*
@@ -413,7 +450,7 @@ public interface ProblemPackage extends EPackage {
* @generated
* @ordered
*/
- int VARIABLE__NAME = NAMED_ELEMENT__NAME;
+ int VARIABLE__NAME = VARIABLE_OR_NODE__NAME;
/**
* The number of structural features of the 'Variable' class.
@@ -422,7 +459,7 @@ public interface ProblemPackage extends EPackage {
* @generated
* @ordered
*/
- int VARIABLE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0;
+ int VARIABLE_FEATURE_COUNT = VARIABLE_OR_NODE_FEATURE_COUNT + 0;
/**
* The number of operations of the 'Variable' class.
@@ -431,7 +468,7 @@ public interface ProblemPackage extends EPackage {
* @generated
* @ordered
*/
- int VARIABLE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;
+ int VARIABLE_OPERATION_COUNT = VARIABLE_OR_NODE_OPERATION_COUNT + 0;
/**
* The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ParameterImpl Parameter}' class.
@@ -828,7 +865,7 @@ public interface ProblemPackage extends EPackage {
* @generated
* @ordered
*/
- int NODE__NAME = NAMED_ELEMENT__NAME;
+ int NODE__NAME = VARIABLE_OR_NODE__NAME;
/**
* The number of structural features of the 'Node' class.
@@ -837,7 +874,7 @@ public interface ProblemPackage extends EPackage {
* @generated
* @ordered
*/
- int NODE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0;
+ int NODE_FEATURE_COUNT = VARIABLE_OR_NODE_FEATURE_COUNT + 0;
/**
* The number of operations of the 'Node' class.
@@ -846,7 +883,7 @@ public interface ProblemPackage extends EPackage {
* @generated
* @ordered
*/
- int NODE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0;
+ int NODE_OPERATION_COUNT = VARIABLE_OR_NODE_OPERATION_COUNT + 0;
/**
* The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ScopeDeclarationImpl Scope Declaration}' class.
@@ -1090,13 +1127,13 @@ public interface ProblemPackage extends EPackage {
int ARGUMENT = 23;
/**
- * The feature id for the 'Variable' reference.
+ * The feature id for the 'Variable Or Node' reference.
*
*
* @generated
* @ordered
*/
- int ARGUMENT__VARIABLE = 0;
+ int ARGUMENT__VARIABLE_OR_NODE = 0;
/**
* The feature id for the 'Singleton Variable' containment reference.
@@ -1125,6 +1162,52 @@ public interface ProblemPackage extends EPackage {
*/
int ARGUMENT_OPERATION_COUNT = 0;
+ /**
+ * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.EnumDeclarationImpl Enum Declaration}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.EnumDeclarationImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getEnumDeclaration()
+ * @generated
+ */
+ int ENUM_DECLARATION = 24;
+
+ /**
+ * The feature id for the 'Name' attribute.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int ENUM_DECLARATION__NAME = RELATION__NAME;
+
+ /**
+ * The feature id for the 'Literals' containment reference list.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int ENUM_DECLARATION__LITERALS = RELATION_FEATURE_COUNT + 0;
+
+ /**
+ * The number of structural features of the 'Enum Declaration' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int ENUM_DECLARATION_FEATURE_COUNT = RELATION_FEATURE_COUNT + 1;
+
+ /**
+ * The number of operations of the 'Enum Declaration' class.
+ *
+ *
+ * @generated
+ * @ordered
+ */
+ int ENUM_DECLARATION_OPERATION_COUNT = RELATION_OPERATION_COUNT + 0;
+
/**
* The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.LogicValue Logic Value}' enum.
*
@@ -1133,7 +1216,7 @@ public interface ProblemPackage extends EPackage {
* @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getLogicValue()
* @generated
*/
- int LOGIC_VALUE = 24;
+ int LOGIC_VALUE = 26;
/**
* Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Problem Problem}'.
@@ -1717,15 +1800,15 @@ public interface ProblemPackage extends EPackage {
EClass getArgument();
/**
- * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.Argument#getVariable Variable}'.
+ * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.Argument#getVariableOrNode Variable Or Node}'.
*
*
- * @return the meta object for the reference 'Variable'.
- * @see org.eclipse.viatra.solver.language.model.problem.Argument#getVariable()
+ * @return the meta object for the reference 'Variable Or Node'.
+ * @see org.eclipse.viatra.solver.language.model.problem.Argument#getVariableOrNode()
* @see #getArgument()
* @generated
*/
- EReference getArgument_Variable();
+ EReference getArgument_VariableOrNode();
/**
* Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.Argument#getSingletonVariable Singleton Variable}'.
@@ -1738,6 +1821,37 @@ public interface ProblemPackage extends EPackage {
*/
EReference getArgument_SingletonVariable();
+ /**
+ * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.EnumDeclaration Enum Declaration}'.
+ *
+ *
+ * @return the meta object for class 'Enum Declaration'.
+ * @see org.eclipse.viatra.solver.language.model.problem.EnumDeclaration
+ * @generated
+ */
+ EClass getEnumDeclaration();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.EnumDeclaration#getLiterals Literals}'.
+ *
+ *
+ * @return the meta object for the containment reference list 'Literals'.
+ * @see org.eclipse.viatra.solver.language.model.problem.EnumDeclaration#getLiterals()
+ * @see #getEnumDeclaration()
+ * @generated
+ */
+ EReference getEnumDeclaration_Literals();
+
+ /**
+ * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.VariableOrNode Variable Or Node}'.
+ *
+ *
+ * @return the meta object for class 'Variable Or Node'.
+ * @see org.eclipse.viatra.solver.language.model.problem.VariableOrNode
+ * @generated
+ */
+ EClass getVariableOrNode();
+
/**
* Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.model.problem.LogicValue Logic Value}'.
*
@@ -2260,12 +2374,12 @@ public interface ProblemPackage extends EPackage {
EClass ARGUMENT = eINSTANCE.getArgument();
/**
- * The meta object literal for the 'Variable' reference feature.
+ * The meta object literal for the 'Variable Or Node' reference feature.
*
*
* @generated
*/
- EReference ARGUMENT__VARIABLE = eINSTANCE.getArgument_Variable();
+ EReference ARGUMENT__VARIABLE_OR_NODE = eINSTANCE.getArgument_VariableOrNode();
/**
* The meta object literal for the 'Singleton Variable' containment reference feature.
@@ -2275,6 +2389,34 @@ public interface ProblemPackage extends EPackage {
*/
EReference ARGUMENT__SINGLETON_VARIABLE = eINSTANCE.getArgument_SingletonVariable();
+ /**
+ * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.EnumDeclarationImpl Enum Declaration}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.EnumDeclarationImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getEnumDeclaration()
+ * @generated
+ */
+ EClass ENUM_DECLARATION = eINSTANCE.getEnumDeclaration();
+
+ /**
+ * The meta object literal for the 'Literals' containment reference list feature.
+ *
+ *
+ * @generated
+ */
+ EReference ENUM_DECLARATION__LITERALS = eINSTANCE.getEnumDeclaration_Literals();
+
+ /**
+ * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.VariableOrNodeImpl Variable Or Node}' class.
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.VariableOrNodeImpl
+ * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getVariableOrNode()
+ * @generated
+ */
+ EClass VARIABLE_OR_NODE = eINSTANCE.getVariableOrNode();
+
/**
* 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/ReferenceDeclaration.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/ReferenceDeclaration.java
index f07ee7d1..38650d66 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/ReferenceDeclaration.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/ReferenceDeclaration.java
@@ -27,12 +27,12 @@ public interface ReferenceDeclaration extends Relation {
*
*
* @return the value of the 'Reference Type' reference.
- * @see #setReferenceType(ClassDeclaration)
+ * @see #setReferenceType(Relation)
* @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getReferenceDeclaration_ReferenceType()
* @model
* @generated
*/
- ClassDeclaration getReferenceType();
+ Relation getReferenceType();
/**
* Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getReferenceType Reference Type}' reference.
@@ -42,7 +42,7 @@ public interface ReferenceDeclaration extends Relation {
* @see #getReferenceType()
* @generated
*/
- void setReferenceType(ClassDeclaration value);
+ void setReferenceType(Relation value);
/**
* Returns the value of the 'Opposite' 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/Variable.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/Variable.java
index 26637a35..cba5740c 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/Variable.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/Variable.java
@@ -12,5 +12,5 @@ package org.eclipse.viatra.solver.language.model.problem;
* @model abstract="true"
* @generated
*/
-public interface Variable extends NamedElement {
+public interface Variable extends VariableOrNode {
} // Variable
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/VariableOrNode.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/VariableOrNode.java
new file mode 100644
index 00000000..65c315e2
--- /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/VariableOrNode.java
@@ -0,0 +1,16 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem;
+
+/**
+ *
+ * A representation of the model object 'Variable Or Node'.
+ *
+ *
+ *
+ * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getVariableOrNode()
+ * @model abstract="true"
+ * @generated
+ */
+public interface VariableOrNode extends NamedElement {
+} // VariableOrNode
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
index 9f6bc7ae..f7d045ca 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/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
@@ -14,7 +14,7 @@ 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;
+import org.eclipse.viatra.solver.language.model.problem.VariableOrNode;
/**
*
@@ -24,7 +24,7 @@ import org.eclipse.viatra.solver.language.model.problem.Variable;
* 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#getVariableOrNode Variable Or Node}
* - {@link org.eclipse.viatra.solver.language.model.problem.impl.ArgumentImpl#getSingletonVariable Singleton Variable}
*
*
@@ -32,14 +32,14 @@ import org.eclipse.viatra.solver.language.model.problem.Variable;
*/
public class ArgumentImpl extends MinimalEObjectImpl.Container implements Argument {
/**
- * The cached value of the '{@link #getVariable() Variable}' reference.
+ * The cached value of the '{@link #getVariableOrNode() Variable Or Node}' reference.
*
*
- * @see #getVariable()
+ * @see #getVariableOrNode()
* @generated
* @ordered
*/
- protected Variable variable;
+ protected VariableOrNode variableOrNode;
/**
* The cached value of the '{@link #getSingletonVariable() Singleton Variable}' containment reference.
@@ -75,17 +75,17 @@ public class ArgumentImpl extends MinimalEObjectImpl.Container implements Argume
*
* @generated
*/
- public Variable getVariable() {
- if (variable != null && variable.eIsProxy()) {
- InternalEObject oldVariable = (InternalEObject) variable;
- variable = (Variable) eResolveProxy(oldVariable);
- if (variable != oldVariable) {
+ 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,
- oldVariable, variable));
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.ARGUMENT__VARIABLE_OR_NODE,
+ oldVariableOrNode, variableOrNode));
}
}
- return variable;
+ return variableOrNode;
}
/**
@@ -93,8 +93,8 @@ public class ArgumentImpl extends MinimalEObjectImpl.Container implements Argume
*
* @generated
*/
- public Variable basicGetVariable() {
- return variable;
+ public VariableOrNode basicGetVariableOrNode() {
+ return variableOrNode;
}
/**
@@ -102,12 +102,12 @@ public class ArgumentImpl extends MinimalEObjectImpl.Container implements Argume
*
* @generated
*/
- public void setVariable(Variable newVariable) {
- Variable oldVariable = variable;
- variable = newVariable;
+ public void setVariableOrNode(VariableOrNode newVariableOrNode) {
+ VariableOrNode oldVariableOrNode = variableOrNode;
+ variableOrNode = newVariableOrNode;
if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ARGUMENT__VARIABLE, oldVariable,
- variable));
+ eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ARGUMENT__VARIABLE_OR_NODE,
+ oldVariableOrNode, variableOrNode));
}
/**
@@ -182,10 +182,10 @@ public class ArgumentImpl extends MinimalEObjectImpl.Container implements Argume
@Override
public Object eGet(int featureID, boolean resolve, boolean coreType) {
switch (featureID) {
- case ProblemPackage.ARGUMENT__VARIABLE:
+ case ProblemPackage.ARGUMENT__VARIABLE_OR_NODE:
if (resolve)
- return getVariable();
- return basicGetVariable();
+ return getVariableOrNode();
+ return basicGetVariableOrNode();
case ProblemPackage.ARGUMENT__SINGLETON_VARIABLE:
return getSingletonVariable();
}
@@ -200,8 +200,8 @@ public class ArgumentImpl extends MinimalEObjectImpl.Container implements Argume
@Override
public void eSet(int featureID, Object newValue) {
switch (featureID) {
- case ProblemPackage.ARGUMENT__VARIABLE:
- setVariable((Variable) newValue);
+ case ProblemPackage.ARGUMENT__VARIABLE_OR_NODE:
+ setVariableOrNode((VariableOrNode) newValue);
return;
case ProblemPackage.ARGUMENT__SINGLETON_VARIABLE:
setSingletonVariable((ImplicitVariable) newValue);
@@ -218,8 +218,8 @@ public class ArgumentImpl extends MinimalEObjectImpl.Container implements Argume
@Override
public void eUnset(int featureID) {
switch (featureID) {
- case ProblemPackage.ARGUMENT__VARIABLE:
- setVariable((Variable) null);
+ case ProblemPackage.ARGUMENT__VARIABLE_OR_NODE:
+ setVariableOrNode((VariableOrNode) null);
return;
case ProblemPackage.ARGUMENT__SINGLETON_VARIABLE:
setSingletonVariable((ImplicitVariable) null);
@@ -236,8 +236,8 @@ public class ArgumentImpl extends MinimalEObjectImpl.Container implements Argume
@Override
public boolean eIsSet(int featureID) {
switch (featureID) {
- case ProblemPackage.ARGUMENT__VARIABLE:
- return variable != null;
+ case ProblemPackage.ARGUMENT__VARIABLE_OR_NODE:
+ return variableOrNode != null;
case ProblemPackage.ARGUMENT__SINGLETON_VARIABLE:
return singletonVariable != null;
}
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 89de4d01..774a6e33 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
@@ -22,6 +22,7 @@ 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;
+import org.eclipse.viatra.solver.language.model.problem.Relation;
/**
*
@@ -68,7 +69,7 @@ public class ClassDeclarationImpl extends RelationImpl implements ClassDeclarati
* @generated
* @ordered
*/
- protected EList superTypes;
+ protected EList superTypes;
/**
* The cached value of the '{@link #getReferenceDeclarations() Reference Declarations}' containment reference list.
@@ -136,9 +137,9 @@ public class ClassDeclarationImpl extends RelationImpl implements ClassDeclarati
*
* @generated
*/
- public EList getSuperTypes() {
+ public EList getSuperTypes() {
if (superTypes == null) {
- superTypes = new EObjectResolvingEList(ClassDeclaration.class, this,
+ superTypes = new EObjectResolvingEList(Relation.class, this,
ProblemPackage.CLASS_DECLARATION__SUPER_TYPES);
}
return superTypes;
@@ -257,7 +258,7 @@ public class ClassDeclarationImpl extends RelationImpl implements ClassDeclarati
return;
case ProblemPackage.CLASS_DECLARATION__SUPER_TYPES:
getSuperTypes().clear();
- getSuperTypes().addAll((Collection extends ClassDeclaration>) newValue);
+ getSuperTypes().addAll((Collection extends Relation>) newValue);
return;
case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS:
getReferenceDeclarations().clear();
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/EnumDeclarationImpl.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/EnumDeclarationImpl.java
new file mode 100644
index 00000000..aac00423
--- /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/EnumDeclarationImpl.java
@@ -0,0 +1,150 @@
+/**
+ */
+package org.eclipse.viatra.solver.language.model.problem.impl;
+
+import java.util.Collection;
+
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.util.EObjectContainmentEList;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.viatra.solver.language.model.problem.EnumDeclaration;
+import org.eclipse.viatra.solver.language.model.problem.Node;
+import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
+
+/**
+ *
+ * An implementation of the model object 'Enum Declaration'.
+ *
+ *
+ * The following features are implemented:
+ *
+ *
+ * - {@link org.eclipse.viatra.solver.language.model.problem.impl.EnumDeclarationImpl#getLiterals Literals}
+ *
+ *
+ * @generated
+ */
+public class EnumDeclarationImpl extends RelationImpl implements EnumDeclaration {
+ /**
+ * The cached value of the '{@link #getLiterals() Literals}' containment reference list.
+ *
+ *
+ * @see #getLiterals()
+ * @generated
+ * @ordered
+ */
+ protected EList literals;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ protected EnumDeclarationImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProblemPackage.Literals.ENUM_DECLARATION;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EList getLiterals() {
+ if (literals == null) {
+ literals = new EObjectContainmentEList(Node.class, this, ProblemPackage.ENUM_DECLARATION__LITERALS);
+ }
+ return literals;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case ProblemPackage.ENUM_DECLARATION__LITERALS:
+ return ((InternalEList>) getLiterals()).basicRemove(otherEnd, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case ProblemPackage.ENUM_DECLARATION__LITERALS:
+ return getLiterals();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case ProblemPackage.ENUM_DECLARATION__LITERALS:
+ getLiterals().clear();
+ getLiterals().addAll((Collection extends Node>) newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.ENUM_DECLARATION__LITERALS:
+ getLiterals().clear();
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case ProblemPackage.ENUM_DECLARATION__LITERALS:
+ return literals != null && !literals.isEmpty();
+ }
+ return super.eIsSet(featureID);
+ }
+
+} //EnumDeclarationImpl
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java
index 23b85a9c..0c08bb1b 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/NodeImpl.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java
@@ -14,7 +14,7 @@ import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
*
* @generated
*/
-public class NodeImpl extends NamedElementImpl implements Node {
+public class NodeImpl extends VariableOrNodeImpl implements 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/impl/ParameterImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.java
index cfbf25b0..06eea3f3 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/ParameterImpl.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.java
@@ -8,10 +8,9 @@ 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.ClassDeclaration;
import org.eclipse.viatra.solver.language.model.problem.Parameter;
import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
+import org.eclipse.viatra.solver.language.model.problem.Relation;
/**
*
@@ -35,7 +34,7 @@ public class ParameterImpl extends VariableImpl implements Parameter {
* @generated
* @ordered
*/
- protected ClassDeclaration parameterType;
+ protected Relation parameterType;
/**
*
@@ -61,10 +60,10 @@ public class ParameterImpl extends VariableImpl implements Parameter {
*
* @generated
*/
- public ClassDeclaration getParameterType() {
+ public Relation getParameterType() {
if (parameterType != null && parameterType.eIsProxy()) {
InternalEObject oldParameterType = (InternalEObject) parameterType;
- parameterType = (ClassDeclaration) eResolveProxy(oldParameterType);
+ parameterType = (Relation) eResolveProxy(oldParameterType);
if (parameterType != oldParameterType) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.PARAMETER__PARAMETER_TYPE,
@@ -79,7 +78,7 @@ public class ParameterImpl extends VariableImpl implements Parameter {
*
* @generated
*/
- public ClassDeclaration basicGetParameterType() {
+ public Relation basicGetParameterType() {
return parameterType;
}
@@ -88,8 +87,8 @@ public class ParameterImpl extends VariableImpl implements Parameter {
*
* @generated
*/
- public void setParameterType(ClassDeclaration newParameterType) {
- ClassDeclaration oldParameterType = parameterType;
+ public void setParameterType(Relation newParameterType) {
+ Relation oldParameterType = parameterType;
parameterType = newParameterType;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.PARAMETER__PARAMETER_TYPE,
@@ -121,7 +120,7 @@ public class ParameterImpl extends VariableImpl implements Parameter {
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case ProblemPackage.PARAMETER__PARAMETER_TYPE:
- setParameterType((ClassDeclaration) newValue);
+ setParameterType((Relation) newValue);
return;
}
super.eSet(featureID, newValue);
@@ -136,7 +135,7 @@ public class ParameterImpl extends VariableImpl implements Parameter {
public void eUnset(int featureID) {
switch (featureID) {
case ProblemPackage.PARAMETER__PARAMETER_TYPE:
- setParameterType((ClassDeclaration) null);
+ setParameterType((Relation) null);
return;
}
super.eUnset(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/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 3bb50cfe..2f4144b9 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
@@ -91,6 +91,8 @@ public class ProblemFactoryImpl extends EFactoryImpl implements ProblemFactory {
return createUnboundedMultiplicity();
case ProblemPackage.ARGUMENT:
return createArgument();
+ case ProblemPackage.ENUM_DECLARATION:
+ return createEnumDeclaration();
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
}
@@ -296,6 +298,16 @@ public class ProblemFactoryImpl extends EFactoryImpl implements ProblemFactory {
return argument;
}
+ /**
+ *
+ *
+ * @generated
+ */
+ public EnumDeclaration createEnumDeclaration() {
+ EnumDeclarationImpl enumDeclaration = new EnumDeclarationImpl();
+ return enumDeclaration;
+ }
+
/**
*
*
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 f412addc..d10ff2f0 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
@@ -15,6 +15,7 @@ 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;
import org.eclipse.viatra.solver.language.model.problem.Conjunction;
+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;
@@ -37,6 +38,7 @@ 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;
+import org.eclipse.viatra.solver.language.model.problem.VariableOrNode;
/**
*
@@ -213,6 +215,20 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
*/
private EClass argumentEClass = null;
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass enumDeclarationEClass = null;
+
+ /**
+ *
+ *
+ * @generated
+ */
+ private EClass variableOrNodeEClass = null;
+
/**
*
*
@@ -784,7 +800,7 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
*
* @generated
*/
- public EReference getArgument_Variable() {
+ public EReference getArgument_VariableOrNode() {
return (EReference) argumentEClass.getEStructuralFeatures().get(0);
}
@@ -797,6 +813,33 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
return (EReference) argumentEClass.getEStructuralFeatures().get(1);
}
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getEnumDeclaration() {
+ return enumDeclarationEClass;
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EReference getEnumDeclaration_Literals() {
+ return (EReference) enumDeclarationEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ public EClass getVariableOrNode() {
+ return variableOrNodeEClass;
+ }
+
/**
*
*
@@ -913,9 +956,14 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
unboundedMultiplicityEClass = createEClass(UNBOUNDED_MULTIPLICITY);
argumentEClass = createEClass(ARGUMENT);
- createEReference(argumentEClass, ARGUMENT__VARIABLE);
+ createEReference(argumentEClass, ARGUMENT__VARIABLE_OR_NODE);
createEReference(argumentEClass, ARGUMENT__SINGLETON_VARIABLE);
+ enumDeclarationEClass = createEClass(ENUM_DECLARATION);
+ createEReference(enumDeclarationEClass, ENUM_DECLARATION__LITERALS);
+
+ variableOrNodeEClass = createEClass(VARIABLE_OR_NODE);
+
// Create enums
logicValueEEnum = createEEnum(LOGIC_VALUE);
}
@@ -957,18 +1005,21 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
predicateDefinitionEClass.getESuperTypes().add(this.getRelation());
predicateDefinitionEClass.getESuperTypes().add(this.getStatement());
parameterEClass.getESuperTypes().add(this.getVariable());
- variableEClass.getESuperTypes().add(this.getNamedElement());
+ variableEClass.getESuperTypes().add(this.getVariableOrNode());
conjunctionEClass.getESuperTypes().add(this.getExistentialQuantifier());
atomEClass.getESuperTypes().add(this.getLiteral());
implicitVariableEClass.getESuperTypes().add(this.getVariable());
negativeLiteralEClass.getESuperTypes().add(this.getExistentialQuantifier());
negativeLiteralEClass.getESuperTypes().add(this.getLiteral());
assertionEClass.getESuperTypes().add(this.getStatement());
- nodeEClass.getESuperTypes().add(this.getNamedElement());
+ nodeEClass.getESuperTypes().add(this.getVariableOrNode());
scopeDeclarationEClass.getESuperTypes().add(this.getStatement());
rangeMultiplicityEClass.getESuperTypes().add(this.getMultiplicity());
exactMultiplicityEClass.getESuperTypes().add(this.getMultiplicity());
unboundedMultiplicityEClass.getESuperTypes().add(this.getMultiplicity());
+ enumDeclarationEClass.getESuperTypes().add(this.getRelation());
+ enumDeclarationEClass.getESuperTypes().add(this.getStatement());
+ variableOrNodeEClass.getESuperTypes().add(this.getNamedElement());
// Initialize classes, features, and operations; add parameters
initEClass(problemEClass, Problem.class, "Problem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -986,7 +1037,7 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
initEAttribute(getClassDeclaration_Abstract(), ecorePackage.getEBoolean(), "abstract", null, 0, 1,
ClassDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE,
!IS_DERIVED, IS_ORDERED);
- initEReference(getClassDeclaration_SuperTypes(), this.getClassDeclaration(), null, "superTypes", null, 0, -1,
+ initEReference(getClassDeclaration_SuperTypes(), this.getRelation(), null, "superTypes", 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_ReferenceDeclarations(), this.getReferenceDeclaration(), null,
@@ -998,8 +1049,8 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
initEClass(referenceDeclarationEClass, ReferenceDeclaration.class, "ReferenceDeclaration", !IS_ABSTRACT,
!IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getReferenceDeclaration_ReferenceType(), this.getClassDeclaration(), null, "referenceType", null,
- 0, 1, ReferenceDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
+ initEReference(getReferenceDeclaration_ReferenceType(), this.getRelation(), null, "referenceType", null, 0, 1,
+ ReferenceDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getReferenceDeclaration_Opposite(), this.getReferenceDeclaration(), null, "opposite", null, 0, 1,
ReferenceDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE,
@@ -1030,7 +1081,7 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
initEClass(parameterEClass, Parameter.class, "Parameter", !IS_ABSTRACT, !IS_INTERFACE,
IS_GENERATED_INSTANCE_CLASS);
- initEReference(getParameter_ParameterType(), this.getClassDeclaration(), null, "parameterType", null, 0, 1,
+ initEReference(getParameter_ParameterType(), this.getRelation(), null, "parameterType", null, 0, 1,
Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES,
!IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -1126,13 +1177,22 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage {
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_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(enumDeclarationEClass, EnumDeclaration.class, "EnumDeclaration", !IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getEnumDeclaration_Literals(), this.getNode(), null, "literals", null, 0, -1,
+ EnumDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES,
+ !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ initEClass(variableOrNodeEClass, VariableOrNode.class, "VariableOrNode", IS_ABSTRACT, !IS_INTERFACE,
+ IS_GENERATED_INSTANCE_CLASS);
+
// 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/ReferenceDeclarationImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java
index 424db23d..8df2715f 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/ReferenceDeclarationImpl.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java
@@ -9,11 +9,10 @@ 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.ClassDeclaration;
import org.eclipse.viatra.solver.language.model.problem.Multiplicity;
import org.eclipse.viatra.solver.language.model.problem.ProblemPackage;
import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration;
+import org.eclipse.viatra.solver.language.model.problem.Relation;
/**
*
@@ -40,7 +39,7 @@ public class ReferenceDeclarationImpl extends RelationImpl implements ReferenceD
* @generated
* @ordered
*/
- protected ClassDeclaration referenceType;
+ protected Relation referenceType;
/**
* The cached value of the '{@link #getOpposite() Opposite}' reference.
@@ -106,10 +105,10 @@ public class ReferenceDeclarationImpl extends RelationImpl implements ReferenceD
*
* @generated
*/
- public ClassDeclaration getReferenceType() {
+ public Relation getReferenceType() {
if (referenceType != null && referenceType.eIsProxy()) {
InternalEObject oldReferenceType = (InternalEObject) referenceType;
- referenceType = (ClassDeclaration) eResolveProxy(oldReferenceType);
+ referenceType = (Relation) eResolveProxy(oldReferenceType);
if (referenceType != oldReferenceType) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE,
@@ -124,7 +123,7 @@ public class ReferenceDeclarationImpl extends RelationImpl implements ReferenceD
*
* @generated
*/
- public ClassDeclaration basicGetReferenceType() {
+ public Relation basicGetReferenceType() {
return referenceType;
}
@@ -133,8 +132,8 @@ public class ReferenceDeclarationImpl extends RelationImpl implements ReferenceD
*
* @generated
*/
- public void setReferenceType(ClassDeclaration newReferenceType) {
- ClassDeclaration oldReferenceType = referenceType;
+ public void setReferenceType(Relation newReferenceType) {
+ Relation oldReferenceType = referenceType;
referenceType = newReferenceType;
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE,
@@ -300,7 +299,7 @@ public class ReferenceDeclarationImpl extends RelationImpl implements ReferenceD
public void eSet(int featureID, Object newValue) {
switch (featureID) {
case ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE:
- setReferenceType((ClassDeclaration) newValue);
+ setReferenceType((Relation) newValue);
return;
case ProblemPackage.REFERENCE_DECLARATION__OPPOSITE:
setOpposite((ReferenceDeclaration) newValue);
@@ -324,7 +323,7 @@ public class ReferenceDeclarationImpl extends RelationImpl implements ReferenceD
public void eUnset(int featureID) {
switch (featureID) {
case ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE:
- setReferenceType((ClassDeclaration) null);
+ setReferenceType((Relation) null);
return;
case ProblemPackage.REFERENCE_DECLARATION__OPPOSITE:
setOpposite((ReferenceDeclaration) null);
diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java
index 0a8cde48..645ac39c 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/VariableImpl.java
+++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java
@@ -14,7 +14,7 @@ import org.eclipse.viatra.solver.language.model.problem.Variable;
*
* @generated
*/
-public abstract class VariableImpl extends NamedElementImpl implements Variable {
+public abstract class VariableImpl extends VariableOrNodeImpl implements Variable {
/**
*
*
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/VariableOrNodeImpl.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/VariableOrNodeImpl.java
new file mode 100644
index 00000000..4964a019
--- /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/VariableOrNodeImpl.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.VariableOrNode;
+
+/**
+ *
+ * An implementation of the model object 'Variable Or Node'.
+ *
+ *
+ * @generated
+ */
+public abstract class VariableOrNodeImpl extends NamedElementImpl implements VariableOrNode {
+ /**
+ *
+ *
+ * @generated
+ */
+ protected VariableOrNodeImpl() {
+ super();
+ }
+
+ /**
+ *
+ *
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return ProblemPackage.Literals.VARIABLE_OR_NODE;
+ }
+
+} //VariableOrNodeImpl
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 c41a4034..3fc3ca75 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
@@ -186,6 +186,16 @@ public class ProblemAdapterFactory extends AdapterFactoryImpl {
return createArgumentAdapter();
}
+ @Override
+ public Adapter caseEnumDeclaration(EnumDeclaration object) {
+ return createEnumDeclarationAdapter();
+ }
+
+ @Override
+ public Adapter caseVariableOrNode(VariableOrNode object) {
+ return createVariableOrNodeAdapter();
+ }
+
@Override
public Adapter defaultCase(EObject object) {
return createEObjectAdapter();
@@ -541,6 +551,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.EnumDeclaration Enum Declaration}'.
+ *
+ * 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.EnumDeclaration
+ * @generated
+ */
+ public Adapter createEnumDeclarationAdapter() {
+ return null;
+ }
+
+ /**
+ * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.VariableOrNode Variable Or Node}'.
+ *
+ * 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.VariableOrNode
+ * @generated
+ */
+ public Adapter createVariableOrNodeAdapter() {
+ 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 361b663c..b74718b5 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
@@ -133,6 +133,8 @@ public class ProblemSwitch extends Switch {
T result = caseParameter(parameter);
if (result == null)
result = caseVariable(parameter);
+ if (result == null)
+ result = caseVariableOrNode(parameter);
if (result == null)
result = caseNamedElement(parameter);
if (result == null)
@@ -142,6 +144,8 @@ public class ProblemSwitch extends Switch {
case ProblemPackage.VARIABLE: {
Variable variable = (Variable) theEObject;
T result = caseVariable(variable);
+ if (result == null)
+ result = caseVariableOrNode(variable);
if (result == null)
result = caseNamedElement(variable);
if (result == null)
@@ -178,6 +182,8 @@ public class ProblemSwitch extends Switch {
T result = caseImplicitVariable(implicitVariable);
if (result == null)
result = caseVariable(implicitVariable);
+ if (result == null)
+ result = caseVariableOrNode(implicitVariable);
if (result == null)
result = caseNamedElement(implicitVariable);
if (result == null)
@@ -214,6 +220,8 @@ public class ProblemSwitch extends Switch {
case ProblemPackage.NODE: {
Node node = (Node) theEObject;
T result = caseNode(node);
+ if (result == null)
+ result = caseVariableOrNode(node);
if (result == null)
result = caseNamedElement(node);
if (result == null)
@@ -284,6 +292,28 @@ public class ProblemSwitch extends Switch {
result = defaultCase(theEObject);
return result;
}
+ case ProblemPackage.ENUM_DECLARATION: {
+ EnumDeclaration enumDeclaration = (EnumDeclaration) theEObject;
+ T result = caseEnumDeclaration(enumDeclaration);
+ if (result == null)
+ result = caseRelation(enumDeclaration);
+ if (result == null)
+ result = caseStatement(enumDeclaration);
+ if (result == null)
+ result = caseNamedElement(enumDeclaration);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
+ case ProblemPackage.VARIABLE_OR_NODE: {
+ VariableOrNode variableOrNode = (VariableOrNode) theEObject;
+ T result = caseVariableOrNode(variableOrNode);
+ if (result == null)
+ result = caseNamedElement(variableOrNode);
+ if (result == null)
+ result = defaultCase(theEObject);
+ return result;
+ }
default:
return defaultCase(theEObject);
}
@@ -649,6 +679,36 @@ public class ProblemSwitch extends Switch {
return null;
}
+ /**
+ * Returns the result of interpreting the object as an instance of 'Enum Declaration'.
+ *
+ * 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 'Enum Declaration'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseEnumDeclaration(EnumDeclaration object) {
+ return null;
+ }
+
+ /**
+ * Returns the result of interpreting the object as an instance of 'Variable Or Node'.
+ *
+ * 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'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseVariableOrNode(VariableOrNode object) {
+ return null;
+ }
+
/**
* Returns the result of interpreting the object as an instance of 'EObject'.
*
--
cgit v1.2.3-70-g09d2