From 7febe0b4781c5bb0fab34895ad642040ae143a8b Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Sun, 27 Jun 2021 23:21:42 +0200 Subject: Add data constant support --- language-model/problem.aird | 819 ++++++++++++++++++--- .../solver/language/model/problem/Argument.java | 52 +- .../solver/language/model/problem/Assertion.java | 12 +- .../language/model/problem/AssertionArgument.java | 18 + .../solver/language/model/problem/Constant.java | 18 + .../language/model/problem/ConstantArgument.java | 44 ++ .../model/problem/ConstantAssertionArgument.java | 44 ++ .../solver/language/model/problem/IntConstant.java | 45 ++ .../model/problem/NodeAssertionArgument.java | 44 ++ .../language/model/problem/NodeValueAssertion.java | 67 ++ .../language/model/problem/ProblemFactory.java | 69 +- .../language/model/problem/ProblemPackage.java | 763 ++++++++++++++++++- .../language/model/problem/RealConstant.java | 45 ++ .../language/model/problem/StringConstant.java | 44 ++ .../model/problem/VariableOrNodeArgument.java | 67 ++ .../language/model/problem/impl/ArgumentImpl.java | 211 +----- .../model/problem/impl/AssertionArgumentImpl.java | 39 + .../language/model/problem/impl/AssertionImpl.java | 66 +- .../model/problem/impl/ConstantArgumentImpl.java | 182 +++++ .../impl/ConstantAssertionArgumentImpl.java | 182 +++++ .../language/model/problem/impl/ConstantImpl.java | 39 + .../model/problem/impl/IntConstantImpl.java | 164 +++++ .../problem/impl/NodeAssertionArgumentImpl.java | 159 ++++ .../model/problem/impl/NodeValueAssertionImpl.java | 247 +++++++ .../model/problem/impl/ProblemFactoryImpl.java | 94 ++- .../model/problem/impl/ProblemPackageImpl.java | 371 +++++++++- .../model/problem/impl/RealConstantImpl.java | 164 +++++ .../model/problem/impl/StringConstantImpl.java | 164 +++++ .../problem/impl/VariableOrNodeArgumentImpl.java | 251 +++++++ .../model/problem/util/ProblemAdapterFactory.java | 194 ++++- .../language/model/problem/util/ProblemSwitch.java | 242 +++++- .../src/main/resources/model/problem.ecore | 36 +- .../src/main/resources/model/problem.genmodel | 33 +- 33 files changed, 4524 insertions(+), 465 deletions(-) create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/AssertionArgument.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Constant.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ConstantArgument.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ConstantAssertionArgument.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/IntConstant.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NodeAssertionArgument.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NodeValueAssertion.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RealConstant.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/StringConstant.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/VariableOrNodeArgument.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionArgumentImpl.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantArgumentImpl.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantAssertionArgumentImpl.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantImpl.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/IntConstantImpl.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeAssertionArgumentImpl.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeValueAssertionImpl.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RealConstantImpl.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/StringConstantImpl.java create mode 100644 language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableOrNodeArgumentImpl.java (limited to 'language-model') diff --git a/language-model/problem.aird b/language-model/problem.aird index 29e6d68c..1339af12 100644 --- a/language-model/problem.aird +++ b/language-model/problem.aird @@ -7,7 +7,7 @@ build/resources/main/model/problem.genmodel - + @@ -142,7 +142,7 @@ - + @@ -160,7 +160,7 @@ - + @@ -173,7 +173,7 @@ - + @@ -203,7 +203,7 @@ - + @@ -291,7 +291,7 @@ - + @@ -311,6 +311,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -516,23 +618,23 @@ - - + + - + - + - + - + @@ -586,17 +688,17 @@ - + - + - + - + @@ -616,22 +718,6 @@ - - - - - - - - - - - - - - - - @@ -650,18 +736,18 @@ - + - + - + - - + + @@ -856,36 +942,20 @@ - - - - - - - - - - - - - - - - - + - + - + - - + + @@ -906,33 +976,33 @@ - + - + - + - + - + - + - + - + @@ -981,7 +1051,7 @@ - + @@ -1050,20 +1120,260 @@ - + - + - + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -1533,13 +1843,13 @@ - + KEEP_LOCATION KEEP_SIZE KEEP_RATIO - + @@ -1566,7 +1876,7 @@ - + KEEP_LOCATION @@ -1590,20 +1900,6 @@ - - - - - - - labelSize - - - labelSize - - - - @@ -1650,7 +1946,7 @@ - + KEEP_LOCATION @@ -1678,12 +1974,12 @@ - + - + italic - + @@ -1925,9 +2221,9 @@ - - - + + + KEEP_LOCATION KEEP_SIZE KEEP_RATIO @@ -1936,18 +2232,22 @@ - + - - + + labelSize + + + labelSize + - - + + @@ -1960,8 +2260,8 @@ - - + + @@ -2077,6 +2377,319 @@ + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + italic + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + italic + + + + + + + + + + + italic + + + + + + + + + + + + italic + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + italic + + + + + + + + + + labelSize + + + labelSize + + + + + + + + + + + italic + + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + italic + + + + + + + + + + + labelSize + + + labelSize + + + + + + + + + + labelSize + + + labelSize + + + + + + + + + + + labelSize + + + labelSize + + + + + + + + KEEP_LOCATION + KEEP_SIZE + KEEP_RATIO + + + + + + + + + + + + labelSize + + + labelSize + + + + + + + + + + + italic + + + + + + + + + + + labelSize + + + labelSize + + + + diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Argument.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Argument.java index 4857b38a..a027e914 100644 --- a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Argument.java +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Argument.java @@ -9,61 +9,11 @@ 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#getVariableOrNode Variable Or Node}
  • - *
  • {@link org.eclipse.viatra.solver.language.model.problem.Argument#getSingletonVariable Singleton Variable}
  • - *
* * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getArgument() - * @model + * @model abstract="true" * @generated */ public interface Argument extends EObject { - /** - * Returns the value of the 'Variable Or Node' reference. - * - * - * @return the value of the 'Variable Or Node' reference. - * @see #setVariableOrNode(VariableOrNode) - * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getArgument_VariableOrNode() - * @model - * @generated - */ - VariableOrNode getVariableOrNode(); - - /** - * 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 Or Node' reference. - * @see #getVariableOrNode() - * @generated - */ - void setVariableOrNode(VariableOrNode value); - - /** - * Returns the value of the 'Singleton Variable' containment reference. - * - * - * @return the value of the 'Singleton Variable' containment reference. - * @see #setSingletonVariable(ImplicitVariable) - * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#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/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Assertion.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Assertion.java index 758212fb..16c7ecff 100644 --- a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Assertion.java +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Assertion.java @@ -14,8 +14,8 @@ import org.eclipse.emf.common.util.EList; *

*
    *
  • {@link org.eclipse.viatra.solver.language.model.problem.Assertion#getRelation Relation}
  • - *
  • {@link org.eclipse.viatra.solver.language.model.problem.Assertion#getArguments Arguments}
  • *
  • {@link org.eclipse.viatra.solver.language.model.problem.Assertion#getValue Value}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.Assertion#getArguments Arguments}
  • *
* * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAssertion() @@ -46,16 +46,16 @@ public interface Assertion extends Statement { 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.Node}. + * Returns the value of the 'Arguments' containment reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.AssertionArgument}. * * - * @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#getAssertion_Arguments() - * @model + * @model containment="true" * @generated */ - EList getArguments(); + EList getArguments(); /** * Returns the value of the 'Value' attribute. diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/AssertionArgument.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/AssertionArgument.java new file mode 100644 index 00000000..054b34a2 --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/AssertionArgument.java @@ -0,0 +1,18 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Assertion Argument'. + * + * + * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAssertionArgument() + * @model abstract="true" + * @generated + */ +public interface AssertionArgument extends EObject { +} // AssertionArgument diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Constant.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Constant.java new file mode 100644 index 00000000..89f12830 --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Constant.java @@ -0,0 +1,18 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Constant'. + * + * + * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getConstant() + * @model abstract="true" + * @generated + */ +public interface Constant extends EObject { +} // Constant diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ConstantArgument.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ConstantArgument.java new file mode 100644 index 00000000..96b631f0 --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ConstantArgument.java @@ -0,0 +1,44 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'Constant Argument'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.ConstantArgument#getConstant Constant}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getConstantArgument() + * @model + * @generated + */ +public interface ConstantArgument extends Argument { + /** + * Returns the value of the 'Constant' containment reference. + * + * + * @return the value of the 'Constant' containment reference. + * @see #setConstant(Constant) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getConstantArgument_Constant() + * @model containment="true" + * @generated + */ + Constant getConstant(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ConstantArgument#getConstant Constant}' containment reference. + * + * + * @param value the new value of the 'Constant' containment reference. + * @see #getConstant() + * @generated + */ + void setConstant(Constant value); + +} // ConstantArgument diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ConstantAssertionArgument.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ConstantAssertionArgument.java new file mode 100644 index 00000000..fd40de62 --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ConstantAssertionArgument.java @@ -0,0 +1,44 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'Constant Assertion Argument'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument#getConstant Constant}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getConstantAssertionArgument() + * @model + * @generated + */ +public interface ConstantAssertionArgument extends AssertionArgument { + /** + * Returns the value of the 'Constant' containment reference. + * + * + * @return the value of the 'Constant' containment reference. + * @see #setConstant(Constant) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getConstantAssertionArgument_Constant() + * @model containment="true" + * @generated + */ + Constant getConstant(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument#getConstant Constant}' containment reference. + * + * + * @param value the new value of the 'Constant' containment reference. + * @see #getConstant() + * @generated + */ + void setConstant(Constant value); + +} // ConstantAssertionArgument diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/IntConstant.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/IntConstant.java new file mode 100644 index 00000000..8c42d183 --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/IntConstant.java @@ -0,0 +1,45 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'Int Constant'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.IntConstant#getIntValue Int Value}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getIntConstant() + * @model + * @generated + */ +public interface IntConstant extends Constant { + /** + * Returns the value of the 'Int Value' attribute. + * The default value is "0". + * + * + * @return the value of the 'Int Value' attribute. + * @see #setIntValue(int) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getIntConstant_IntValue() + * @model default="0" + * @generated + */ + int getIntValue(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.IntConstant#getIntValue Int Value}' attribute. + * + * + * @param value the new value of the 'Int Value' attribute. + * @see #getIntValue() + * @generated + */ + void setIntValue(int value); + +} // IntConstant diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NodeAssertionArgument.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NodeAssertionArgument.java new file mode 100644 index 00000000..fd006405 --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NodeAssertionArgument.java @@ -0,0 +1,44 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'Node Assertion Argument'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument#getNode Node}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNodeAssertionArgument() + * @model + * @generated + */ +public interface NodeAssertionArgument extends AssertionArgument { + /** + * Returns the value of the 'Node' reference. + * + * + * @return the value of the 'Node' reference. + * @see #setNode(Node) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNodeAssertionArgument_Node() + * @model + * @generated + */ + Node getNode(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument#getNode Node}' reference. + * + * + * @param value the new value of the 'Node' reference. + * @see #getNode() + * @generated + */ + void setNode(Node value); + +} // NodeAssertionArgument diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NodeValueAssertion.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NodeValueAssertion.java new file mode 100644 index 00000000..bfe5901a --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NodeValueAssertion.java @@ -0,0 +1,67 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'Node Value Assertion'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion#getNode Node}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion#getValue Value}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNodeValueAssertion() + * @model + * @generated + */ +public interface NodeValueAssertion extends Statement { + /** + * Returns the value of the 'Node' reference. + * + * + * @return the value of the 'Node' reference. + * @see #setNode(Node) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNodeValueAssertion_Node() + * @model + * @generated + */ + Node getNode(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion#getNode Node}' reference. + * + * + * @param value the new value of the 'Node' reference. + * @see #getNode() + * @generated + */ + void setNode(Node value); + + /** + * Returns the value of the 'Value' containment reference. + * + * + * @return the value of the 'Value' containment reference. + * @see #setValue(Constant) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNodeValueAssertion_Value() + * @model containment="true" + * @generated + */ + Constant getValue(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion#getValue Value}' containment reference. + * + * + * @param value the new value of the 'Value' containment reference. + * @see #getValue() + * @generated + */ + void setValue(Constant value); + +} // NodeValueAssertion diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java index e4332d19..bb97cbc9 100644 --- a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java @@ -166,13 +166,13 @@ public interface ProblemFactory extends EFactory { UnboundedMultiplicity createUnboundedMultiplicity(); /** - * Returns a new object of class 'Argument'. + * Returns a new object of class 'Variable Or Node Argument'. * * - * @return a new object of class 'Argument'. + * @return a new object of class 'Variable Or Node Argument'. * @generated */ - Argument createArgument(); + VariableOrNodeArgument createVariableOrNodeArgument(); /** * Returns a new object of class 'Enum Declaration'. @@ -183,6 +183,69 @@ public interface ProblemFactory extends EFactory { */ EnumDeclaration createEnumDeclaration(); + /** + * Returns a new object of class 'Int Constant'. + * + * + * @return a new object of class 'Int Constant'. + * @generated + */ + IntConstant createIntConstant(); + + /** + * Returns a new object of class 'Real Constant'. + * + * + * @return a new object of class 'Real Constant'. + * @generated + */ + RealConstant createRealConstant(); + + /** + * Returns a new object of class 'String Constant'. + * + * + * @return a new object of class 'String Constant'. + * @generated + */ + StringConstant createStringConstant(); + + /** + * Returns a new object of class 'Constant Argument'. + * + * + * @return a new object of class 'Constant Argument'. + * @generated + */ + ConstantArgument createConstantArgument(); + + /** + * Returns a new object of class 'Node Assertion Argument'. + * + * + * @return a new object of class 'Node Assertion Argument'. + * @generated + */ + NodeAssertionArgument createNodeAssertionArgument(); + + /** + * Returns a new object of class 'Constant Assertion Argument'. + * + * + * @return a new object of class 'Constant Assertion Argument'. + * @generated + */ + ConstantAssertionArgument createConstantAssertionArgument(); + + /** + * Returns a new object of class 'Node Value Assertion'. + * + * + * @return a new object of class 'Node Value Assertion'. + * @generated + */ + NodeValueAssertion createNodeValueAssertion(); + /** * Returns the package supported by this factory. * diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java index ec96501d..b711566a 100644 --- a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java @@ -813,22 +813,22 @@ public interface ProblemPackage extends EPackage { int ASSERTION__RELATION = STATEMENT_FEATURE_COUNT + 0; /** - * The feature id for the 'Arguments' reference list. + * The feature id for the 'Value' attribute. * * * @generated * @ordered */ - int ASSERTION__ARGUMENTS = STATEMENT_FEATURE_COUNT + 1; + int ASSERTION__VALUE = STATEMENT_FEATURE_COUNT + 1; /** - * The feature id for the 'Value' attribute. + * The feature id for the 'Arguments' containment reference list. * * * @generated * @ordered */ - int ASSERTION__VALUE = STATEMENT_FEATURE_COUNT + 2; + int ASSERTION__ARGUMENTS = STATEMENT_FEATURE_COUNT + 2; /** * The number of structural features of the 'Assertion' class. @@ -1124,7 +1124,35 @@ public interface ProblemPackage extends EPackage { * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getArgument() * @generated */ - int ARGUMENT = 23; + int ARGUMENT = 31; + + /** + * The number of structural features of the 'Argument' class. + * + * + * @generated + * @ordered + */ + int ARGUMENT_FEATURE_COUNT = 0; + + /** + * The number of operations of the 'Argument' class. + * + * + * @generated + * @ordered + */ + int ARGUMENT_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.VariableOrNodeArgumentImpl Variable Or Node Argument}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.VariableOrNodeArgumentImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getVariableOrNodeArgument() + * @generated + */ + int VARIABLE_OR_NODE_ARGUMENT = 23; /** * The feature id for the 'Variable Or Node' reference. @@ -1133,7 +1161,7 @@ public interface ProblemPackage extends EPackage { * @generated * @ordered */ - int ARGUMENT__VARIABLE_OR_NODE = 0; + int VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE = ARGUMENT_FEATURE_COUNT + 0; /** * The feature id for the 'Singleton Variable' containment reference. @@ -1142,25 +1170,25 @@ public interface ProblemPackage extends EPackage { * @generated * @ordered */ - int ARGUMENT__SINGLETON_VARIABLE = 1; + int VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE = ARGUMENT_FEATURE_COUNT + 1; /** - * The number of structural features of the 'Argument' class. + * The number of structural features of the 'Variable Or Node Argument' class. * * * @generated * @ordered */ - int ARGUMENT_FEATURE_COUNT = 2; + int VARIABLE_OR_NODE_ARGUMENT_FEATURE_COUNT = ARGUMENT_FEATURE_COUNT + 2; /** - * The number of operations of the 'Argument' class. + * The number of operations of the 'Variable Or Node Argument' class. * * * @generated * @ordered */ - int ARGUMENT_OPERATION_COUNT = 0; + int VARIABLE_OR_NODE_ARGUMENT_OPERATION_COUNT = ARGUMENT_OPERATION_COUNT + 0; /** * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.EnumDeclarationImpl Enum Declaration}' class. @@ -1208,6 +1236,330 @@ public interface ProblemPackage extends EPackage { */ int ENUM_DECLARATION_OPERATION_COUNT = RELATION_OPERATION_COUNT + 0; + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ConstantImpl Constant}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ConstantImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getConstant() + * @generated + */ + int CONSTANT = 26; + + /** + * The number of structural features of the 'Constant' class. + * + * + * @generated + * @ordered + */ + int CONSTANT_FEATURE_COUNT = 0; + + /** + * The number of operations of the 'Constant' class. + * + * + * @generated + * @ordered + */ + int CONSTANT_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.IntConstantImpl Int Constant}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.IntConstantImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getIntConstant() + * @generated + */ + int INT_CONSTANT = 27; + + /** + * The feature id for the 'Int Value' attribute. + * + * + * @generated + * @ordered + */ + int INT_CONSTANT__INT_VALUE = CONSTANT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Int Constant' class. + * + * + * @generated + * @ordered + */ + int INT_CONSTANT_FEATURE_COUNT = CONSTANT_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Int Constant' class. + * + * + * @generated + * @ordered + */ + int INT_CONSTANT_OPERATION_COUNT = CONSTANT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.RealConstantImpl Real Constant}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.RealConstantImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getRealConstant() + * @generated + */ + int REAL_CONSTANT = 28; + + /** + * The feature id for the 'Real Value' attribute. + * + * + * @generated + * @ordered + */ + int REAL_CONSTANT__REAL_VALUE = CONSTANT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Real Constant' class. + * + * + * @generated + * @ordered + */ + int REAL_CONSTANT_FEATURE_COUNT = CONSTANT_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Real Constant' class. + * + * + * @generated + * @ordered + */ + int REAL_CONSTANT_OPERATION_COUNT = CONSTANT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.StringConstantImpl String Constant}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.StringConstantImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getStringConstant() + * @generated + */ + int STRING_CONSTANT = 29; + + /** + * The feature id for the 'String Value' attribute. + * + * + * @generated + * @ordered + */ + int STRING_CONSTANT__STRING_VALUE = CONSTANT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'String Constant' class. + * + * + * @generated + * @ordered + */ + int STRING_CONSTANT_FEATURE_COUNT = CONSTANT_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'String Constant' class. + * + * + * @generated + * @ordered + */ + int STRING_CONSTANT_OPERATION_COUNT = CONSTANT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ConstantArgumentImpl Constant Argument}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ConstantArgumentImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getConstantArgument() + * @generated + */ + int CONSTANT_ARGUMENT = 30; + + /** + * The feature id for the 'Constant' containment reference. + * + * + * @generated + * @ordered + */ + int CONSTANT_ARGUMENT__CONSTANT = ARGUMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Constant Argument' class. + * + * + * @generated + * @ordered + */ + int CONSTANT_ARGUMENT_FEATURE_COUNT = ARGUMENT_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Constant Argument' class. + * + * + * @generated + * @ordered + */ + int CONSTANT_ARGUMENT_OPERATION_COUNT = ARGUMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionArgumentImpl Assertion Argument}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.AssertionArgumentImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getAssertionArgument() + * @generated + */ + int ASSERTION_ARGUMENT = 33; + + /** + * The number of structural features of the 'Assertion Argument' class. + * + * + * @generated + * @ordered + */ + int ASSERTION_ARGUMENT_FEATURE_COUNT = 0; + + /** + * The number of operations of the 'Assertion Argument' class. + * + * + * @generated + * @ordered + */ + int ASSERTION_ARGUMENT_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NodeAssertionArgumentImpl Node Assertion Argument}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.NodeAssertionArgumentImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNodeAssertionArgument() + * @generated + */ + int NODE_ASSERTION_ARGUMENT = 32; + + /** + * The feature id for the 'Node' reference. + * + * + * @generated + * @ordered + */ + int NODE_ASSERTION_ARGUMENT__NODE = ASSERTION_ARGUMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Node Assertion Argument' class. + * + * + * @generated + * @ordered + */ + int NODE_ASSERTION_ARGUMENT_FEATURE_COUNT = ASSERTION_ARGUMENT_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Node Assertion Argument' class. + * + * + * @generated + * @ordered + */ + int NODE_ASSERTION_ARGUMENT_OPERATION_COUNT = ASSERTION_ARGUMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ConstantAssertionArgumentImpl Constant Assertion Argument}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ConstantAssertionArgumentImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getConstantAssertionArgument() + * @generated + */ + int CONSTANT_ASSERTION_ARGUMENT = 34; + + /** + * The feature id for the 'Constant' containment reference. + * + * + * @generated + * @ordered + */ + int CONSTANT_ASSERTION_ARGUMENT__CONSTANT = ASSERTION_ARGUMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Constant Assertion Argument' class. + * + * + * @generated + * @ordered + */ + int CONSTANT_ASSERTION_ARGUMENT_FEATURE_COUNT = ASSERTION_ARGUMENT_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Constant Assertion Argument' class. + * + * + * @generated + * @ordered + */ + int CONSTANT_ASSERTION_ARGUMENT_OPERATION_COUNT = ASSERTION_ARGUMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NodeValueAssertionImpl Node Value Assertion}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.NodeValueAssertionImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNodeValueAssertion() + * @generated + */ + int NODE_VALUE_ASSERTION = 35; + + /** + * The feature id for the 'Node' reference. + * + * + * @generated + * @ordered + */ + int NODE_VALUE_ASSERTION__NODE = STATEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Value' containment reference. + * + * + * @generated + * @ordered + */ + int NODE_VALUE_ASSERTION__VALUE = STATEMENT_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Node Value Assertion' class. + * + * + * @generated + * @ordered + */ + int NODE_VALUE_ASSERTION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 2; + + /** + * The number of operations of the 'Node Value Assertion' class. + * + * + * @generated + * @ordered + */ + int NODE_VALUE_ASSERTION_OPERATION_COUNT = STATEMENT_OPERATION_COUNT + 0; + /** * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.LogicValue Logic Value}' enum. * @@ -1216,7 +1568,7 @@ public interface ProblemPackage extends EPackage { * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getLogicValue() * @generated */ - int LOGIC_VALUE = 26; + int LOGIC_VALUE = 36; /** * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Problem Problem}'. @@ -1611,10 +1963,10 @@ public interface ProblemPackage extends EPackage { EReference getAssertion_Relation(); /** - * Returns the meta object for the reference list '{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getArguments Arguments}'. + * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getArguments Arguments}'. * * - * @return the meta object for the reference list 'Arguments'. + * @return the meta object for the containment reference list 'Arguments'. * @see org.eclipse.viatra.solver.language.model.problem.Assertion#getArguments() * @see #getAssertion() * @generated @@ -1789,6 +2141,38 @@ public interface ProblemPackage extends EPackage { */ EClass getUnboundedMultiplicity(); + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument Variable Or Node Argument}'. + * + * + * @return the meta object for class 'Variable Or Node Argument'. + * @see org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument + * @generated + */ + EClass getVariableOrNodeArgument(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument#getVariableOrNode Variable Or Node}'. + * + * + * @return the meta object for the reference 'Variable Or Node'. + * @see org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument#getVariableOrNode() + * @see #getVariableOrNodeArgument() + * @generated + */ + EReference getVariableOrNodeArgument_VariableOrNode(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument#getSingletonVariable Singleton Variable}'. + * + * + * @return the meta object for the containment reference 'Singleton Variable'. + * @see org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument#getSingletonVariable() + * @see #getVariableOrNodeArgument() + * @generated + */ + EReference getVariableOrNodeArgument_SingletonVariable(); + /** * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Argument Argument}'. * @@ -1800,26 +2184,88 @@ public interface ProblemPackage extends EPackage { EClass getArgument(); /** - * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.Argument#getVariableOrNode Variable Or Node}'. + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument Node Assertion Argument}'. * * - * @return the meta object for the reference 'Variable Or Node'. - * @see org.eclipse.viatra.solver.language.model.problem.Argument#getVariableOrNode() - * @see #getArgument() + * @return the meta object for class 'Node Assertion Argument'. + * @see org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument * @generated */ - EReference getArgument_VariableOrNode(); + EClass getNodeAssertionArgument(); /** - * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.Argument#getSingletonVariable Singleton Variable}'. + * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument#getNode Node}'. * * - * @return the meta object for the containment reference 'Singleton Variable'. - * @see org.eclipse.viatra.solver.language.model.problem.Argument#getSingletonVariable() - * @see #getArgument() + * @return the meta object for the reference 'Node'. + * @see org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument#getNode() + * @see #getNodeAssertionArgument() * @generated */ - EReference getArgument_SingletonVariable(); + EReference getNodeAssertionArgument_Node(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.AssertionArgument Assertion Argument}'. + * + * + * @return the meta object for class 'Assertion Argument'. + * @see org.eclipse.viatra.solver.language.model.problem.AssertionArgument + * @generated + */ + EClass getAssertionArgument(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument Constant Assertion Argument}'. + * + * + * @return the meta object for class 'Constant Assertion Argument'. + * @see org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument + * @generated + */ + EClass getConstantAssertionArgument(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument#getConstant Constant}'. + * + * + * @return the meta object for the containment reference 'Constant'. + * @see org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument#getConstant() + * @see #getConstantAssertionArgument() + * @generated + */ + EReference getConstantAssertionArgument_Constant(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion Node Value Assertion}'. + * + * + * @return the meta object for class 'Node Value Assertion'. + * @see org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion + * @generated + */ + EClass getNodeValueAssertion(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion#getNode Node}'. + * + * + * @return the meta object for the reference 'Node'. + * @see org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion#getNode() + * @see #getNodeValueAssertion() + * @generated + */ + EReference getNodeValueAssertion_Node(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion#getValue Value}'. + * + * + * @return the meta object for the containment reference 'Value'. + * @see org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion#getValue() + * @see #getNodeValueAssertion() + * @generated + */ + EReference getNodeValueAssertion_Value(); /** * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.EnumDeclaration Enum Declaration}'. @@ -1852,6 +2298,100 @@ public interface ProblemPackage extends EPackage { */ EClass getVariableOrNode(); + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Constant Constant}'. + * + * + * @return the meta object for class 'Constant'. + * @see org.eclipse.viatra.solver.language.model.problem.Constant + * @generated + */ + EClass getConstant(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.IntConstant Int Constant}'. + * + * + * @return the meta object for class 'Int Constant'. + * @see org.eclipse.viatra.solver.language.model.problem.IntConstant + * @generated + */ + EClass getIntConstant(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.IntConstant#getIntValue Int Value}'. + * + * + * @return the meta object for the attribute 'Int Value'. + * @see org.eclipse.viatra.solver.language.model.problem.IntConstant#getIntValue() + * @see #getIntConstant() + * @generated + */ + EAttribute getIntConstant_IntValue(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.RealConstant Real Constant}'. + * + * + * @return the meta object for class 'Real Constant'. + * @see org.eclipse.viatra.solver.language.model.problem.RealConstant + * @generated + */ + EClass getRealConstant(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.RealConstant#getRealValue Real Value}'. + * + * + * @return the meta object for the attribute 'Real Value'. + * @see org.eclipse.viatra.solver.language.model.problem.RealConstant#getRealValue() + * @see #getRealConstant() + * @generated + */ + EAttribute getRealConstant_RealValue(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.StringConstant String Constant}'. + * + * + * @return the meta object for class 'String Constant'. + * @see org.eclipse.viatra.solver.language.model.problem.StringConstant + * @generated + */ + EClass getStringConstant(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.StringConstant#getStringValue String Value}'. + * + * + * @return the meta object for the attribute 'String Value'. + * @see org.eclipse.viatra.solver.language.model.problem.StringConstant#getStringValue() + * @see #getStringConstant() + * @generated + */ + EAttribute getStringConstant_StringValue(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ConstantArgument Constant Argument}'. + * + * + * @return the meta object for class 'Constant Argument'. + * @see org.eclipse.viatra.solver.language.model.problem.ConstantArgument + * @generated + */ + EClass getConstantArgument(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.ConstantArgument#getConstant Constant}'. + * + * + * @return the meta object for the containment reference 'Constant'. + * @see org.eclipse.viatra.solver.language.model.problem.ConstantArgument#getConstant() + * @see #getConstantArgument() + * @generated + */ + EReference getConstantArgument_Constant(); + /** * Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.model.problem.LogicValue Logic Value}'. * @@ -2212,7 +2752,7 @@ public interface ProblemPackage extends EPackage { EReference ASSERTION__RELATION = eINSTANCE.getAssertion_Relation(); /** - * The meta object literal for the 'Arguments' reference list feature. + * The meta object literal for the 'Arguments' containment reference list feature. * * * @generated @@ -2363,6 +2903,33 @@ public interface ProblemPackage extends EPackage { */ EClass UNBOUNDED_MULTIPLICITY = eINSTANCE.getUnboundedMultiplicity(); + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.VariableOrNodeArgumentImpl Variable Or Node Argument}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.VariableOrNodeArgumentImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getVariableOrNodeArgument() + * @generated + */ + EClass VARIABLE_OR_NODE_ARGUMENT = eINSTANCE.getVariableOrNodeArgument(); + + /** + * The meta object literal for the 'Variable Or Node' reference feature. + * + * + * @generated + */ + EReference VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE = eINSTANCE.getVariableOrNodeArgument_VariableOrNode(); + + /** + * The meta object literal for the 'Singleton Variable' containment reference feature. + * + * + * @generated + */ + EReference VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE = eINSTANCE + .getVariableOrNodeArgument_SingletonVariable(); + /** * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ArgumentImpl Argument}' class. * @@ -2374,20 +2941,76 @@ public interface ProblemPackage extends EPackage { EClass ARGUMENT = eINSTANCE.getArgument(); /** - * The meta object literal for the 'Variable Or Node' reference feature. + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NodeAssertionArgumentImpl Node Assertion Argument}' class. * * + * @see org.eclipse.viatra.solver.language.model.problem.impl.NodeAssertionArgumentImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNodeAssertionArgument() * @generated */ - EReference ARGUMENT__VARIABLE_OR_NODE = eINSTANCE.getArgument_VariableOrNode(); + EClass NODE_ASSERTION_ARGUMENT = eINSTANCE.getNodeAssertionArgument(); /** - * The meta object literal for the 'Singleton Variable' containment reference feature. + * The meta object literal for the 'Node' reference feature. + * + * + * @generated + */ + EReference NODE_ASSERTION_ARGUMENT__NODE = eINSTANCE.getNodeAssertionArgument_Node(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionArgumentImpl Assertion Argument}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.AssertionArgumentImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getAssertionArgument() + * @generated + */ + EClass ASSERTION_ARGUMENT = eINSTANCE.getAssertionArgument(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ConstantAssertionArgumentImpl Constant Assertion Argument}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ConstantAssertionArgumentImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getConstantAssertionArgument() + * @generated + */ + EClass CONSTANT_ASSERTION_ARGUMENT = eINSTANCE.getConstantAssertionArgument(); + + /** + * The meta object literal for the 'Constant' containment reference feature. + * + * + * @generated + */ + EReference CONSTANT_ASSERTION_ARGUMENT__CONSTANT = eINSTANCE.getConstantAssertionArgument_Constant(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NodeValueAssertionImpl Node Value Assertion}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.NodeValueAssertionImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNodeValueAssertion() + * @generated + */ + EClass NODE_VALUE_ASSERTION = eINSTANCE.getNodeValueAssertion(); + + /** + * The meta object literal for the 'Node' reference feature. + * + * + * @generated + */ + EReference NODE_VALUE_ASSERTION__NODE = eINSTANCE.getNodeValueAssertion_Node(); + + /** + * The meta object literal for the 'Value' containment reference feature. * * * @generated */ - EReference ARGUMENT__SINGLETON_VARIABLE = eINSTANCE.getArgument_SingletonVariable(); + EReference NODE_VALUE_ASSERTION__VALUE = eINSTANCE.getNodeValueAssertion_Value(); /** * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.EnumDeclarationImpl Enum Declaration}' class. @@ -2417,6 +3040,88 @@ public interface ProblemPackage extends EPackage { */ EClass VARIABLE_OR_NODE = eINSTANCE.getVariableOrNode(); + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ConstantImpl Constant}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ConstantImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getConstant() + * @generated + */ + EClass CONSTANT = eINSTANCE.getConstant(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.IntConstantImpl Int Constant}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.IntConstantImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getIntConstant() + * @generated + */ + EClass INT_CONSTANT = eINSTANCE.getIntConstant(); + + /** + * The meta object literal for the 'Int Value' attribute feature. + * + * + * @generated + */ + EAttribute INT_CONSTANT__INT_VALUE = eINSTANCE.getIntConstant_IntValue(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.RealConstantImpl Real Constant}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.RealConstantImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getRealConstant() + * @generated + */ + EClass REAL_CONSTANT = eINSTANCE.getRealConstant(); + + /** + * The meta object literal for the 'Real Value' attribute feature. + * + * + * @generated + */ + EAttribute REAL_CONSTANT__REAL_VALUE = eINSTANCE.getRealConstant_RealValue(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.StringConstantImpl String Constant}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.StringConstantImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getStringConstant() + * @generated + */ + EClass STRING_CONSTANT = eINSTANCE.getStringConstant(); + + /** + * The meta object literal for the 'String Value' attribute feature. + * + * + * @generated + */ + EAttribute STRING_CONSTANT__STRING_VALUE = eINSTANCE.getStringConstant_StringValue(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ConstantArgumentImpl Constant Argument}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ConstantArgumentImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getConstantArgument() + * @generated + */ + EClass CONSTANT_ARGUMENT = eINSTANCE.getConstantArgument(); + + /** + * The meta object literal for the 'Constant' containment reference feature. + * + * + * @generated + */ + EReference CONSTANT_ARGUMENT__CONSTANT = eINSTANCE.getConstantArgument_Constant(); + /** * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.LogicValue Logic Value}' enum. * diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RealConstant.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RealConstant.java new file mode 100644 index 00000000..7ece8fb9 --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RealConstant.java @@ -0,0 +1,45 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'Real Constant'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.RealConstant#getRealValue Real Value}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getRealConstant() + * @model + * @generated + */ +public interface RealConstant extends Constant { + /** + * Returns the value of the 'Real Value' attribute. + * The default value is "0.0". + * + * + * @return the value of the 'Real Value' attribute. + * @see #setRealValue(double) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getRealConstant_RealValue() + * @model default="0.0" + * @generated + */ + double getRealValue(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.RealConstant#getRealValue Real Value}' attribute. + * + * + * @param value the new value of the 'Real Value' attribute. + * @see #getRealValue() + * @generated + */ + void setRealValue(double value); + +} // RealConstant diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/StringConstant.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/StringConstant.java new file mode 100644 index 00000000..5a6c6ec8 --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/StringConstant.java @@ -0,0 +1,44 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'String Constant'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.StringConstant#getStringValue String Value}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getStringConstant() + * @model + * @generated + */ +public interface StringConstant extends Constant { + /** + * Returns the value of the 'String Value' attribute. + * + * + * @return the value of the 'String Value' attribute. + * @see #setStringValue(String) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getStringConstant_StringValue() + * @model + * @generated + */ + String getStringValue(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.StringConstant#getStringValue String Value}' attribute. + * + * + * @param value the new value of the 'String Value' attribute. + * @see #getStringValue() + * @generated + */ + void setStringValue(String value); + +} // StringConstant diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/VariableOrNodeArgument.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/VariableOrNodeArgument.java new file mode 100644 index 00000000..02032585 --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/VariableOrNodeArgument.java @@ -0,0 +1,67 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'Variable Or Node Argument'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument#getVariableOrNode Variable Or Node}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument#getSingletonVariable Singleton Variable}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getVariableOrNodeArgument() + * @model + * @generated + */ +public interface VariableOrNodeArgument extends Argument { + /** + * Returns the value of the 'Variable Or Node' reference. + * + * + * @return the value of the 'Variable Or Node' reference. + * @see #setVariableOrNode(VariableOrNode) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getVariableOrNodeArgument_VariableOrNode() + * @model + * @generated + */ + VariableOrNode getVariableOrNode(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument#getVariableOrNode Variable Or Node}' reference. + * + * + * @param value the new value of the 'Variable Or Node' reference. + * @see #getVariableOrNode() + * @generated + */ + void setVariableOrNode(VariableOrNode value); + + /** + * Returns the value of the 'Singleton Variable' containment reference. + * + * + * @return the value of the 'Singleton Variable' containment reference. + * @see #setSingletonVariable(ImplicitVariable) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getVariableOrNodeArgument_SingletonVariable() + * @model containment="true" + * @generated + */ + ImplicitVariable getSingletonVariable(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument#getSingletonVariable Singleton Variable}' containment reference. + * + * + * @param value the new value of the 'Singleton Variable' containment reference. + * @see #getSingletonVariable() + * @generated + */ + void setSingletonVariable(ImplicitVariable value); + +} // VariableOrNodeArgument diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ArgumentImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ArgumentImpl.java index f7d045ca..68b23c09 100644 --- a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ArgumentImpl.java +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ArgumentImpl.java @@ -2,55 +2,20 @@ */ package org.eclipse.viatra.solver.language.model.problem.impl; -import org.eclipse.emf.common.notify.Notification; -import org.eclipse.emf.common.notify.NotificationChain; - import org.eclipse.emf.ecore.EClass; -import org.eclipse.emf.ecore.InternalEObject; - -import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; import org.eclipse.viatra.solver.language.model.problem.Argument; -import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable; import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; -import org.eclipse.viatra.solver.language.model.problem.VariableOrNode; /** * * An implementation of the model object 'Argument'. * - *

- * The following features are implemented: - *

- *
    - *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ArgumentImpl#getVariableOrNode Variable Or Node}
  • - *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ArgumentImpl#getSingletonVariable Singleton Variable}
  • - *
* * @generated */ -public class ArgumentImpl extends MinimalEObjectImpl.Container implements Argument { - /** - * The cached value of the '{@link #getVariableOrNode() Variable Or Node}' reference. - * - * - * @see #getVariableOrNode() - * @generated - * @ordered - */ - protected VariableOrNode variableOrNode; - - /** - * The cached value of the '{@link #getSingletonVariable() Singleton Variable}' containment reference. - * - * - * @see #getSingletonVariable() - * @generated - * @ordered - */ - protected ImplicitVariable singletonVariable; - +public abstract class ArgumentImpl extends MinimalEObjectImpl.Container implements Argument { /** * * @@ -70,178 +35,4 @@ public class ArgumentImpl extends MinimalEObjectImpl.Container implements Argume return ProblemPackage.Literals.ARGUMENT; } - /** - * - * - * @generated - */ - public VariableOrNode getVariableOrNode() { - if (variableOrNode != null && variableOrNode.eIsProxy()) { - InternalEObject oldVariableOrNode = (InternalEObject) variableOrNode; - variableOrNode = (VariableOrNode) eResolveProxy(oldVariableOrNode); - if (variableOrNode != oldVariableOrNode) { - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.ARGUMENT__VARIABLE_OR_NODE, - oldVariableOrNode, variableOrNode)); - } - } - return variableOrNode; - } - - /** - * - * - * @generated - */ - public VariableOrNode basicGetVariableOrNode() { - return variableOrNode; - } - - /** - * - * - * @generated - */ - public void setVariableOrNode(VariableOrNode newVariableOrNode) { - VariableOrNode oldVariableOrNode = variableOrNode; - variableOrNode = newVariableOrNode; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ARGUMENT__VARIABLE_OR_NODE, - oldVariableOrNode, variableOrNode)); - } - - /** - * - * - * @generated - */ - public ImplicitVariable getSingletonVariable() { - return singletonVariable; - } - - /** - * - * - * @generated - */ - public NotificationChain basicSetSingletonVariable(ImplicitVariable newSingletonVariable, NotificationChain msgs) { - ImplicitVariable oldSingletonVariable = singletonVariable; - singletonVariable = newSingletonVariable; - if (eNotificationRequired()) { - ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, - ProblemPackage.ARGUMENT__SINGLETON_VARIABLE, oldSingletonVariable, newSingletonVariable); - if (msgs == null) - msgs = notification; - else - msgs.add(notification); - } - return msgs; - } - - /** - * - * - * @generated - */ - public void setSingletonVariable(ImplicitVariable newSingletonVariable) { - if (newSingletonVariable != singletonVariable) { - NotificationChain msgs = null; - if (singletonVariable != null) - msgs = ((InternalEObject) singletonVariable).eInverseRemove(this, - EOPPOSITE_FEATURE_BASE - ProblemPackage.ARGUMENT__SINGLETON_VARIABLE, null, msgs); - if (newSingletonVariable != null) - msgs = ((InternalEObject) newSingletonVariable).eInverseAdd(this, - EOPPOSITE_FEATURE_BASE - ProblemPackage.ARGUMENT__SINGLETON_VARIABLE, null, msgs); - msgs = basicSetSingletonVariable(newSingletonVariable, msgs); - if (msgs != null) - msgs.dispatch(); - } else if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ARGUMENT__SINGLETON_VARIABLE, - newSingletonVariable, newSingletonVariable)); - } - - /** - * - * - * @generated - */ - @Override - public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { - switch (featureID) { - case ProblemPackage.ARGUMENT__SINGLETON_VARIABLE: - return basicSetSingletonVariable(null, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - - /** - * - * - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) { - switch (featureID) { - case ProblemPackage.ARGUMENT__VARIABLE_OR_NODE: - if (resolve) - return getVariableOrNode(); - return basicGetVariableOrNode(); - case ProblemPackage.ARGUMENT__SINGLETON_VARIABLE: - return getSingletonVariable(); - } - return super.eGet(featureID, resolve, coreType); - } - - /** - * - * - * @generated - */ - @Override - public void eSet(int featureID, Object newValue) { - switch (featureID) { - case ProblemPackage.ARGUMENT__VARIABLE_OR_NODE: - setVariableOrNode((VariableOrNode) newValue); - return; - case ProblemPackage.ARGUMENT__SINGLETON_VARIABLE: - setSingletonVariable((ImplicitVariable) newValue); - return; - } - super.eSet(featureID, newValue); - } - - /** - * - * - * @generated - */ - @Override - public void eUnset(int featureID) { - switch (featureID) { - case ProblemPackage.ARGUMENT__VARIABLE_OR_NODE: - setVariableOrNode((VariableOrNode) null); - return; - case ProblemPackage.ARGUMENT__SINGLETON_VARIABLE: - setSingletonVariable((ImplicitVariable) null); - return; - } - super.eUnset(featureID); - } - - /** - * - * - * @generated - */ - @Override - public boolean eIsSet(int featureID) { - switch (featureID) { - case ProblemPackage.ARGUMENT__VARIABLE_OR_NODE: - return variableOrNode != null; - case ProblemPackage.ARGUMENT__SINGLETON_VARIABLE: - return singletonVariable != null; - } - return super.eIsSet(featureID); - } - } //ArgumentImpl diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionArgumentImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionArgumentImpl.java new file mode 100644 index 00000000..af41b241 --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionArgumentImpl.java @@ -0,0 +1,39 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.viatra.solver.language.model.problem.AssertionArgument; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; + +/** + * + * An implementation of the model object 'Assertion Argument'. + * + * + * @generated + */ +public abstract class AssertionArgumentImpl extends MinimalEObjectImpl.Container implements AssertionArgument { + /** + * + * + * @generated + */ + protected AssertionArgumentImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.ASSERTION_ARGUMENT; + } + +} //AssertionArgumentImpl diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java index 5856a276..2567d57b 100644 --- a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java @@ -6,6 +6,7 @@ import java.util.Collection; import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; import org.eclipse.emf.common.util.EList; import org.eclipse.emf.ecore.EClass; @@ -14,11 +15,11 @@ import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; -import org.eclipse.emf.ecore.util.EObjectResolvingEList; - +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; import org.eclipse.viatra.solver.language.model.problem.Assertion; +import org.eclipse.viatra.solver.language.model.problem.AssertionArgument; import org.eclipse.viatra.solver.language.model.problem.LogicValue; -import org.eclipse.viatra.solver.language.model.problem.Node; import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; import org.eclipse.viatra.solver.language.model.problem.Relation; @@ -31,8 +32,8 @@ import org.eclipse.viatra.solver.language.model.problem.Relation; *

*
    *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl#getRelation Relation}
  • - *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl#getArguments Arguments}
  • *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl#getValue Value}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl#getArguments Arguments}
  • *
* * @generated @@ -49,34 +50,34 @@ public class AssertionImpl extends MinimalEObjectImpl.Container implements Asser protected Relation relation; /** - * The cached value of the '{@link #getArguments() Arguments}' reference list. + * The default value of the '{@link #getValue() Value}' attribute. * * - * @see #getArguments() + * @see #getValue() * @generated * @ordered */ - protected EList arguments; + protected static final LogicValue VALUE_EDEFAULT = LogicValue.TRUE; /** - * The default value of the '{@link #getValue() Value}' attribute. + * The cached value of the '{@link #getValue() Value}' attribute. * * * @see #getValue() * @generated * @ordered */ - protected static final LogicValue VALUE_EDEFAULT = LogicValue.TRUE; + protected LogicValue value = VALUE_EDEFAULT; /** - * The cached value of the '{@link #getValue() Value}' attribute. + * The cached value of the '{@link #getArguments() Arguments}' containment reference list. * * - * @see #getValue() + * @see #getArguments() * @generated * @ordered */ - protected LogicValue value = VALUE_EDEFAULT; + protected EList arguments; /** * @@ -142,13 +143,28 @@ public class AssertionImpl extends MinimalEObjectImpl.Container implements Asser * * @generated */ - public EList getArguments() { + public EList getArguments() { if (arguments == null) { - arguments = new EObjectResolvingEList(Node.class, this, ProblemPackage.ASSERTION__ARGUMENTS); + arguments = new EObjectContainmentEList(AssertionArgument.class, this, + ProblemPackage.ASSERTION__ARGUMENTS); } return arguments; } + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case ProblemPackage.ASSERTION__ARGUMENTS: + return ((InternalEList) getArguments()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + /** * * @@ -182,10 +198,10 @@ public class AssertionImpl extends MinimalEObjectImpl.Container implements Asser if (resolve) return getRelation(); return basicGetRelation(); - case ProblemPackage.ASSERTION__ARGUMENTS: - return getArguments(); case ProblemPackage.ASSERTION__VALUE: return getValue(); + case ProblemPackage.ASSERTION__ARGUMENTS: + return getArguments(); } return super.eGet(featureID, resolve, coreType); } @@ -202,13 +218,13 @@ public class AssertionImpl extends MinimalEObjectImpl.Container implements Asser case ProblemPackage.ASSERTION__RELATION: setRelation((Relation) newValue); return; - case ProblemPackage.ASSERTION__ARGUMENTS: - getArguments().clear(); - getArguments().addAll((Collection) newValue); - return; case ProblemPackage.ASSERTION__VALUE: setValue((LogicValue) newValue); return; + case ProblemPackage.ASSERTION__ARGUMENTS: + getArguments().clear(); + getArguments().addAll((Collection) newValue); + return; } super.eSet(featureID, newValue); } @@ -224,12 +240,12 @@ public class AssertionImpl extends MinimalEObjectImpl.Container implements Asser case ProblemPackage.ASSERTION__RELATION: setRelation((Relation) null); return; - case ProblemPackage.ASSERTION__ARGUMENTS: - getArguments().clear(); - return; case ProblemPackage.ASSERTION__VALUE: setValue(VALUE_EDEFAULT); return; + case ProblemPackage.ASSERTION__ARGUMENTS: + getArguments().clear(); + return; } super.eUnset(featureID); } @@ -244,10 +260,10 @@ public class AssertionImpl extends MinimalEObjectImpl.Container implements Asser switch (featureID) { case ProblemPackage.ASSERTION__RELATION: return relation != null; - case ProblemPackage.ASSERTION__ARGUMENTS: - return arguments != null && !arguments.isEmpty(); case ProblemPackage.ASSERTION__VALUE: return value != VALUE_EDEFAULT; + case ProblemPackage.ASSERTION__ARGUMENTS: + return arguments != null && !arguments.isEmpty(); } return super.eIsSet(featureID); } diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantArgumentImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantArgumentImpl.java new file mode 100644 index 00000000..10798200 --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantArgumentImpl.java @@ -0,0 +1,182 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.model.problem.Constant; +import org.eclipse.viatra.solver.language.model.problem.ConstantArgument; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; + +/** + * + * An implementation of the model object 'Constant Argument'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ConstantArgumentImpl#getConstant Constant}
  • + *
+ * + * @generated + */ +public class ConstantArgumentImpl extends ArgumentImpl implements ConstantArgument { + /** + * The cached value of the '{@link #getConstant() Constant}' containment reference. + * + * + * @see #getConstant() + * @generated + * @ordered + */ + protected Constant constant; + + /** + * + * + * @generated + */ + protected ConstantArgumentImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.CONSTANT_ARGUMENT; + } + + /** + * + * + * @generated + */ + public Constant getConstant() { + return constant; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetConstant(Constant newConstant, NotificationChain msgs) { + Constant oldConstant = constant; + constant = newConstant; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, + ProblemPackage.CONSTANT_ARGUMENT__CONSTANT, oldConstant, newConstant); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setConstant(Constant newConstant) { + if (newConstant != constant) { + NotificationChain msgs = null; + if (constant != null) + msgs = ((InternalEObject) constant).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - ProblemPackage.CONSTANT_ARGUMENT__CONSTANT, null, msgs); + if (newConstant != null) + msgs = ((InternalEObject) newConstant).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - ProblemPackage.CONSTANT_ARGUMENT__CONSTANT, null, msgs); + msgs = basicSetConstant(newConstant, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.CONSTANT_ARGUMENT__CONSTANT, + newConstant, newConstant)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case ProblemPackage.CONSTANT_ARGUMENT__CONSTANT: + return basicSetConstant(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.CONSTANT_ARGUMENT__CONSTANT: + return getConstant(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.CONSTANT_ARGUMENT__CONSTANT: + setConstant((Constant) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.CONSTANT_ARGUMENT__CONSTANT: + setConstant((Constant) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.CONSTANT_ARGUMENT__CONSTANT: + return constant != null; + } + return super.eIsSet(featureID); + } + +} //ConstantArgumentImpl diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantAssertionArgumentImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantAssertionArgumentImpl.java new file mode 100644 index 00000000..6b5b3ed2 --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantAssertionArgumentImpl.java @@ -0,0 +1,182 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.model.problem.Constant; +import org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; + +/** + * + * An implementation of the model object 'Constant Assertion Argument'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ConstantAssertionArgumentImpl#getConstant Constant}
  • + *
+ * + * @generated + */ +public class ConstantAssertionArgumentImpl extends AssertionArgumentImpl implements ConstantAssertionArgument { + /** + * The cached value of the '{@link #getConstant() Constant}' containment reference. + * + * + * @see #getConstant() + * @generated + * @ordered + */ + protected Constant constant; + + /** + * + * + * @generated + */ + protected ConstantAssertionArgumentImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.CONSTANT_ASSERTION_ARGUMENT; + } + + /** + * + * + * @generated + */ + public Constant getConstant() { + return constant; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetConstant(Constant newConstant, NotificationChain msgs) { + Constant oldConstant = constant; + constant = newConstant; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, + ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT, oldConstant, newConstant); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setConstant(Constant newConstant) { + if (newConstant != constant) { + NotificationChain msgs = null; + if (constant != null) + msgs = ((InternalEObject) constant).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT, null, msgs); + if (newConstant != null) + msgs = ((InternalEObject) newConstant).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT, null, msgs); + msgs = basicSetConstant(newConstant, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT, + newConstant, newConstant)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT: + return basicSetConstant(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT: + return getConstant(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT: + setConstant((Constant) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT: + setConstant((Constant) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.CONSTANT_ASSERTION_ARGUMENT__CONSTANT: + return constant != null; + } + return super.eIsSet(featureID); + } + +} //ConstantAssertionArgumentImpl diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantImpl.java new file mode 100644 index 00000000..14be4fb4 --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConstantImpl.java @@ -0,0 +1,39 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.viatra.solver.language.model.problem.Constant; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; + +/** + * + * An implementation of the model object 'Constant'. + * + * + * @generated + */ +public abstract class ConstantImpl extends MinimalEObjectImpl.Container implements Constant { + /** + * + * + * @generated + */ + protected ConstantImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.CONSTANT; + } + +} //ConstantImpl diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/IntConstantImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/IntConstantImpl.java new file mode 100644 index 00000000..1a0da417 --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/IntConstantImpl.java @@ -0,0 +1,164 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.model.problem.IntConstant; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; + +/** + * + * An implementation of the model object 'Int Constant'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.IntConstantImpl#getIntValue Int Value}
  • + *
+ * + * @generated + */ +public class IntConstantImpl extends ConstantImpl implements IntConstant { + /** + * The default value of the '{@link #getIntValue() Int Value}' attribute. + * + * + * @see #getIntValue() + * @generated + * @ordered + */ + protected static final int INT_VALUE_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getIntValue() Int Value}' attribute. + * + * + * @see #getIntValue() + * @generated + * @ordered + */ + protected int intValue = INT_VALUE_EDEFAULT; + + /** + * + * + * @generated + */ + protected IntConstantImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.INT_CONSTANT; + } + + /** + * + * + * @generated + */ + public int getIntValue() { + return intValue; + } + + /** + * + * + * @generated + */ + public void setIntValue(int newIntValue) { + int oldIntValue = intValue; + intValue = newIntValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.INT_CONSTANT__INT_VALUE, oldIntValue, + intValue)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.INT_CONSTANT__INT_VALUE: + return getIntValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.INT_CONSTANT__INT_VALUE: + setIntValue((Integer) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.INT_CONSTANT__INT_VALUE: + setIntValue(INT_VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.INT_CONSTANT__INT_VALUE: + return intValue != INT_VALUE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (intValue: "); + result.append(intValue); + result.append(')'); + return result.toString(); + } + +} //IntConstantImpl diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeAssertionArgumentImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeAssertionArgumentImpl.java new file mode 100644 index 00000000..27a702fd --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeAssertionArgumentImpl.java @@ -0,0 +1,159 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.model.problem.Node; +import org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; + +/** + * + * An implementation of the model object 'Node Assertion Argument'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.NodeAssertionArgumentImpl#getNode Node}
  • + *
+ * + * @generated + */ +public class NodeAssertionArgumentImpl extends AssertionArgumentImpl implements NodeAssertionArgument { + /** + * The cached value of the '{@link #getNode() Node}' reference. + * + * + * @see #getNode() + * @generated + * @ordered + */ + protected Node node; + + /** + * + * + * @generated + */ + protected NodeAssertionArgumentImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.NODE_ASSERTION_ARGUMENT; + } + + /** + * + * + * @generated + */ + public Node getNode() { + if (node != null && node.eIsProxy()) { + InternalEObject oldNode = (InternalEObject) node; + node = (Node) eResolveProxy(oldNode); + if (node != oldNode) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + ProblemPackage.NODE_ASSERTION_ARGUMENT__NODE, oldNode, node)); + } + } + return node; + } + + /** + * + * + * @generated + */ + public Node basicGetNode() { + return node; + } + + /** + * + * + * @generated + */ + public void setNode(Node newNode) { + Node oldNode = node; + node = newNode; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.NODE_ASSERTION_ARGUMENT__NODE, oldNode, + node)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.NODE_ASSERTION_ARGUMENT__NODE: + if (resolve) + return getNode(); + return basicGetNode(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.NODE_ASSERTION_ARGUMENT__NODE: + setNode((Node) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.NODE_ASSERTION_ARGUMENT__NODE: + setNode((Node) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.NODE_ASSERTION_ARGUMENT__NODE: + return node != null; + } + return super.eIsSet(featureID); + } + +} //NodeAssertionArgumentImpl diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeValueAssertionImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeValueAssertionImpl.java new file mode 100644 index 00000000..0078b35e --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeValueAssertionImpl.java @@ -0,0 +1,247 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.viatra.solver.language.model.problem.Constant; +import org.eclipse.viatra.solver.language.model.problem.Node; +import org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; + +/** + * + * An implementation of the model object 'Node Value Assertion'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.NodeValueAssertionImpl#getNode Node}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.NodeValueAssertionImpl#getValue Value}
  • + *
+ * + * @generated + */ +public class NodeValueAssertionImpl extends MinimalEObjectImpl.Container implements NodeValueAssertion { + /** + * The cached value of the '{@link #getNode() Node}' reference. + * + * + * @see #getNode() + * @generated + * @ordered + */ + protected Node node; + + /** + * The cached value of the '{@link #getValue() Value}' containment reference. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected Constant value; + + /** + * + * + * @generated + */ + protected NodeValueAssertionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.NODE_VALUE_ASSERTION; + } + + /** + * + * + * @generated + */ + public Node getNode() { + if (node != null && node.eIsProxy()) { + InternalEObject oldNode = (InternalEObject) node; + node = (Node) eResolveProxy(oldNode); + if (node != oldNode) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.NODE_VALUE_ASSERTION__NODE, + oldNode, node)); + } + } + return node; + } + + /** + * + * + * @generated + */ + public Node basicGetNode() { + return node; + } + + /** + * + * + * @generated + */ + public void setNode(Node newNode) { + Node oldNode = node; + node = newNode; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.NODE_VALUE_ASSERTION__NODE, oldNode, + node)); + } + + /** + * + * + * @generated + */ + public Constant getValue() { + return value; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetValue(Constant newValue, NotificationChain msgs) { + Constant oldValue = value; + value = newValue; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, + ProblemPackage.NODE_VALUE_ASSERTION__VALUE, oldValue, newValue); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setValue(Constant newValue) { + if (newValue != value) { + NotificationChain msgs = null; + if (value != null) + msgs = ((InternalEObject) value).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - ProblemPackage.NODE_VALUE_ASSERTION__VALUE, null, msgs); + if (newValue != null) + msgs = ((InternalEObject) newValue).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - ProblemPackage.NODE_VALUE_ASSERTION__VALUE, null, msgs); + msgs = basicSetValue(newValue, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.NODE_VALUE_ASSERTION__VALUE, newValue, + newValue)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case ProblemPackage.NODE_VALUE_ASSERTION__VALUE: + return basicSetValue(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.NODE_VALUE_ASSERTION__NODE: + if (resolve) + return getNode(); + return basicGetNode(); + case ProblemPackage.NODE_VALUE_ASSERTION__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.NODE_VALUE_ASSERTION__NODE: + setNode((Node) newValue); + return; + case ProblemPackage.NODE_VALUE_ASSERTION__VALUE: + setValue((Constant) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.NODE_VALUE_ASSERTION__NODE: + setNode((Node) null); + return; + case ProblemPackage.NODE_VALUE_ASSERTION__VALUE: + setValue((Constant) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.NODE_VALUE_ASSERTION__NODE: + return node != null; + case ProblemPackage.NODE_VALUE_ASSERTION__VALUE: + return value != null; + } + return super.eIsSet(featureID); + } + +} //NodeValueAssertionImpl diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java index 2f4144b9..27da13e2 100644 --- a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java @@ -89,10 +89,24 @@ public class ProblemFactoryImpl extends EFactoryImpl implements ProblemFactory { return createExactMultiplicity(); case ProblemPackage.UNBOUNDED_MULTIPLICITY: return createUnboundedMultiplicity(); - case ProblemPackage.ARGUMENT: - return createArgument(); + case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT: + return createVariableOrNodeArgument(); case ProblemPackage.ENUM_DECLARATION: return createEnumDeclaration(); + case ProblemPackage.INT_CONSTANT: + return createIntConstant(); + case ProblemPackage.REAL_CONSTANT: + return createRealConstant(); + case ProblemPackage.STRING_CONSTANT: + return createStringConstant(); + case ProblemPackage.CONSTANT_ARGUMENT: + return createConstantArgument(); + case ProblemPackage.NODE_ASSERTION_ARGUMENT: + return createNodeAssertionArgument(); + case ProblemPackage.CONSTANT_ASSERTION_ARGUMENT: + return createConstantAssertionArgument(); + case ProblemPackage.NODE_VALUE_ASSERTION: + return createNodeValueAssertion(); default: throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); } @@ -293,9 +307,9 @@ public class ProblemFactoryImpl extends EFactoryImpl implements ProblemFactory { * * @generated */ - public Argument createArgument() { - ArgumentImpl argument = new ArgumentImpl(); - return argument; + public VariableOrNodeArgument createVariableOrNodeArgument() { + VariableOrNodeArgumentImpl variableOrNodeArgument = new VariableOrNodeArgumentImpl(); + return variableOrNodeArgument; } /** @@ -308,6 +322,76 @@ public class ProblemFactoryImpl extends EFactoryImpl implements ProblemFactory { return enumDeclaration; } + /** + * + * + * @generated + */ + public IntConstant createIntConstant() { + IntConstantImpl intConstant = new IntConstantImpl(); + return intConstant; + } + + /** + * + * + * @generated + */ + public RealConstant createRealConstant() { + RealConstantImpl realConstant = new RealConstantImpl(); + return realConstant; + } + + /** + * + * + * @generated + */ + public StringConstant createStringConstant() { + StringConstantImpl stringConstant = new StringConstantImpl(); + return stringConstant; + } + + /** + * + * + * @generated + */ + public ConstantArgument createConstantArgument() { + ConstantArgumentImpl constantArgument = new ConstantArgumentImpl(); + return constantArgument; + } + + /** + * + * + * @generated + */ + public NodeAssertionArgument createNodeAssertionArgument() { + NodeAssertionArgumentImpl nodeAssertionArgument = new NodeAssertionArgumentImpl(); + return nodeAssertionArgument; + } + + /** + * + * + * @generated + */ + public ConstantAssertionArgument createConstantAssertionArgument() { + ConstantAssertionArgumentImpl constantAssertionArgument = new ConstantAssertionArgumentImpl(); + return constantAssertionArgument; + } + + /** + * + * + * @generated + */ + public NodeValueAssertion createNodeValueAssertion() { + NodeValueAssertionImpl nodeValueAssertion = new NodeValueAssertionImpl(); + return nodeValueAssertion; + } + /** * * diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java index d10ff2f0..ee72c538 100644 --- a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java @@ -12,33 +12,43 @@ import org.eclipse.emf.ecore.impl.EPackageImpl; import org.eclipse.viatra.solver.language.model.problem.Argument; import org.eclipse.viatra.solver.language.model.problem.Assertion; +import org.eclipse.viatra.solver.language.model.problem.AssertionArgument; import org.eclipse.viatra.solver.language.model.problem.Atom; import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration; import org.eclipse.viatra.solver.language.model.problem.Conjunction; +import org.eclipse.viatra.solver.language.model.problem.Constant; +import org.eclipse.viatra.solver.language.model.problem.ConstantArgument; +import org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument; import org.eclipse.viatra.solver.language.model.problem.EnumDeclaration; import org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity; import org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier; import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable; +import org.eclipse.viatra.solver.language.model.problem.IntConstant; import org.eclipse.viatra.solver.language.model.problem.Literal; import org.eclipse.viatra.solver.language.model.problem.LogicValue; import org.eclipse.viatra.solver.language.model.problem.Multiplicity; import org.eclipse.viatra.solver.language.model.problem.NamedElement; import org.eclipse.viatra.solver.language.model.problem.NegativeLiteral; import org.eclipse.viatra.solver.language.model.problem.Node; +import org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument; +import org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion; import org.eclipse.viatra.solver.language.model.problem.Parameter; import org.eclipse.viatra.solver.language.model.problem.PredicateDefinition; import org.eclipse.viatra.solver.language.model.problem.Problem; import org.eclipse.viatra.solver.language.model.problem.ProblemFactory; import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; import org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity; +import org.eclipse.viatra.solver.language.model.problem.RealConstant; import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration; import org.eclipse.viatra.solver.language.model.problem.Relation; import org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration; import org.eclipse.viatra.solver.language.model.problem.Statement; +import org.eclipse.viatra.solver.language.model.problem.StringConstant; import org.eclipse.viatra.solver.language.model.problem.TypeScope; import org.eclipse.viatra.solver.language.model.problem.UnboundedMultiplicity; import org.eclipse.viatra.solver.language.model.problem.Variable; import org.eclipse.viatra.solver.language.model.problem.VariableOrNode; +import org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument; /** * @@ -208,6 +218,13 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage { */ private EClass unboundedMultiplicityEClass = null; + /** + * + * + * @generated + */ + private EClass variableOrNodeArgumentEClass = null; + /** * * @@ -215,6 +232,34 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage { */ private EClass argumentEClass = null; + /** + * + * + * @generated + */ + private EClass nodeAssertionArgumentEClass = null; + + /** + * + * + * @generated + */ + private EClass assertionArgumentEClass = null; + + /** + * + * + * @generated + */ + private EClass constantAssertionArgumentEClass = null; + + /** + * + * + * @generated + */ + private EClass nodeValueAssertionEClass = null; + /** * * @@ -229,6 +274,41 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage { */ private EClass variableOrNodeEClass = null; + /** + * + * + * @generated + */ + private EClass constantEClass = null; + + /** + * + * + * @generated + */ + private EClass intConstantEClass = null; + + /** + * + * + * @generated + */ + private EClass realConstantEClass = null; + + /** + * + * + * @generated + */ + private EClass stringConstantEClass = null; + + /** + * + * + * @generated + */ + private EClass constantArgumentEClass = null; + /** * * @@ -639,7 +719,7 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage { * @generated */ public EReference getAssertion_Arguments() { - return (EReference) assertionEClass.getEStructuralFeatures().get(1); + return (EReference) assertionEClass.getEStructuralFeatures().get(2); } /** @@ -648,7 +728,7 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage { * @generated */ public EAttribute getAssertion_Value() { - return (EAttribute) assertionEClass.getEStructuralFeatures().get(2); + return (EAttribute) assertionEClass.getEStructuralFeatures().get(1); } /** @@ -786,6 +866,33 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage { return unboundedMultiplicityEClass; } + /** + * + * + * @generated + */ + public EClass getVariableOrNodeArgument() { + return variableOrNodeArgumentEClass; + } + + /** + * + * + * @generated + */ + public EReference getVariableOrNodeArgument_VariableOrNode() { + return (EReference) variableOrNodeArgumentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getVariableOrNodeArgument_SingletonVariable() { + return (EReference) variableOrNodeArgumentEClass.getEStructuralFeatures().get(1); + } + /** * * @@ -800,8 +907,8 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage { * * @generated */ - public EReference getArgument_VariableOrNode() { - return (EReference) argumentEClass.getEStructuralFeatures().get(0); + public EClass getNodeAssertionArgument() { + return nodeAssertionArgumentEClass; } /** @@ -809,8 +916,62 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage { * * @generated */ - public EReference getArgument_SingletonVariable() { - return (EReference) argumentEClass.getEStructuralFeatures().get(1); + public EReference getNodeAssertionArgument_Node() { + return (EReference) nodeAssertionArgumentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getAssertionArgument() { + return assertionArgumentEClass; + } + + /** + * + * + * @generated + */ + public EClass getConstantAssertionArgument() { + return constantAssertionArgumentEClass; + } + + /** + * + * + * @generated + */ + public EReference getConstantAssertionArgument_Constant() { + return (EReference) constantAssertionArgumentEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getNodeValueAssertion() { + return nodeValueAssertionEClass; + } + + /** + * + * + * @generated + */ + public EReference getNodeValueAssertion_Node() { + return (EReference) nodeValueAssertionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getNodeValueAssertion_Value() { + return (EReference) nodeValueAssertionEClass.getEStructuralFeatures().get(1); } /** @@ -840,6 +1001,87 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage { return variableOrNodeEClass; } + /** + * + * + * @generated + */ + public EClass getConstant() { + return constantEClass; + } + + /** + * + * + * @generated + */ + public EClass getIntConstant() { + return intConstantEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getIntConstant_IntValue() { + return (EAttribute) intConstantEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getRealConstant() { + return realConstantEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getRealConstant_RealValue() { + return (EAttribute) realConstantEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getStringConstant() { + return stringConstantEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getStringConstant_StringValue() { + return (EAttribute) stringConstantEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getConstantArgument() { + return constantArgumentEClass; + } + + /** + * + * + * @generated + */ + public EReference getConstantArgument_Constant() { + return (EReference) constantArgumentEClass.getEStructuralFeatures().get(0); + } + /** * * @@ -929,8 +1171,8 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage { assertionEClass = createEClass(ASSERTION); createEReference(assertionEClass, ASSERTION__RELATION); - createEReference(assertionEClass, ASSERTION__ARGUMENTS); createEAttribute(assertionEClass, ASSERTION__VALUE); + createEReference(assertionEClass, ASSERTION__ARGUMENTS); nodeEClass = createEClass(NODE); @@ -955,15 +1197,43 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage { unboundedMultiplicityEClass = createEClass(UNBOUNDED_MULTIPLICITY); - argumentEClass = createEClass(ARGUMENT); - createEReference(argumentEClass, ARGUMENT__VARIABLE_OR_NODE); - createEReference(argumentEClass, ARGUMENT__SINGLETON_VARIABLE); + variableOrNodeArgumentEClass = createEClass(VARIABLE_OR_NODE_ARGUMENT); + createEReference(variableOrNodeArgumentEClass, VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE); + createEReference(variableOrNodeArgumentEClass, VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE); enumDeclarationEClass = createEClass(ENUM_DECLARATION); createEReference(enumDeclarationEClass, ENUM_DECLARATION__LITERALS); variableOrNodeEClass = createEClass(VARIABLE_OR_NODE); + constantEClass = createEClass(CONSTANT); + + intConstantEClass = createEClass(INT_CONSTANT); + createEAttribute(intConstantEClass, INT_CONSTANT__INT_VALUE); + + realConstantEClass = createEClass(REAL_CONSTANT); + createEAttribute(realConstantEClass, REAL_CONSTANT__REAL_VALUE); + + stringConstantEClass = createEClass(STRING_CONSTANT); + createEAttribute(stringConstantEClass, STRING_CONSTANT__STRING_VALUE); + + constantArgumentEClass = createEClass(CONSTANT_ARGUMENT); + createEReference(constantArgumentEClass, CONSTANT_ARGUMENT__CONSTANT); + + argumentEClass = createEClass(ARGUMENT); + + nodeAssertionArgumentEClass = createEClass(NODE_ASSERTION_ARGUMENT); + createEReference(nodeAssertionArgumentEClass, NODE_ASSERTION_ARGUMENT__NODE); + + assertionArgumentEClass = createEClass(ASSERTION_ARGUMENT); + + constantAssertionArgumentEClass = createEClass(CONSTANT_ASSERTION_ARGUMENT); + createEReference(constantAssertionArgumentEClass, CONSTANT_ASSERTION_ARGUMENT__CONSTANT); + + nodeValueAssertionEClass = createEClass(NODE_VALUE_ASSERTION); + createEReference(nodeValueAssertionEClass, NODE_VALUE_ASSERTION__NODE); + createEReference(nodeValueAssertionEClass, NODE_VALUE_ASSERTION__VALUE); + // Create enums logicValueEEnum = createEEnum(LOGIC_VALUE); } @@ -1017,9 +1287,17 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage { rangeMultiplicityEClass.getESuperTypes().add(this.getMultiplicity()); exactMultiplicityEClass.getESuperTypes().add(this.getMultiplicity()); unboundedMultiplicityEClass.getESuperTypes().add(this.getMultiplicity()); + variableOrNodeArgumentEClass.getESuperTypes().add(this.getArgument()); enumDeclarationEClass.getESuperTypes().add(this.getRelation()); enumDeclarationEClass.getESuperTypes().add(this.getStatement()); variableOrNodeEClass.getESuperTypes().add(this.getNamedElement()); + intConstantEClass.getESuperTypes().add(this.getConstant()); + realConstantEClass.getESuperTypes().add(this.getConstant()); + stringConstantEClass.getESuperTypes().add(this.getConstant()); + constantArgumentEClass.getESuperTypes().add(this.getArgument()); + nodeAssertionArgumentEClass.getESuperTypes().add(this.getAssertionArgument()); + constantAssertionArgumentEClass.getESuperTypes().add(this.getAssertionArgument()); + nodeValueAssertionEClass.getESuperTypes().add(this.getStatement()); // Initialize classes, features, and operations; add parameters initEClass(problemEClass, Problem.class, "Problem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); @@ -1126,11 +1404,11 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage { initEReference(getAssertion_Relation(), this.getRelation(), null, "relation", null, 0, 1, Assertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getAssertion_Arguments(), this.getNode(), null, "arguments", null, 0, -1, Assertion.class, - !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, - IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getAssertion_Value(), this.getLogicValue(), "value", null, 0, 1, Assertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getAssertion_Arguments(), this.getAssertionArgument(), null, "arguments", null, 0, -1, + Assertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(nodeEClass, Node.class, "Node", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); @@ -1175,14 +1453,14 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage { initEClass(unboundedMultiplicityEClass, UnboundedMultiplicity.class, "UnboundedMultiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - initEClass(argumentEClass, Argument.class, "Argument", !IS_ABSTRACT, !IS_INTERFACE, - IS_GENERATED_INSTANCE_CLASS); - initEReference(getArgument_VariableOrNode(), this.getVariableOrNode(), null, "variableOrNode", null, 0, 1, - Argument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, - !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getArgument_SingletonVariable(), this.getImplicitVariable(), null, "singletonVariable", null, 0, - 1, Argument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, - !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEClass(variableOrNodeArgumentEClass, VariableOrNodeArgument.class, "VariableOrNodeArgument", !IS_ABSTRACT, + !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getVariableOrNodeArgument_VariableOrNode(), this.getVariableOrNode(), null, "variableOrNode", + null, 0, 1, VariableOrNodeArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, + IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getVariableOrNodeArgument_SingletonVariable(), this.getImplicitVariable(), null, + "singletonVariable", null, 0, 1, VariableOrNodeArgument.class, !IS_TRANSIENT, !IS_VOLATILE, + IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(enumDeclarationEClass, EnumDeclaration.class, "EnumDeclaration", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); @@ -1193,6 +1471,57 @@ public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage { initEClass(variableOrNodeEClass, VariableOrNode.class, "VariableOrNode", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEClass(constantEClass, Constant.class, "Constant", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(intConstantEClass, IntConstant.class, "IntConstant", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getIntConstant_IntValue(), ecorePackage.getEInt(), "intValue", "0", 0, 1, IntConstant.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(realConstantEClass, RealConstant.class, "RealConstant", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getRealConstant_RealValue(), ecorePackage.getEDouble(), "realValue", "0.0", 0, 1, + RealConstant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + + initEClass(stringConstantEClass, StringConstant.class, "StringConstant", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getStringConstant_StringValue(), ecorePackage.getEString(), "stringValue", null, 0, 1, + StringConstant.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + + initEClass(constantArgumentEClass, ConstantArgument.class, "ConstantArgument", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEReference(getConstantArgument_Constant(), this.getConstant(), null, "constant", null, 0, 1, + ConstantArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(argumentEClass, Argument.class, "Argument", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(nodeAssertionArgumentEClass, NodeAssertionArgument.class, "NodeAssertionArgument", !IS_ABSTRACT, + !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getNodeAssertionArgument_Node(), this.getNode(), null, "node", null, 0, 1, + NodeAssertionArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, + IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(assertionArgumentEClass, AssertionArgument.class, "AssertionArgument", IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + + initEClass(constantAssertionArgumentEClass, ConstantAssertionArgument.class, "ConstantAssertionArgument", + !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getConstantAssertionArgument_Constant(), this.getConstant(), null, "constant", null, 0, 1, + ConstantAssertionArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, + !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(nodeValueAssertionEClass, NodeValueAssertion.class, "NodeValueAssertion", !IS_ABSTRACT, + !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getNodeValueAssertion_Node(), this.getNode(), null, "node", null, 0, 1, NodeValueAssertion.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getNodeValueAssertion_Value(), this.getConstant(), null, "value", null, 0, 1, + NodeValueAssertion.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + // Initialize enums and add enum literals initEEnum(logicValueEEnum, LogicValue.class, "LogicValue"); addEEnumLiteral(logicValueEEnum, LogicValue.TRUE); diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RealConstantImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RealConstantImpl.java new file mode 100644 index 00000000..f28d7b5f --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RealConstantImpl.java @@ -0,0 +1,164 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; +import org.eclipse.viatra.solver.language.model.problem.RealConstant; + +/** + * + * An implementation of the model object 'Real Constant'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.RealConstantImpl#getRealValue Real Value}
  • + *
+ * + * @generated + */ +public class RealConstantImpl extends ConstantImpl implements RealConstant { + /** + * The default value of the '{@link #getRealValue() Real Value}' attribute. + * + * + * @see #getRealValue() + * @generated + * @ordered + */ + protected static final double REAL_VALUE_EDEFAULT = 0.0; + + /** + * The cached value of the '{@link #getRealValue() Real Value}' attribute. + * + * + * @see #getRealValue() + * @generated + * @ordered + */ + protected double realValue = REAL_VALUE_EDEFAULT; + + /** + * + * + * @generated + */ + protected RealConstantImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.REAL_CONSTANT; + } + + /** + * + * + * @generated + */ + public double getRealValue() { + return realValue; + } + + /** + * + * + * @generated + */ + public void setRealValue(double newRealValue) { + double oldRealValue = realValue; + realValue = newRealValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.REAL_CONSTANT__REAL_VALUE, + oldRealValue, realValue)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.REAL_CONSTANT__REAL_VALUE: + return getRealValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.REAL_CONSTANT__REAL_VALUE: + setRealValue((Double) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.REAL_CONSTANT__REAL_VALUE: + setRealValue(REAL_VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.REAL_CONSTANT__REAL_VALUE: + return realValue != REAL_VALUE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (realValue: "); + result.append(realValue); + result.append(')'); + return result.toString(); + } + +} //RealConstantImpl diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/StringConstantImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/StringConstantImpl.java new file mode 100644 index 00000000..9eb05cf3 --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/StringConstantImpl.java @@ -0,0 +1,164 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; +import org.eclipse.viatra.solver.language.model.problem.StringConstant; + +/** + * + * An implementation of the model object 'String Constant'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.StringConstantImpl#getStringValue String Value}
  • + *
+ * + * @generated + */ +public class StringConstantImpl extends ConstantImpl implements StringConstant { + /** + * The default value of the '{@link #getStringValue() String Value}' attribute. + * + * + * @see #getStringValue() + * @generated + * @ordered + */ + protected static final String STRING_VALUE_EDEFAULT = null; + + /** + * The cached value of the '{@link #getStringValue() String Value}' attribute. + * + * + * @see #getStringValue() + * @generated + * @ordered + */ + protected String stringValue = STRING_VALUE_EDEFAULT; + + /** + * + * + * @generated + */ + protected StringConstantImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.STRING_CONSTANT; + } + + /** + * + * + * @generated + */ + public String getStringValue() { + return stringValue; + } + + /** + * + * + * @generated + */ + public void setStringValue(String newStringValue) { + String oldStringValue = stringValue; + stringValue = newStringValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.STRING_CONSTANT__STRING_VALUE, + oldStringValue, stringValue)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.STRING_CONSTANT__STRING_VALUE: + return getStringValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.STRING_CONSTANT__STRING_VALUE: + setStringValue((String) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.STRING_CONSTANT__STRING_VALUE: + setStringValue(STRING_VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.STRING_CONSTANT__STRING_VALUE: + return STRING_VALUE_EDEFAULT == null ? stringValue != null : !STRING_VALUE_EDEFAULT.equals(stringValue); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (stringValue: "); + result.append(stringValue); + result.append(')'); + return result.toString(); + } + +} //StringConstantImpl diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableOrNodeArgumentImpl.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableOrNodeArgumentImpl.java new file mode 100644 index 00000000..693d5cdd --- /dev/null +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableOrNodeArgumentImpl.java @@ -0,0 +1,251 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; +import org.eclipse.viatra.solver.language.model.problem.VariableOrNode; +import org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument; + +/** + * + * An implementation of the model object 'Variable Or Node Argument'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.VariableOrNodeArgumentImpl#getVariableOrNode Variable Or Node}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.VariableOrNodeArgumentImpl#getSingletonVariable Singleton Variable}
  • + *
+ * + * @generated + */ +public class VariableOrNodeArgumentImpl extends ArgumentImpl implements VariableOrNodeArgument { + /** + * The cached value of the '{@link #getVariableOrNode() Variable Or Node}' reference. + * + * + * @see #getVariableOrNode() + * @generated + * @ordered + */ + protected VariableOrNode variableOrNode; + + /** + * The cached value of the '{@link #getSingletonVariable() Singleton Variable}' containment reference. + * + * + * @see #getSingletonVariable() + * @generated + * @ordered + */ + protected ImplicitVariable singletonVariable; + + /** + * + * + * @generated + */ + protected VariableOrNodeArgumentImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.VARIABLE_OR_NODE_ARGUMENT; + } + + /** + * + * + * @generated + */ + public VariableOrNode getVariableOrNode() { + if (variableOrNode != null && variableOrNode.eIsProxy()) { + InternalEObject oldVariableOrNode = (InternalEObject) variableOrNode; + variableOrNode = (VariableOrNode) eResolveProxy(oldVariableOrNode); + if (variableOrNode != oldVariableOrNode) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE, oldVariableOrNode, + variableOrNode)); + } + } + return variableOrNode; + } + + /** + * + * + * @generated + */ + public VariableOrNode basicGetVariableOrNode() { + return variableOrNode; + } + + /** + * + * + * @generated + */ + public void setVariableOrNode(VariableOrNode newVariableOrNode) { + VariableOrNode oldVariableOrNode = variableOrNode; + variableOrNode = newVariableOrNode; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE, oldVariableOrNode, variableOrNode)); + } + + /** + * + * + * @generated + */ + public ImplicitVariable getSingletonVariable() { + return singletonVariable; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetSingletonVariable(ImplicitVariable newSingletonVariable, NotificationChain msgs) { + ImplicitVariable oldSingletonVariable = singletonVariable; + singletonVariable = newSingletonVariable; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, + ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE, oldSingletonVariable, + newSingletonVariable); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setSingletonVariable(ImplicitVariable newSingletonVariable) { + if (newSingletonVariable != singletonVariable) { + NotificationChain msgs = null; + if (singletonVariable != null) + msgs = ((InternalEObject) singletonVariable).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE, null, + msgs); + if (newSingletonVariable != null) + msgs = ((InternalEObject) newSingletonVariable).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE, null, + msgs); + msgs = basicSetSingletonVariable(newSingletonVariable, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, + ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE, newSingletonVariable, + newSingletonVariable)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE: + return basicSetSingletonVariable(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE: + if (resolve) + return getVariableOrNode(); + return basicGetVariableOrNode(); + case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE: + return getSingletonVariable(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE: + setVariableOrNode((VariableOrNode) newValue); + return; + case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE: + setSingletonVariable((ImplicitVariable) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE: + setVariableOrNode((VariableOrNode) null); + return; + case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE: + setSingletonVariable((ImplicitVariable) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__VARIABLE_OR_NODE: + return variableOrNode != null; + case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT__SINGLETON_VARIABLE: + return singletonVariable != null; + } + return super.eIsSet(featureID); + } + +} //VariableOrNodeArgumentImpl diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java index 3fc3ca75..07246d70 100644 --- a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java @@ -182,8 +182,8 @@ public class ProblemAdapterFactory extends AdapterFactoryImpl { } @Override - public Adapter caseArgument(Argument object) { - return createArgumentAdapter(); + public Adapter caseVariableOrNodeArgument(VariableOrNodeArgument object) { + return createVariableOrNodeArgumentAdapter(); } @Override @@ -196,6 +196,56 @@ public class ProblemAdapterFactory extends AdapterFactoryImpl { return createVariableOrNodeAdapter(); } + @Override + public Adapter caseConstant(Constant object) { + return createConstantAdapter(); + } + + @Override + public Adapter caseIntConstant(IntConstant object) { + return createIntConstantAdapter(); + } + + @Override + public Adapter caseRealConstant(RealConstant object) { + return createRealConstantAdapter(); + } + + @Override + public Adapter caseStringConstant(StringConstant object) { + return createStringConstantAdapter(); + } + + @Override + public Adapter caseConstantArgument(ConstantArgument object) { + return createConstantArgumentAdapter(); + } + + @Override + public Adapter caseArgument(Argument object) { + return createArgumentAdapter(); + } + + @Override + public Adapter caseNodeAssertionArgument(NodeAssertionArgument object) { + return createNodeAssertionArgumentAdapter(); + } + + @Override + public Adapter caseAssertionArgument(AssertionArgument object) { + return createAssertionArgumentAdapter(); + } + + @Override + public Adapter caseConstantAssertionArgument(ConstantAssertionArgument object) { + return createConstantAssertionArgumentAdapter(); + } + + @Override + public Adapter caseNodeValueAssertion(NodeValueAssertion object) { + return createNodeValueAssertionAdapter(); + } + @Override public Adapter defaultCase(EObject object) { return createEObjectAdapter(); @@ -537,6 +587,20 @@ public class ProblemAdapterFactory extends AdapterFactoryImpl { return null; } + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument Variable Or Node Argument}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.VariableOrNodeArgument + * @generated + */ + public Adapter createVariableOrNodeArgumentAdapter() { + return null; + } + /** * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Argument Argument}'. * @@ -551,6 +615,62 @@ public class ProblemAdapterFactory extends AdapterFactoryImpl { return null; } + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument Node Assertion Argument}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.NodeAssertionArgument + * @generated + */ + public Adapter createNodeAssertionArgumentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.AssertionArgument Assertion Argument}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.AssertionArgument + * @generated + */ + public Adapter createAssertionArgumentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument Constant Assertion Argument}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.ConstantAssertionArgument + * @generated + */ + public Adapter createConstantAssertionArgumentAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion Node Value Assertion}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.NodeValueAssertion + * @generated + */ + public Adapter createNodeValueAssertionAdapter() { + return null; + } + /** * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.EnumDeclaration Enum Declaration}'. * @@ -579,6 +699,76 @@ public class ProblemAdapterFactory extends AdapterFactoryImpl { return null; } + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Constant Constant}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.Constant + * @generated + */ + public Adapter createConstantAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.IntConstant Int Constant}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.IntConstant + * @generated + */ + public Adapter createIntConstantAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.RealConstant Real Constant}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.RealConstant + * @generated + */ + public Adapter createRealConstantAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.StringConstant String Constant}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.StringConstant + * @generated + */ + public Adapter createStringConstantAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.ConstantArgument Constant Argument}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.ConstantArgument + * @generated + */ + public Adapter createConstantArgumentAdapter() { + return null; + } + /** * Creates a new adapter for the default case. * diff --git a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java index b74718b5..837d3a03 100644 --- a/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java +++ b/language-model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java @@ -285,9 +285,11 @@ public class ProblemSwitch extends Switch { result = defaultCase(theEObject); return result; } - case ProblemPackage.ARGUMENT: { - Argument argument = (Argument) theEObject; - T result = caseArgument(argument); + case ProblemPackage.VARIABLE_OR_NODE_ARGUMENT: { + VariableOrNodeArgument variableOrNodeArgument = (VariableOrNodeArgument) theEObject; + T result = caseVariableOrNodeArgument(variableOrNodeArgument); + if (result == null) + result = caseArgument(variableOrNodeArgument); if (result == null) result = defaultCase(theEObject); return result; @@ -314,6 +316,90 @@ public class ProblemSwitch extends Switch { result = defaultCase(theEObject); return result; } + case ProblemPackage.CONSTANT: { + Constant constant = (Constant) theEObject; + T result = caseConstant(constant); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.INT_CONSTANT: { + IntConstant intConstant = (IntConstant) theEObject; + T result = caseIntConstant(intConstant); + if (result == null) + result = caseConstant(intConstant); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.REAL_CONSTANT: { + RealConstant realConstant = (RealConstant) theEObject; + T result = caseRealConstant(realConstant); + if (result == null) + result = caseConstant(realConstant); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.STRING_CONSTANT: { + StringConstant stringConstant = (StringConstant) theEObject; + T result = caseStringConstant(stringConstant); + if (result == null) + result = caseConstant(stringConstant); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.CONSTANT_ARGUMENT: { + ConstantArgument constantArgument = (ConstantArgument) theEObject; + T result = caseConstantArgument(constantArgument); + if (result == null) + result = caseArgument(constantArgument); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.ARGUMENT: { + Argument argument = (Argument) theEObject; + T result = caseArgument(argument); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.NODE_ASSERTION_ARGUMENT: { + NodeAssertionArgument nodeAssertionArgument = (NodeAssertionArgument) theEObject; + T result = caseNodeAssertionArgument(nodeAssertionArgument); + if (result == null) + result = caseAssertionArgument(nodeAssertionArgument); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.ASSERTION_ARGUMENT: { + AssertionArgument assertionArgument = (AssertionArgument) theEObject; + T result = caseAssertionArgument(assertionArgument); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.CONSTANT_ASSERTION_ARGUMENT: { + ConstantAssertionArgument constantAssertionArgument = (ConstantAssertionArgument) theEObject; + T result = caseConstantAssertionArgument(constantAssertionArgument); + if (result == null) + result = caseAssertionArgument(constantAssertionArgument); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.NODE_VALUE_ASSERTION: { + NodeValueAssertion nodeValueAssertion = (NodeValueAssertion) theEObject; + T result = caseNodeValueAssertion(nodeValueAssertion); + if (result == null) + result = caseStatement(nodeValueAssertion); + if (result == null) + result = defaultCase(theEObject); + return result; + } default: return defaultCase(theEObject); } @@ -664,6 +750,21 @@ public class ProblemSwitch extends Switch { return null; } + /** + * Returns the result of interpreting the object as an instance of 'Variable Or Node Argument'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Variable Or Node Argument'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVariableOrNodeArgument(VariableOrNodeArgument object) { + return null; + } + /** * Returns the result of interpreting the object as an instance of 'Argument'. * @@ -679,6 +780,66 @@ public class ProblemSwitch extends Switch { return null; } + /** + * Returns the result of interpreting the object as an instance of 'Node Assertion Argument'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Node Assertion Argument'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNodeAssertionArgument(NodeAssertionArgument object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Assertion Argument'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Assertion Argument'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAssertionArgument(AssertionArgument object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Constant Assertion Argument'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Constant Assertion Argument'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConstantAssertionArgument(ConstantAssertionArgument object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Node Value Assertion'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Node Value Assertion'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNodeValueAssertion(NodeValueAssertion object) { + return null; + } + /** * Returns the result of interpreting the object as an instance of 'Enum Declaration'. * @@ -709,6 +870,81 @@ public class ProblemSwitch extends Switch { return null; } + /** + * Returns the result of interpreting the object as an instance of 'Constant'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Constant'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConstant(Constant object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Int Constant'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Int Constant'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseIntConstant(IntConstant object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Real Constant'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Real Constant'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRealConstant(RealConstant object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'String Constant'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'String Constant'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStringConstant(StringConstant object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Constant Argument'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Constant Argument'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConstantArgument(ConstantArgument object) { + return null; + } + /** * Returns the result of interpreting the object as an instance of 'EObject'. * diff --git a/language-model/src/main/resources/model/problem.ecore b/language-model/src/main/resources/model/problem.ecore index 99404f61..43d69a86 100644 --- a/language-model/src/main/resources/model/problem.ecore +++ b/language-model/src/main/resources/model/problem.ecore @@ -61,9 +61,9 @@ - + @@ -94,7 +94,7 @@ defaultValueLiteral="1"/> - + @@ -104,4 +104,34 @@ eType="#//Node" containment="true"/> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/language-model/src/main/resources/model/problem.genmodel b/language-model/src/main/resources/model/problem.genmodel index 8a881ff7..fb93d60e 100644 --- a/language-model/src/main/resources/model/problem.genmodel +++ b/language-model/src/main/resources/model/problem.genmodel @@ -62,8 +62,8 @@ - + @@ -84,13 +84,38 @@ - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3-54-g00ecf