From baba88758a0ea5f671ab4a2aeacec374bed938c4 Mon Sep 17 00:00:00 2001 From: Kristóf Marussy Date: Fri, 25 Jun 2021 17:12:45 +0200 Subject: Add initial prototype --- .../solver/language/model/problem/Assertion.java | 85 + .../viatra/solver/language/model/problem/Atom.java | 82 + .../language/model/problem/ClassDeclaration.java | 72 + .../solver/language/model/problem/Conjunction.java | 36 + .../language/model/problem/ExactMultiplicity.java | 45 + .../model/problem/ExistentialQuantifier.java | 38 + .../language/model/problem/ImplicitVariable.java | 16 + .../solver/language/model/problem/Literal.java | 18 + .../solver/language/model/problem/LogicValue.java | 227 +++ .../language/model/problem/Multiplicity.java | 18 + .../language/model/problem/NamedElement.java | 46 + .../language/model/problem/NegativeLiteral.java | 44 + .../viatra/solver/language/model/problem/Node.java | 16 + .../solver/language/model/problem/Parameter.java | 44 + .../model/problem/PredicateDefinition.java | 72 + .../solver/language/model/problem/Problem.java | 51 + .../language/model/problem/ProblemFactory.java | 168 ++ .../language/model/problem/ProblemPackage.java | 2101 ++++++++++++++++++++ .../language/model/problem/RangeMultiplicity.java | 69 + .../model/problem/ReferenceDeclaration.java | 113 ++ .../solver/language/model/problem/Relation.java | 16 + .../language/model/problem/ScopeDeclaration.java | 36 + .../solver/language/model/problem/Statement.java | 18 + .../solver/language/model/problem/TypeScope.java | 92 + .../solver/language/model/problem/Variable.java | 16 + .../language/model/problem/impl/AssertionImpl.java | 272 +++ .../language/model/problem/impl/AtomImpl.java | 271 +++ .../model/problem/impl/ClassDeclarationImpl.java | 260 +++ .../model/problem/impl/ConjunctionImpl.java | 189 ++ .../model/problem/impl/ExactMultiplicityImpl.java | 164 ++ .../model/problem/impl/ImplicitVariableImpl.java | 37 + .../language/model/problem/impl/LiteralImpl.java | 39 + .../model/problem/impl/MultiplicityImpl.java | 39 + .../model/problem/impl/NamedElementImpl.java | 164 ++ .../model/problem/impl/NegativeLiteralImpl.java | 228 +++ .../language/model/problem/impl/NodeImpl.java | 37 + .../language/model/problem/impl/ParameterImpl.java | 159 ++ .../problem/impl/PredicateDefinitionImpl.java | 262 +++ .../model/problem/impl/ProblemFactoryImpl.java | 317 +++ .../language/model/problem/impl/ProblemImpl.java | 189 ++ .../model/problem/impl/ProblemPackageImpl.java | 1061 ++++++++++ .../model/problem/impl/RangeMultiplicityImpl.java | 219 ++ .../problem/impl/ReferenceDeclarationImpl.java | 379 ++++ .../language/model/problem/impl/RelationImpl.java | 37 + .../model/problem/impl/ScopeDeclarationImpl.java | 153 ++ .../language/model/problem/impl/TypeScopeImpl.java | 317 +++ .../language/model/problem/impl/VariableImpl.java | 37 + .../model/problem/util/ProblemAdapterFactory.java | 518 +++++ .../language/model/problem/util/ProblemSwitch.java | 620 ++++++ 49 files changed, 9507 insertions(+) create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Assertion.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Atom.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ClassDeclaration.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Conjunction.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExactMultiplicity.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExistentialQuantifier.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ImplicitVariable.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Literal.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/LogicValue.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Multiplicity.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NamedElement.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NegativeLiteral.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Node.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Parameter.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/PredicateDefinition.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Problem.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RangeMultiplicity.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ReferenceDeclaration.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Relation.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ScopeDeclaration.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Statement.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/TypeScope.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Variable.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ExactMultiplicityImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ImplicitVariableImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/LiteralImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/MultiplicityImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NamedElementImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/PredicateDefinitionImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RangeMultiplicityImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RelationImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ScopeDeclarationImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/TypeScopeImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java create mode 100644 org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java (limited to 'org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model') diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Assertion.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Assertion.java new file mode 100644 index 00000000..758212fb --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Assertion.java @@ -0,0 +1,85 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Assertion'. + * + * + *

+ * The following features are supported: + *

+ * + * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAssertion() + * @model + * @generated + */ +public interface Assertion extends Statement { + /** + * Returns the value of the 'Relation' reference. + * + * + * @return the value of the 'Relation' reference. + * @see #setRelation(Relation) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAssertion_Relation() + * @model + * @generated + */ + Relation getRelation(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getRelation Relation}' reference. + * + * + * @param value the new value of the 'Relation' reference. + * @see #getRelation() + * @generated + */ + 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}. + * + * + * @return the value of the 'Arguments' reference list. + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAssertion_Arguments() + * @model + * @generated + */ + EList getArguments(); + + /** + * Returns the value of the 'Value' attribute. + * The literals are from the enumeration {@link org.eclipse.viatra.solver.language.model.problem.LogicValue}. + * + * + * @return the value of the 'Value' attribute. + * @see org.eclipse.viatra.solver.language.model.problem.LogicValue + * @see #setValue(LogicValue) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAssertion_Value() + * @model + * @generated + */ + LogicValue getValue(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getValue Value}' attribute. + * + * + * @param value the new value of the 'Value' attribute. + * @see org.eclipse.viatra.solver.language.model.problem.LogicValue + * @see #getValue() + * @generated + */ + void setValue(LogicValue value); + +} // Assertion diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Atom.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Atom.java new file mode 100644 index 00000000..bee08d8d --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Atom.java @@ -0,0 +1,82 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Atom'. + * + * + *

+ * The following features are supported: + *

+ * + * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAtom() + * @model + * @generated + */ +public interface Atom extends Literal { + /** + * Returns the value of the 'Relation' reference. + * + * + * @return the value of the 'Relation' reference. + * @see #setRelation(Relation) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAtom_Relation() + * @model + * @generated + */ + Relation getRelation(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.Atom#getRelation Relation}' reference. + * + * + * @param value the new value of the 'Relation' reference. + * @see #getRelation() + * @generated + */ + void setRelation(Relation value); + + /** + * Returns the value of the 'Arguments' reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Variable}. + * + * + * @return the value of the 'Arguments' reference list. + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAtom_Arguments() + * @model + * @generated + */ + EList getArguments(); + + /** + * Returns the value of the 'Transitive Closure' attribute. + * + * + * @return the value of the 'Transitive Closure' attribute. + * @see #setTransitiveClosure(boolean) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getAtom_TransitiveClosure() + * @model + * @generated + */ + boolean isTransitiveClosure(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.Atom#isTransitiveClosure Transitive Closure}' attribute. + * + * + * @param value the new value of the 'Transitive Closure' attribute. + * @see #isTransitiveClosure() + * @generated + */ + void setTransitiveClosure(boolean value); + +} // Atom diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ClassDeclaration.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ClassDeclaration.java new file mode 100644 index 00000000..7212d006 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ClassDeclaration.java @@ -0,0 +1,72 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Class Declaration'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#isAbstract Abstract}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getSuperTypes Super Types}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getReferenceDeclarations Reference Declarations}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getClassDeclaration() + * @model + * @generated + */ +public interface ClassDeclaration extends Relation, Statement { + /** + * Returns the value of the 'Abstract' attribute. + * + * + * @return the value of the 'Abstract' attribute. + * @see #setAbstract(boolean) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getClassDeclaration_Abstract() + * @model + * @generated + */ + boolean isAbstract(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#isAbstract Abstract}' attribute. + * + * + * @param value the new value of the 'Abstract' attribute. + * @see #isAbstract() + * @generated + */ + void setAbstract(boolean value); + + /** + * Returns the value of the 'Super Types' reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration}. + * + * + * @return the value of the 'Super Types' reference list. + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getClassDeclaration_SuperTypes() + * @model + * @generated + */ + EList getSuperTypes(); + + /** + * Returns the value of the 'Reference Declarations' containment reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration}. + * + * + * @return the value of the 'Reference Declarations' containment reference list. + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getClassDeclaration_ReferenceDeclarations() + * @model containment="true" + * @generated + */ + EList getReferenceDeclarations(); + +} // ClassDeclaration diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Conjunction.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Conjunction.java new file mode 100644 index 00000000..df8e0cef --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Conjunction.java @@ -0,0 +1,36 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Conjunction'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.Conjunction#getLiterals Literals}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getConjunction() + * @model + * @generated + */ +public interface Conjunction extends ExistentialQuantifier { + /** + * Returns the value of the 'Literals' containment reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Literal}. + * + * + * @return the value of the 'Literals' containment reference list. + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getConjunction_Literals() + * @model containment="true" + * @generated + */ + EList getLiterals(); + +} // Conjunction diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExactMultiplicity.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExactMultiplicity.java new file mode 100644 index 00000000..413c2ad1 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExactMultiplicity.java @@ -0,0 +1,45 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'Exact Multiplicity'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity#getExactValue Exact Value}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getExactMultiplicity() + * @model + * @generated + */ +public interface ExactMultiplicity extends Multiplicity { + /** + * Returns the value of the 'Exact Value' attribute. + * The default value is "1". + * + * + * @return the value of the 'Exact Value' attribute. + * @see #setExactValue(int) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getExactMultiplicity_ExactValue() + * @model default="1" + * @generated + */ + int getExactValue(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity#getExactValue Exact Value}' attribute. + * + * + * @param value the new value of the 'Exact Value' attribute. + * @see #getExactValue() + * @generated + */ + void setExactValue(int value); + +} // ExactMultiplicity diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExistentialQuantifier.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExistentialQuantifier.java new file mode 100644 index 00000000..1a1d5f8a --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ExistentialQuantifier.java @@ -0,0 +1,38 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Existential Quantifier'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier#getImplicitVariables Implicit Variables}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getExistentialQuantifier() + * @model interface="true" abstract="true" + * @generated + */ +public interface ExistentialQuantifier extends EObject { + /** + * Returns the value of the 'Implicit Variables' containment reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.ImplicitVariable}. + * + * + * @return the value of the 'Implicit Variables' containment reference list. + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getExistentialQuantifier_ImplicitVariables() + * @model containment="true" + * @generated + */ + EList getImplicitVariables(); + +} // ExistentialQuantifier diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ImplicitVariable.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ImplicitVariable.java new file mode 100644 index 00000000..6d1793c6 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ImplicitVariable.java @@ -0,0 +1,16 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'Implicit Variable'. + * + * + * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getImplicitVariable() + * @model + * @generated + */ +public interface ImplicitVariable extends Variable { +} // ImplicitVariable diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Literal.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Literal.java new file mode 100644 index 00000000..acccf79b --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Literal.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 'Literal'. + * + * + * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getLiteral() + * @model abstract="true" + * @generated + */ +public interface Literal extends EObject { +} // Literal diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/LogicValue.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/LogicValue.java new file mode 100644 index 00000000..2efbd25a --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/LogicValue.java @@ -0,0 +1,227 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.eclipse.emf.common.util.Enumerator; + +/** + * + * A representation of the literals of the enumeration 'Logic Value', + * and utility methods for working with them. + * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getLogicValue() + * @model + * @generated + */ +public enum LogicValue implements Enumerator { + /** + * The 'TRUE' literal object. + * + * + * @see #TRUE_VALUE + * @generated + * @ordered + */ + TRUE(0, "TRUE", "TRUE"), + + /** + * The 'FALSE' literal object. + * + * + * @see #FALSE_VALUE + * @generated + * @ordered + */ + FALSE(1, "FALSE", "FALSE"), + + /** + * The 'UNKNOWN' literal object. + * + * + * @see #UNKNOWN_VALUE + * @generated + * @ordered + */ + UNKNOWN(2, "UNKNOWN", "UNKNOWN"); + + /** + * The 'TRUE' literal value. + * + * + * @see #TRUE + * @model + * @generated + * @ordered + */ + public static final int TRUE_VALUE = 0; + + /** + * The 'FALSE' literal value. + * + * + * @see #FALSE + * @model + * @generated + * @ordered + */ + public static final int FALSE_VALUE = 1; + + /** + * The 'UNKNOWN' literal value. + * + * + * @see #UNKNOWN + * @model + * @generated + * @ordered + */ + public static final int UNKNOWN_VALUE = 2; + + /** + * An array of all the 'Logic Value' enumerators. + * + * + * @generated + */ + private static final LogicValue[] VALUES_ARRAY = new LogicValue[] { TRUE, FALSE, UNKNOWN, }; + + /** + * A public read-only list of all the 'Logic Value' enumerators. + * + * + * @generated + */ + public static final List VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY)); + + /** + * Returns the 'Logic Value' literal with the specified literal value. + * + * + * @param literal the literal. + * @return the matching enumerator or null. + * @generated + */ + public static LogicValue get(String literal) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + LogicValue result = VALUES_ARRAY[i]; + if (result.toString().equals(literal)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Logic Value' literal with the specified name. + * + * + * @param name the name. + * @return the matching enumerator or null. + * @generated + */ + public static LogicValue getByName(String name) { + for (int i = 0; i < VALUES_ARRAY.length; ++i) { + LogicValue result = VALUES_ARRAY[i]; + if (result.getName().equals(name)) { + return result; + } + } + return null; + } + + /** + * Returns the 'Logic Value' literal with the specified integer value. + * + * + * @param value the integer value. + * @return the matching enumerator or null. + * @generated + */ + public static LogicValue get(int value) { + switch (value) { + case TRUE_VALUE: + return TRUE; + case FALSE_VALUE: + return FALSE; + case UNKNOWN_VALUE: + return UNKNOWN; + } + return null; + } + + /** + * + * + * @generated + */ + private final int value; + + /** + * + * + * @generated + */ + private final String name; + + /** + * + * + * @generated + */ + private final String literal; + + /** + * Only this class can construct instances. + * + * + * @generated + */ + private LogicValue(int value, String name, String literal) { + this.value = value; + this.name = name; + this.literal = literal; + } + + /** + * + * + * @generated + */ + public int getValue() { + return value; + } + + /** + * + * + * @generated + */ + public String getName() { + return name; + } + + /** + * + * + * @generated + */ + public String getLiteral() { + return literal; + } + + /** + * Returns the literal value of the enumerator, which is its string representation. + * + * + * @generated + */ + @Override + public String toString() { + return literal; + } + +} //LogicValue diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Multiplicity.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Multiplicity.java new file mode 100644 index 00000000..d3d573fa --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Multiplicity.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 'Multiplicity'. + * + * + * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getMultiplicity() + * @model abstract="true" + * @generated + */ +public interface Multiplicity extends EObject { +} // Multiplicity diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NamedElement.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NamedElement.java new file mode 100644 index 00000000..3302b041 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NamedElement.java @@ -0,0 +1,46 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Named Element'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.NamedElement#getName Name}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNamedElement() + * @model abstract="true" + * @generated + */ +public interface NamedElement extends EObject { + /** + * Returns the value of the 'Name' attribute. + * + * + * @return the value of the 'Name' attribute. + * @see #setName(String) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNamedElement_Name() + * @model + * @generated + */ + String getName(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.NamedElement#getName Name}' attribute. + * + * + * @param value the new value of the 'Name' attribute. + * @see #getName() + * @generated + */ + void setName(String value); + +} // NamedElement diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NegativeLiteral.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NegativeLiteral.java new file mode 100644 index 00000000..ac3aa2b9 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/NegativeLiteral.java @@ -0,0 +1,44 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'Negative Literal'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.NegativeLiteral#getAtom Atom}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNegativeLiteral() + * @model + * @generated + */ +public interface NegativeLiteral extends ExistentialQuantifier, Literal { + /** + * Returns the value of the 'Atom' containment reference. + * + * + * @return the value of the 'Atom' containment reference. + * @see #setAtom(Atom) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNegativeLiteral_Atom() + * @model containment="true" + * @generated + */ + Atom getAtom(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.NegativeLiteral#getAtom Atom}' containment reference. + * + * + * @param value the new value of the 'Atom' containment reference. + * @see #getAtom() + * @generated + */ + void setAtom(Atom value); + +} // NegativeLiteral diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Node.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Node.java new file mode 100644 index 00000000..e6547083 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Node.java @@ -0,0 +1,16 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'Node'. + * + * + * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getNode() + * @model + * @generated + */ +public interface Node extends NamedElement { +} // Node diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Parameter.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Parameter.java new file mode 100644 index 00000000..5ed8ac3c --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Parameter.java @@ -0,0 +1,44 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'Parameter'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.Parameter#getParameterType Parameter Type}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getParameter() + * @model + * @generated + */ +public interface Parameter extends Variable { + /** + * Returns the value of the 'Parameter Type' reference. + * + * + * @return the value of the 'Parameter Type' reference. + * @see #setParameterType(ClassDeclaration) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getParameter_ParameterType() + * @model + * @generated + */ + ClassDeclaration getParameterType(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.Parameter#getParameterType Parameter Type}' reference. + * + * + * @param value the new value of the 'Parameter Type' reference. + * @see #getParameterType() + * @generated + */ + void setParameterType(ClassDeclaration value); + +} // Parameter diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/PredicateDefinition.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/PredicateDefinition.java new file mode 100644 index 00000000..175d5fff --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/PredicateDefinition.java @@ -0,0 +1,72 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Predicate Definition'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#isError Error}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#getParameters Parameters}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#getBodies Bodies}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getPredicateDefinition() + * @model + * @generated + */ +public interface PredicateDefinition extends Relation, Statement { + /** + * Returns the value of the 'Error' attribute. + * + * + * @return the value of the 'Error' attribute. + * @see #setError(boolean) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getPredicateDefinition_Error() + * @model + * @generated + */ + boolean isError(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#isError Error}' attribute. + * + * + * @param value the new value of the 'Error' attribute. + * @see #isError() + * @generated + */ + void setError(boolean value); + + /** + * Returns the value of the 'Parameters' containment reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Parameter}. + * + * + * @return the value of the 'Parameters' containment reference list. + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getPredicateDefinition_Parameters() + * @model containment="true" + * @generated + */ + EList getParameters(); + + /** + * Returns the value of the 'Bodies' containment reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Conjunction}. + * + * + * @return the value of the 'Bodies' containment reference list. + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getPredicateDefinition_Bodies() + * @model containment="true" + * @generated + */ + EList getBodies(); + +} // PredicateDefinition diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Problem.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Problem.java new file mode 100644 index 00000000..3342767d --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Problem.java @@ -0,0 +1,51 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Problem'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.Problem#getNodes Nodes}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.Problem#getStatements Statements}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getProblem() + * @model + * @generated + */ +public interface Problem extends EObject { + /** + * Returns the value of the 'Nodes' containment reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Node}. + * + * + * @return the value of the 'Nodes' containment reference list. + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getProblem_Nodes() + * @model containment="true" + * @generated + */ + EList getNodes(); + + /** + * Returns the value of the 'Statements' containment reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.Statement}. + * + * + * @return the value of the 'Statements' containment reference list. + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getProblem_Statements() + * @model containment="true" + * @generated + */ + EList getStatements(); + +} // Problem diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java new file mode 100644 index 00000000..301f7cce --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemFactory.java @@ -0,0 +1,168 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +import org.eclipse.emf.ecore.EFactory; + +/** + * + * The Factory for the model. + * It provides a create method for each non-abstract class of the model. + * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage + * @generated + */ +public interface ProblemFactory extends EFactory { + /** + * The singleton instance of the factory. + * + * + * @generated + */ + ProblemFactory eINSTANCE = org.eclipse.viatra.solver.language.model.problem.impl.ProblemFactoryImpl.init(); + + /** + * Returns a new object of class 'Problem'. + * + * + * @return a new object of class 'Problem'. + * @generated + */ + Problem createProblem(); + + /** + * Returns a new object of class 'Class Declaration'. + * + * + * @return a new object of class 'Class Declaration'. + * @generated + */ + ClassDeclaration createClassDeclaration(); + + /** + * Returns a new object of class 'Reference Declaration'. + * + * + * @return a new object of class 'Reference Declaration'. + * @generated + */ + ReferenceDeclaration createReferenceDeclaration(); + + /** + * Returns a new object of class 'Predicate Definition'. + * + * + * @return a new object of class 'Predicate Definition'. + * @generated + */ + PredicateDefinition createPredicateDefinition(); + + /** + * Returns a new object of class 'Parameter'. + * + * + * @return a new object of class 'Parameter'. + * @generated + */ + Parameter createParameter(); + + /** + * Returns a new object of class 'Conjunction'. + * + * + * @return a new object of class 'Conjunction'. + * @generated + */ + Conjunction createConjunction(); + + /** + * Returns a new object of class 'Atom'. + * + * + * @return a new object of class 'Atom'. + * @generated + */ + Atom createAtom(); + + /** + * Returns a new object of class 'Implicit Variable'. + * + * + * @return a new object of class 'Implicit Variable'. + * @generated + */ + ImplicitVariable createImplicitVariable(); + + /** + * Returns a new object of class 'Negative Literal'. + * + * + * @return a new object of class 'Negative Literal'. + * @generated + */ + NegativeLiteral createNegativeLiteral(); + + /** + * Returns a new object of class 'Assertion'. + * + * + * @return a new object of class 'Assertion'. + * @generated + */ + Assertion createAssertion(); + + /** + * Returns a new object of class 'Node'. + * + * + * @return a new object of class 'Node'. + * @generated + */ + Node createNode(); + + /** + * Returns a new object of class 'Scope Declaration'. + * + * + * @return a new object of class 'Scope Declaration'. + * @generated + */ + ScopeDeclaration createScopeDeclaration(); + + /** + * Returns a new object of class 'Type Scope'. + * + * + * @return a new object of class 'Type Scope'. + * @generated + */ + TypeScope createTypeScope(); + + /** + * Returns a new object of class 'Range Multiplicity'. + * + * + * @return a new object of class 'Range Multiplicity'. + * @generated + */ + RangeMultiplicity createRangeMultiplicity(); + + /** + * Returns a new object of class 'Exact Multiplicity'. + * + * + * @return a new object of class 'Exact Multiplicity'. + * @generated + */ + ExactMultiplicity createExactMultiplicity(); + + /** + * Returns the package supported by this factory. + * + * + * @return the package supported by this factory. + * @generated + */ + ProblemPackage getProblemPackage(); + +} //ProblemFactory diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java new file mode 100644 index 00000000..59906b1f --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ProblemPackage.java @@ -0,0 +1,2101 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +/** + * + * The Package for the model. + * It contains accessors for the meta objects to represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemFactory + * @model kind="package" + * @generated + */ +public interface ProblemPackage extends EPackage { + /** + * The package name. + * + * + * @generated + */ + String eNAME = "problem"; + + /** + * The package namespace URI. + * + * + * @generated + */ + String eNS_URI = "http://www.eclipse.org/viatra/solver/language/model/Problem"; + + /** + * The package namespace name. + * + * + * @generated + */ + String eNS_PREFIX = "problem"; + + /** + * The singleton instance of the package. + * + * + * @generated + */ + ProblemPackage eINSTANCE = org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl.init(); + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl Problem}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getProblem() + * @generated + */ + int PROBLEM = 0; + + /** + * The feature id for the 'Nodes' containment reference list. + * + * + * @generated + * @ordered + */ + int PROBLEM__NODES = 0; + + /** + * The feature id for the 'Statements' containment reference list. + * + * + * @generated + * @ordered + */ + int PROBLEM__STATEMENTS = 1; + + /** + * The number of structural features of the 'Problem' class. + * + * + * @generated + * @ordered + */ + int PROBLEM_FEATURE_COUNT = 2; + + /** + * The number of operations of the 'Problem' class. + * + * + * @generated + * @ordered + */ + int PROBLEM_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NamedElementImpl Named Element}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.NamedElementImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNamedElement() + * @generated + */ + int NAMED_ELEMENT = 4; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT__NAME = 0; + + /** + * The number of structural features of the 'Named Element' class. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT_FEATURE_COUNT = 1; + + /** + * The number of operations of the 'Named Element' class. + * + * + * @generated + * @ordered + */ + int NAMED_ELEMENT_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.RelationImpl Relation}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.RelationImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getRelation() + * @generated + */ + int RELATION = 1; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int RELATION__NAME = NAMED_ELEMENT__NAME; + + /** + * The number of structural features of the 'Relation' class. + * + * + * @generated + * @ordered + */ + int RELATION_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of operations of the 'Relation' class. + * + * + * @generated + * @ordered + */ + int RELATION_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl Class Declaration}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getClassDeclaration() + * @generated + */ + int CLASS_DECLARATION = 2; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int CLASS_DECLARATION__NAME = RELATION__NAME; + + /** + * The feature id for the 'Abstract' attribute. + * + * + * @generated + * @ordered + */ + int CLASS_DECLARATION__ABSTRACT = RELATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Super Types' reference list. + * + * + * @generated + * @ordered + */ + int CLASS_DECLARATION__SUPER_TYPES = RELATION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Reference Declarations' containment reference list. + * + * + * @generated + * @ordered + */ + int CLASS_DECLARATION__REFERENCE_DECLARATIONS = RELATION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Class Declaration' class. + * + * + * @generated + * @ordered + */ + int CLASS_DECLARATION_FEATURE_COUNT = RELATION_FEATURE_COUNT + 3; + + /** + * The number of operations of the 'Class Declaration' class. + * + * + * @generated + * @ordered + */ + int CLASS_DECLARATION_OPERATION_COUNT = RELATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl Reference Declaration}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getReferenceDeclaration() + * @generated + */ + int REFERENCE_DECLARATION = 3; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_DECLARATION__NAME = RELATION__NAME; + + /** + * The feature id for the 'Reference Type' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_DECLARATION__REFERENCE_TYPE = RELATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Opposite' reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_DECLARATION__OPPOSITE = RELATION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Containment' attribute. + * + * + * @generated + * @ordered + */ + int REFERENCE_DECLARATION__CONTAINMENT = RELATION_FEATURE_COUNT + 2; + + /** + * The feature id for the 'Multiplicity' containment reference. + * + * + * @generated + * @ordered + */ + int REFERENCE_DECLARATION__MULTIPLICITY = RELATION_FEATURE_COUNT + 3; + + /** + * The number of structural features of the 'Reference Declaration' class. + * + * + * @generated + * @ordered + */ + int REFERENCE_DECLARATION_FEATURE_COUNT = RELATION_FEATURE_COUNT + 4; + + /** + * The number of operations of the 'Reference Declaration' class. + * + * + * @generated + * @ordered + */ + int REFERENCE_DECLARATION_OPERATION_COUNT = RELATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl Predicate Definition}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getPredicateDefinition() + * @generated + */ + int PREDICATE_DEFINITION = 5; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PREDICATE_DEFINITION__NAME = RELATION__NAME; + + /** + * The feature id for the 'Error' attribute. + * + * + * @generated + * @ordered + */ + int PREDICATE_DEFINITION__ERROR = RELATION_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Parameters' containment reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE_DEFINITION__PARAMETERS = RELATION_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Bodies' containment reference list. + * + * + * @generated + * @ordered + */ + int PREDICATE_DEFINITION__BODIES = RELATION_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Predicate Definition' class. + * + * + * @generated + * @ordered + */ + int PREDICATE_DEFINITION_FEATURE_COUNT = RELATION_FEATURE_COUNT + 3; + + /** + * The number of operations of the 'Predicate Definition' class. + * + * + * @generated + * @ordered + */ + int PREDICATE_DEFINITION_OPERATION_COUNT = RELATION_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.VariableImpl Variable}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.VariableImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getVariable() + * @generated + */ + int VARIABLE = 7; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int VARIABLE__NAME = NAMED_ELEMENT__NAME; + + /** + * The number of structural features of the 'Variable' class. + * + * + * @generated + * @ordered + */ + int VARIABLE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of operations of the 'Variable' class. + * + * + * @generated + * @ordered + */ + int VARIABLE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ParameterImpl Parameter}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ParameterImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getParameter() + * @generated + */ + int PARAMETER = 6; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int PARAMETER__NAME = VARIABLE__NAME; + + /** + * The feature id for the 'Parameter Type' reference. + * + * + * @generated + * @ordered + */ + int PARAMETER__PARAMETER_TYPE = VARIABLE_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Parameter' class. + * + * + * @generated + * @ordered + */ + int PARAMETER_FEATURE_COUNT = VARIABLE_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Parameter' class. + * + * + * @generated + * @ordered + */ + int PARAMETER_OPERATION_COUNT = VARIABLE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier Existential Quantifier}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getExistentialQuantifier() + * @generated + */ + int EXISTENTIAL_QUANTIFIER = 13; + + /** + * The feature id for the 'Implicit Variables' containment reference list. + * + * + * @generated + * @ordered + */ + int EXISTENTIAL_QUANTIFIER__IMPLICIT_VARIABLES = 0; + + /** + * The number of structural features of the 'Existential Quantifier' class. + * + * + * @generated + * @ordered + */ + int EXISTENTIAL_QUANTIFIER_FEATURE_COUNT = 1; + + /** + * The number of operations of the 'Existential Quantifier' class. + * + * + * @generated + * @ordered + */ + int EXISTENTIAL_QUANTIFIER_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ConjunctionImpl Conjunction}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ConjunctionImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getConjunction() + * @generated + */ + int CONJUNCTION = 8; + + /** + * The feature id for the 'Implicit Variables' containment reference list. + * + * + * @generated + * @ordered + */ + int CONJUNCTION__IMPLICIT_VARIABLES = EXISTENTIAL_QUANTIFIER__IMPLICIT_VARIABLES; + + /** + * The feature id for the 'Literals' containment reference list. + * + * + * @generated + * @ordered + */ + int CONJUNCTION__LITERALS = EXISTENTIAL_QUANTIFIER_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Conjunction' class. + * + * + * @generated + * @ordered + */ + int CONJUNCTION_FEATURE_COUNT = EXISTENTIAL_QUANTIFIER_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Conjunction' class. + * + * + * @generated + * @ordered + */ + int CONJUNCTION_OPERATION_COUNT = EXISTENTIAL_QUANTIFIER_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.LiteralImpl Literal}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.LiteralImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getLiteral() + * @generated + */ + int LITERAL = 9; + + /** + * The number of structural features of the 'Literal' class. + * + * + * @generated + * @ordered + */ + int LITERAL_FEATURE_COUNT = 0; + + /** + * The number of operations of the 'Literal' class. + * + * + * @generated + * @ordered + */ + int LITERAL_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl Atom}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getAtom() + * @generated + */ + int ATOM = 10; + + /** + * The feature id for the 'Relation' reference. + * + * + * @generated + * @ordered + */ + int ATOM__RELATION = LITERAL_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Arguments' reference list. + * + * + * @generated + * @ordered + */ + int ATOM__ARGUMENTS = LITERAL_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Transitive Closure' attribute. + * + * + * @generated + * @ordered + */ + int ATOM__TRANSITIVE_CLOSURE = LITERAL_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Atom' class. + * + * + * @generated + * @ordered + */ + int ATOM_FEATURE_COUNT = LITERAL_FEATURE_COUNT + 3; + + /** + * The number of operations of the 'Atom' class. + * + * + * @generated + * @ordered + */ + int ATOM_OPERATION_COUNT = LITERAL_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ImplicitVariableImpl Implicit Variable}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ImplicitVariableImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getImplicitVariable() + * @generated + */ + int IMPLICIT_VARIABLE = 11; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int IMPLICIT_VARIABLE__NAME = VARIABLE__NAME; + + /** + * The number of structural features of the 'Implicit Variable' class. + * + * + * @generated + * @ordered + */ + int IMPLICIT_VARIABLE_FEATURE_COUNT = VARIABLE_FEATURE_COUNT + 0; + + /** + * The number of operations of the 'Implicit Variable' class. + * + * + * @generated + * @ordered + */ + int IMPLICIT_VARIABLE_OPERATION_COUNT = VARIABLE_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NegativeLiteralImpl Negative Literal}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.NegativeLiteralImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNegativeLiteral() + * @generated + */ + int NEGATIVE_LITERAL = 12; + + /** + * The feature id for the 'Implicit Variables' containment reference list. + * + * + * @generated + * @ordered + */ + int NEGATIVE_LITERAL__IMPLICIT_VARIABLES = EXISTENTIAL_QUANTIFIER__IMPLICIT_VARIABLES; + + /** + * The feature id for the 'Atom' containment reference. + * + * + * @generated + * @ordered + */ + int NEGATIVE_LITERAL__ATOM = EXISTENTIAL_QUANTIFIER_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Negative Literal' class. + * + * + * @generated + * @ordered + */ + int NEGATIVE_LITERAL_FEATURE_COUNT = EXISTENTIAL_QUANTIFIER_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Negative Literal' class. + * + * + * @generated + * @ordered + */ + int NEGATIVE_LITERAL_OPERATION_COUNT = EXISTENTIAL_QUANTIFIER_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.Statement Statement}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.Statement + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getStatement() + * @generated + */ + int STATEMENT = 17; + + /** + * The number of structural features of the 'Statement' class. + * + * + * @generated + * @ordered + */ + int STATEMENT_FEATURE_COUNT = 0; + + /** + * The number of operations of the 'Statement' class. + * + * + * @generated + * @ordered + */ + int STATEMENT_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl Assertion}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getAssertion() + * @generated + */ + int ASSERTION = 14; + + /** + * The feature id for the 'Relation' reference. + * + * + * @generated + * @ordered + */ + int ASSERTION__RELATION = STATEMENT_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Arguments' reference list. + * + * + * @generated + * @ordered + */ + int ASSERTION__ARGUMENTS = STATEMENT_FEATURE_COUNT + 1; + + /** + * The feature id for the 'Value' attribute. + * + * + * @generated + * @ordered + */ + int ASSERTION__VALUE = STATEMENT_FEATURE_COUNT + 2; + + /** + * The number of structural features of the 'Assertion' class. + * + * + * @generated + * @ordered + */ + int ASSERTION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 3; + + /** + * The number of operations of the 'Assertion' class. + * + * + * @generated + * @ordered + */ + int ASSERTION_OPERATION_COUNT = STATEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NodeImpl Node}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.NodeImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNode() + * @generated + */ + int NODE = 15; + + /** + * The feature id for the 'Name' attribute. + * + * + * @generated + * @ordered + */ + int NODE__NAME = NAMED_ELEMENT__NAME; + + /** + * The number of structural features of the 'Node' class. + * + * + * @generated + * @ordered + */ + int NODE_FEATURE_COUNT = NAMED_ELEMENT_FEATURE_COUNT + 0; + + /** + * The number of operations of the 'Node' class. + * + * + * @generated + * @ordered + */ + int NODE_OPERATION_COUNT = NAMED_ELEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ScopeDeclarationImpl Scope Declaration}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ScopeDeclarationImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getScopeDeclaration() + * @generated + */ + int SCOPE_DECLARATION = 16; + + /** + * The feature id for the 'Type Scopes' containment reference list. + * + * + * @generated + * @ordered + */ + int SCOPE_DECLARATION__TYPE_SCOPES = STATEMENT_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Scope Declaration' class. + * + * + * @generated + * @ordered + */ + int SCOPE_DECLARATION_FEATURE_COUNT = STATEMENT_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Scope Declaration' class. + * + * + * @generated + * @ordered + */ + int SCOPE_DECLARATION_OPERATION_COUNT = STATEMENT_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl Type Scope}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getTypeScope() + * @generated + */ + int TYPE_SCOPE = 18; + + /** + * The feature id for the 'Target Type' reference. + * + * + * @generated + * @ordered + */ + int TYPE_SCOPE__TARGET_TYPE = 0; + + /** + * The feature id for the 'Increment' attribute. + * + * + * @generated + * @ordered + */ + int TYPE_SCOPE__INCREMENT = 1; + + /** + * The feature id for the 'Multiplicity' containment reference. + * + * + * @generated + * @ordered + */ + int TYPE_SCOPE__MULTIPLICITY = 2; + + /** + * The number of structural features of the 'Type Scope' class. + * + * + * @generated + * @ordered + */ + int TYPE_SCOPE_FEATURE_COUNT = 3; + + /** + * The number of operations of the 'Type Scope' class. + * + * + * @generated + * @ordered + */ + int TYPE_SCOPE_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.MultiplicityImpl Multiplicity}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.MultiplicityImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getMultiplicity() + * @generated + */ + int MULTIPLICITY = 19; + + /** + * The number of structural features of the 'Multiplicity' class. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_FEATURE_COUNT = 0; + + /** + * The number of operations of the 'Multiplicity' class. + * + * + * @generated + * @ordered + */ + int MULTIPLICITY_OPERATION_COUNT = 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.RangeMultiplicityImpl Range Multiplicity}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.RangeMultiplicityImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getRangeMultiplicity() + * @generated + */ + int RANGE_MULTIPLICITY = 20; + + /** + * The feature id for the 'Lower Bound' attribute. + * + * + * @generated + * @ordered + */ + int RANGE_MULTIPLICITY__LOWER_BOUND = MULTIPLICITY_FEATURE_COUNT + 0; + + /** + * The feature id for the 'Upper Bound' attribute. + * + * + * @generated + * @ordered + */ + int RANGE_MULTIPLICITY__UPPER_BOUND = MULTIPLICITY_FEATURE_COUNT + 1; + + /** + * The number of structural features of the 'Range Multiplicity' class. + * + * + * @generated + * @ordered + */ + int RANGE_MULTIPLICITY_FEATURE_COUNT = MULTIPLICITY_FEATURE_COUNT + 2; + + /** + * The number of operations of the 'Range Multiplicity' class. + * + * + * @generated + * @ordered + */ + int RANGE_MULTIPLICITY_OPERATION_COUNT = MULTIPLICITY_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ExactMultiplicityImpl Exact Multiplicity}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ExactMultiplicityImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getExactMultiplicity() + * @generated + */ + int EXACT_MULTIPLICITY = 21; + + /** + * The feature id for the 'Exact Value' attribute. + * + * + * @generated + * @ordered + */ + int EXACT_MULTIPLICITY__EXACT_VALUE = MULTIPLICITY_FEATURE_COUNT + 0; + + /** + * The number of structural features of the 'Exact Multiplicity' class. + * + * + * @generated + * @ordered + */ + int EXACT_MULTIPLICITY_FEATURE_COUNT = MULTIPLICITY_FEATURE_COUNT + 1; + + /** + * The number of operations of the 'Exact Multiplicity' class. + * + * + * @generated + * @ordered + */ + int EXACT_MULTIPLICITY_OPERATION_COUNT = MULTIPLICITY_OPERATION_COUNT + 0; + + /** + * The meta object id for the '{@link org.eclipse.viatra.solver.language.model.problem.LogicValue Logic Value}' enum. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.LogicValue + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getLogicValue() + * @generated + */ + int LOGIC_VALUE = 22; + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Problem Problem}'. + * + * + * @return the meta object for class 'Problem'. + * @see org.eclipse.viatra.solver.language.model.problem.Problem + * @generated + */ + EClass getProblem(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.Problem#getNodes Nodes}'. + * + * + * @return the meta object for the containment reference list 'Nodes'. + * @see org.eclipse.viatra.solver.language.model.problem.Problem#getNodes() + * @see #getProblem() + * @generated + */ + EReference getProblem_Nodes(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.Problem#getStatements Statements}'. + * + * + * @return the meta object for the containment reference list 'Statements'. + * @see org.eclipse.viatra.solver.language.model.problem.Problem#getStatements() + * @see #getProblem() + * @generated + */ + EReference getProblem_Statements(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Relation Relation}'. + * + * + * @return the meta object for class 'Relation'. + * @see org.eclipse.viatra.solver.language.model.problem.Relation + * @generated + */ + EClass getRelation(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration Class Declaration}'. + * + * + * @return the meta object for class 'Class Declaration'. + * @see org.eclipse.viatra.solver.language.model.problem.ClassDeclaration + * @generated + */ + EClass getClassDeclaration(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#isAbstract Abstract}'. + * + * + * @return the meta object for the attribute 'Abstract'. + * @see org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#isAbstract() + * @see #getClassDeclaration() + * @generated + */ + EAttribute getClassDeclaration_Abstract(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getSuperTypes Super Types}'. + * + * + * @return the meta object for the reference list 'Super Types'. + * @see org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getSuperTypes() + * @see #getClassDeclaration() + * @generated + */ + EReference getClassDeclaration_SuperTypes(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getReferenceDeclarations Reference Declarations}'. + * + * + * @return the meta object for the containment reference list 'Reference Declarations'. + * @see org.eclipse.viatra.solver.language.model.problem.ClassDeclaration#getReferenceDeclarations() + * @see #getClassDeclaration() + * @generated + */ + EReference getClassDeclaration_ReferenceDeclarations(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration Reference Declaration}'. + * + * + * @return the meta object for class 'Reference Declaration'. + * @see org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration + * @generated + */ + EClass getReferenceDeclaration(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getReferenceType Reference Type}'. + * + * + * @return the meta object for the reference 'Reference Type'. + * @see org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getReferenceType() + * @see #getReferenceDeclaration() + * @generated + */ + EReference getReferenceDeclaration_ReferenceType(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getOpposite Opposite}'. + * + * + * @return the meta object for the reference 'Opposite'. + * @see org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getOpposite() + * @see #getReferenceDeclaration() + * @generated + */ + EReference getReferenceDeclaration_Opposite(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#isContainment Containment}'. + * + * + * @return the meta object for the attribute 'Containment'. + * @see org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#isContainment() + * @see #getReferenceDeclaration() + * @generated + */ + EAttribute getReferenceDeclaration_Containment(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getMultiplicity Multiplicity}'. + * + * + * @return the meta object for the containment reference 'Multiplicity'. + * @see org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getMultiplicity() + * @see #getReferenceDeclaration() + * @generated + */ + EReference getReferenceDeclaration_Multiplicity(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.NamedElement Named Element}'. + * + * + * @return the meta object for class 'Named Element'. + * @see org.eclipse.viatra.solver.language.model.problem.NamedElement + * @generated + */ + EClass getNamedElement(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.NamedElement#getName Name}'. + * + * + * @return the meta object for the attribute 'Name'. + * @see org.eclipse.viatra.solver.language.model.problem.NamedElement#getName() + * @see #getNamedElement() + * @generated + */ + EAttribute getNamedElement_Name(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition Predicate Definition}'. + * + * + * @return the meta object for class 'Predicate Definition'. + * @see org.eclipse.viatra.solver.language.model.problem.PredicateDefinition + * @generated + */ + EClass getPredicateDefinition(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#isError Error}'. + * + * + * @return the meta object for the attribute 'Error'. + * @see org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#isError() + * @see #getPredicateDefinition() + * @generated + */ + EAttribute getPredicateDefinition_Error(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#getParameters Parameters}'. + * + * + * @return the meta object for the containment reference list 'Parameters'. + * @see org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#getParameters() + * @see #getPredicateDefinition() + * @generated + */ + EReference getPredicateDefinition_Parameters(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#getBodies Bodies}'. + * + * + * @return the meta object for the containment reference list 'Bodies'. + * @see org.eclipse.viatra.solver.language.model.problem.PredicateDefinition#getBodies() + * @see #getPredicateDefinition() + * @generated + */ + EReference getPredicateDefinition_Bodies(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Parameter Parameter}'. + * + * + * @return the meta object for class 'Parameter'. + * @see org.eclipse.viatra.solver.language.model.problem.Parameter + * @generated + */ + EClass getParameter(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.Parameter#getParameterType Parameter Type}'. + * + * + * @return the meta object for the reference 'Parameter Type'. + * @see org.eclipse.viatra.solver.language.model.problem.Parameter#getParameterType() + * @see #getParameter() + * @generated + */ + EReference getParameter_ParameterType(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Variable Variable}'. + * + * + * @return the meta object for class 'Variable'. + * @see org.eclipse.viatra.solver.language.model.problem.Variable + * @generated + */ + EClass getVariable(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Conjunction Conjunction}'. + * + * + * @return the meta object for class 'Conjunction'. + * @see org.eclipse.viatra.solver.language.model.problem.Conjunction + * @generated + */ + EClass getConjunction(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.Conjunction#getLiterals Literals}'. + * + * + * @return the meta object for the containment reference list 'Literals'. + * @see org.eclipse.viatra.solver.language.model.problem.Conjunction#getLiterals() + * @see #getConjunction() + * @generated + */ + EReference getConjunction_Literals(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Literal Literal}'. + * + * + * @return the meta object for class 'Literal'. + * @see org.eclipse.viatra.solver.language.model.problem.Literal + * @generated + */ + EClass getLiteral(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Atom Atom}'. + * + * + * @return the meta object for class 'Atom'. + * @see org.eclipse.viatra.solver.language.model.problem.Atom + * @generated + */ + EClass getAtom(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.Atom#getRelation Relation}'. + * + * + * @return the meta object for the reference 'Relation'. + * @see org.eclipse.viatra.solver.language.model.problem.Atom#getRelation() + * @see #getAtom() + * @generated + */ + EReference getAtom_Relation(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.viatra.solver.language.model.problem.Atom#getArguments Arguments}'. + * + * + * @return the meta object for the reference list 'Arguments'. + * @see org.eclipse.viatra.solver.language.model.problem.Atom#getArguments() + * @see #getAtom() + * @generated + */ + EReference getAtom_Arguments(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.Atom#isTransitiveClosure Transitive Closure}'. + * + * + * @return the meta object for the attribute 'Transitive Closure'. + * @see org.eclipse.viatra.solver.language.model.problem.Atom#isTransitiveClosure() + * @see #getAtom() + * @generated + */ + EAttribute getAtom_TransitiveClosure(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ImplicitVariable Implicit Variable}'. + * + * + * @return the meta object for class 'Implicit Variable'. + * @see org.eclipse.viatra.solver.language.model.problem.ImplicitVariable + * @generated + */ + EClass getImplicitVariable(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.NegativeLiteral Negative Literal}'. + * + * + * @return the meta object for class 'Negative Literal'. + * @see org.eclipse.viatra.solver.language.model.problem.NegativeLiteral + * @generated + */ + EClass getNegativeLiteral(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.NegativeLiteral#getAtom Atom}'. + * + * + * @return the meta object for the containment reference 'Atom'. + * @see org.eclipse.viatra.solver.language.model.problem.NegativeLiteral#getAtom() + * @see #getNegativeLiteral() + * @generated + */ + EReference getNegativeLiteral_Atom(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier Existential Quantifier}'. + * + * + * @return the meta object for class 'Existential Quantifier'. + * @see org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier + * @generated + */ + EClass getExistentialQuantifier(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier#getImplicitVariables Implicit Variables}'. + * + * + * @return the meta object for the containment reference list 'Implicit Variables'. + * @see org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier#getImplicitVariables() + * @see #getExistentialQuantifier() + * @generated + */ + EReference getExistentialQuantifier_ImplicitVariables(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Assertion Assertion}'. + * + * + * @return the meta object for class 'Assertion'. + * @see org.eclipse.viatra.solver.language.model.problem.Assertion + * @generated + */ + EClass getAssertion(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getRelation Relation}'. + * + * + * @return the meta object for the reference 'Relation'. + * @see org.eclipse.viatra.solver.language.model.problem.Assertion#getRelation() + * @see #getAssertion() + * @generated + */ + EReference getAssertion_Relation(); + + /** + * Returns the meta object for the reference list '{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getArguments Arguments}'. + * + * + * @return the meta object for the reference list 'Arguments'. + * @see org.eclipse.viatra.solver.language.model.problem.Assertion#getArguments() + * @see #getAssertion() + * @generated + */ + EReference getAssertion_Arguments(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.Assertion#getValue Value}'. + * + * + * @return the meta object for the attribute 'Value'. + * @see org.eclipse.viatra.solver.language.model.problem.Assertion#getValue() + * @see #getAssertion() + * @generated + */ + EAttribute getAssertion_Value(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Node Node}'. + * + * + * @return the meta object for class 'Node'. + * @see org.eclipse.viatra.solver.language.model.problem.Node + * @generated + */ + EClass getNode(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration Scope Declaration}'. + * + * + * @return the meta object for class 'Scope Declaration'. + * @see org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration + * @generated + */ + EClass getScopeDeclaration(); + + /** + * Returns the meta object for the containment reference list '{@link org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration#getTypeScopes Type Scopes}'. + * + * + * @return the meta object for the containment reference list 'Type Scopes'. + * @see org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration#getTypeScopes() + * @see #getScopeDeclaration() + * @generated + */ + EReference getScopeDeclaration_TypeScopes(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Statement Statement}'. + * + * + * @return the meta object for class 'Statement'. + * @see org.eclipse.viatra.solver.language.model.problem.Statement + * @generated + */ + EClass getStatement(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.TypeScope Type Scope}'. + * + * + * @return the meta object for class 'Type Scope'. + * @see org.eclipse.viatra.solver.language.model.problem.TypeScope + * @generated + */ + EClass getTypeScope(); + + /** + * Returns the meta object for the reference '{@link org.eclipse.viatra.solver.language.model.problem.TypeScope#getTargetType Target Type}'. + * + * + * @return the meta object for the reference 'Target Type'. + * @see org.eclipse.viatra.solver.language.model.problem.TypeScope#getTargetType() + * @see #getTypeScope() + * @generated + */ + EReference getTypeScope_TargetType(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.TypeScope#isIncrement Increment}'. + * + * + * @return the meta object for the attribute 'Increment'. + * @see org.eclipse.viatra.solver.language.model.problem.TypeScope#isIncrement() + * @see #getTypeScope() + * @generated + */ + EAttribute getTypeScope_Increment(); + + /** + * Returns the meta object for the containment reference '{@link org.eclipse.viatra.solver.language.model.problem.TypeScope#getMultiplicity Multiplicity}'. + * + * + * @return the meta object for the containment reference 'Multiplicity'. + * @see org.eclipse.viatra.solver.language.model.problem.TypeScope#getMultiplicity() + * @see #getTypeScope() + * @generated + */ + EReference getTypeScope_Multiplicity(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.Multiplicity Multiplicity}'. + * + * + * @return the meta object for class 'Multiplicity'. + * @see org.eclipse.viatra.solver.language.model.problem.Multiplicity + * @generated + */ + EClass getMultiplicity(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity Range Multiplicity}'. + * + * + * @return the meta object for class 'Range Multiplicity'. + * @see org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity + * @generated + */ + EClass getRangeMultiplicity(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity#getLowerBound Lower Bound}'. + * + * + * @return the meta object for the attribute 'Lower Bound'. + * @see org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity#getLowerBound() + * @see #getRangeMultiplicity() + * @generated + */ + EAttribute getRangeMultiplicity_LowerBound(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity#getUpperBound Upper Bound}'. + * + * + * @return the meta object for the attribute 'Upper Bound'. + * @see org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity#getUpperBound() + * @see #getRangeMultiplicity() + * @generated + */ + EAttribute getRangeMultiplicity_UpperBound(); + + /** + * Returns the meta object for class '{@link org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity Exact Multiplicity}'. + * + * + * @return the meta object for class 'Exact Multiplicity'. + * @see org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity + * @generated + */ + EClass getExactMultiplicity(); + + /** + * Returns the meta object for the attribute '{@link org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity#getExactValue Exact Value}'. + * + * + * @return the meta object for the attribute 'Exact Value'. + * @see org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity#getExactValue() + * @see #getExactMultiplicity() + * @generated + */ + EAttribute getExactMultiplicity_ExactValue(); + + /** + * Returns the meta object for enum '{@link org.eclipse.viatra.solver.language.model.problem.LogicValue Logic Value}'. + * + * + * @return the meta object for enum 'Logic Value'. + * @see org.eclipse.viatra.solver.language.model.problem.LogicValue + * @generated + */ + EEnum getLogicValue(); + + /** + * Returns the factory that creates the instances of the model. + * + * + * @return the factory that creates the instances of the model. + * @generated + */ + ProblemFactory getProblemFactory(); + + /** + * + * Defines literals for the meta objects that represent + *
    + *
  • each class,
  • + *
  • each feature of each class,
  • + *
  • each operation of each class,
  • + *
  • each enum,
  • + *
  • and each data type
  • + *
+ * + * @generated + */ + interface Literals { + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl Problem}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getProblem() + * @generated + */ + EClass PROBLEM = eINSTANCE.getProblem(); + + /** + * The meta object literal for the 'Nodes' containment reference list feature. + * + * + * @generated + */ + EReference PROBLEM__NODES = eINSTANCE.getProblem_Nodes(); + + /** + * The meta object literal for the 'Statements' containment reference list feature. + * + * + * @generated + */ + EReference PROBLEM__STATEMENTS = eINSTANCE.getProblem_Statements(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.RelationImpl Relation}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.RelationImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getRelation() + * @generated + */ + EClass RELATION = eINSTANCE.getRelation(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl Class Declaration}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getClassDeclaration() + * @generated + */ + EClass CLASS_DECLARATION = eINSTANCE.getClassDeclaration(); + + /** + * The meta object literal for the 'Abstract' attribute feature. + * + * + * @generated + */ + EAttribute CLASS_DECLARATION__ABSTRACT = eINSTANCE.getClassDeclaration_Abstract(); + + /** + * The meta object literal for the 'Super Types' reference list feature. + * + * + * @generated + */ + EReference CLASS_DECLARATION__SUPER_TYPES = eINSTANCE.getClassDeclaration_SuperTypes(); + + /** + * The meta object literal for the 'Reference Declarations' containment reference list feature. + * + * + * @generated + */ + EReference CLASS_DECLARATION__REFERENCE_DECLARATIONS = eINSTANCE.getClassDeclaration_ReferenceDeclarations(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl Reference Declaration}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getReferenceDeclaration() + * @generated + */ + EClass REFERENCE_DECLARATION = eINSTANCE.getReferenceDeclaration(); + + /** + * The meta object literal for the 'Reference Type' reference feature. + * + * + * @generated + */ + EReference REFERENCE_DECLARATION__REFERENCE_TYPE = eINSTANCE.getReferenceDeclaration_ReferenceType(); + + /** + * The meta object literal for the 'Opposite' reference feature. + * + * + * @generated + */ + EReference REFERENCE_DECLARATION__OPPOSITE = eINSTANCE.getReferenceDeclaration_Opposite(); + + /** + * The meta object literal for the 'Containment' attribute feature. + * + * + * @generated + */ + EAttribute REFERENCE_DECLARATION__CONTAINMENT = eINSTANCE.getReferenceDeclaration_Containment(); + + /** + * The meta object literal for the 'Multiplicity' containment reference feature. + * + * + * @generated + */ + EReference REFERENCE_DECLARATION__MULTIPLICITY = eINSTANCE.getReferenceDeclaration_Multiplicity(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NamedElementImpl Named Element}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.NamedElementImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNamedElement() + * @generated + */ + EClass NAMED_ELEMENT = eINSTANCE.getNamedElement(); + + /** + * The meta object literal for the 'Name' attribute feature. + * + * + * @generated + */ + EAttribute NAMED_ELEMENT__NAME = eINSTANCE.getNamedElement_Name(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl Predicate Definition}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getPredicateDefinition() + * @generated + */ + EClass PREDICATE_DEFINITION = eINSTANCE.getPredicateDefinition(); + + /** + * The meta object literal for the 'Error' attribute feature. + * + * + * @generated + */ + EAttribute PREDICATE_DEFINITION__ERROR = eINSTANCE.getPredicateDefinition_Error(); + + /** + * The meta object literal for the 'Parameters' containment reference list feature. + * + * + * @generated + */ + EReference PREDICATE_DEFINITION__PARAMETERS = eINSTANCE.getPredicateDefinition_Parameters(); + + /** + * The meta object literal for the 'Bodies' containment reference list feature. + * + * + * @generated + */ + EReference PREDICATE_DEFINITION__BODIES = eINSTANCE.getPredicateDefinition_Bodies(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ParameterImpl Parameter}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ParameterImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getParameter() + * @generated + */ + EClass PARAMETER = eINSTANCE.getParameter(); + + /** + * The meta object literal for the 'Parameter Type' reference feature. + * + * + * @generated + */ + EReference PARAMETER__PARAMETER_TYPE = eINSTANCE.getParameter_ParameterType(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.VariableImpl Variable}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.VariableImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getVariable() + * @generated + */ + EClass VARIABLE = eINSTANCE.getVariable(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ConjunctionImpl Conjunction}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ConjunctionImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getConjunction() + * @generated + */ + EClass CONJUNCTION = eINSTANCE.getConjunction(); + + /** + * The meta object literal for the 'Literals' containment reference list feature. + * + * + * @generated + */ + EReference CONJUNCTION__LITERALS = eINSTANCE.getConjunction_Literals(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.LiteralImpl Literal}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.LiteralImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getLiteral() + * @generated + */ + EClass LITERAL = eINSTANCE.getLiteral(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl Atom}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getAtom() + * @generated + */ + EClass ATOM = eINSTANCE.getAtom(); + + /** + * The meta object literal for the 'Relation' reference feature. + * + * + * @generated + */ + EReference ATOM__RELATION = eINSTANCE.getAtom_Relation(); + + /** + * The meta object literal for the 'Arguments' reference list feature. + * + * + * @generated + */ + EReference ATOM__ARGUMENTS = eINSTANCE.getAtom_Arguments(); + + /** + * The meta object literal for the 'Transitive Closure' attribute feature. + * + * + * @generated + */ + EAttribute ATOM__TRANSITIVE_CLOSURE = eINSTANCE.getAtom_TransitiveClosure(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ImplicitVariableImpl Implicit Variable}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ImplicitVariableImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getImplicitVariable() + * @generated + */ + EClass IMPLICIT_VARIABLE = eINSTANCE.getImplicitVariable(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NegativeLiteralImpl Negative Literal}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.NegativeLiteralImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNegativeLiteral() + * @generated + */ + EClass NEGATIVE_LITERAL = eINSTANCE.getNegativeLiteral(); + + /** + * The meta object literal for the 'Atom' containment reference feature. + * + * + * @generated + */ + EReference NEGATIVE_LITERAL__ATOM = eINSTANCE.getNegativeLiteral_Atom(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier Existential Quantifier}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getExistentialQuantifier() + * @generated + */ + EClass EXISTENTIAL_QUANTIFIER = eINSTANCE.getExistentialQuantifier(); + + /** + * The meta object literal for the 'Implicit Variables' containment reference list feature. + * + * + * @generated + */ + EReference EXISTENTIAL_QUANTIFIER__IMPLICIT_VARIABLES = eINSTANCE.getExistentialQuantifier_ImplicitVariables(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl Assertion}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.AssertionImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getAssertion() + * @generated + */ + EClass ASSERTION = eINSTANCE.getAssertion(); + + /** + * The meta object literal for the 'Relation' reference feature. + * + * + * @generated + */ + EReference ASSERTION__RELATION = eINSTANCE.getAssertion_Relation(); + + /** + * The meta object literal for the 'Arguments' reference list feature. + * + * + * @generated + */ + EReference ASSERTION__ARGUMENTS = eINSTANCE.getAssertion_Arguments(); + + /** + * The meta object literal for the 'Value' attribute feature. + * + * + * @generated + */ + EAttribute ASSERTION__VALUE = eINSTANCE.getAssertion_Value(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.NodeImpl Node}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.NodeImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getNode() + * @generated + */ + EClass NODE = eINSTANCE.getNode(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ScopeDeclarationImpl Scope Declaration}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ScopeDeclarationImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getScopeDeclaration() + * @generated + */ + EClass SCOPE_DECLARATION = eINSTANCE.getScopeDeclaration(); + + /** + * The meta object literal for the 'Type Scopes' containment reference list feature. + * + * + * @generated + */ + EReference SCOPE_DECLARATION__TYPE_SCOPES = eINSTANCE.getScopeDeclaration_TypeScopes(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.Statement Statement}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.Statement + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getStatement() + * @generated + */ + EClass STATEMENT = eINSTANCE.getStatement(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl Type Scope}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getTypeScope() + * @generated + */ + EClass TYPE_SCOPE = eINSTANCE.getTypeScope(); + + /** + * The meta object literal for the 'Target Type' reference feature. + * + * + * @generated + */ + EReference TYPE_SCOPE__TARGET_TYPE = eINSTANCE.getTypeScope_TargetType(); + + /** + * The meta object literal for the 'Increment' attribute feature. + * + * + * @generated + */ + EAttribute TYPE_SCOPE__INCREMENT = eINSTANCE.getTypeScope_Increment(); + + /** + * The meta object literal for the 'Multiplicity' containment reference feature. + * + * + * @generated + */ + EReference TYPE_SCOPE__MULTIPLICITY = eINSTANCE.getTypeScope_Multiplicity(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.MultiplicityImpl Multiplicity}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.MultiplicityImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getMultiplicity() + * @generated + */ + EClass MULTIPLICITY = eINSTANCE.getMultiplicity(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.RangeMultiplicityImpl Range Multiplicity}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.RangeMultiplicityImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getRangeMultiplicity() + * @generated + */ + EClass RANGE_MULTIPLICITY = eINSTANCE.getRangeMultiplicity(); + + /** + * The meta object literal for the 'Lower Bound' attribute feature. + * + * + * @generated + */ + EAttribute RANGE_MULTIPLICITY__LOWER_BOUND = eINSTANCE.getRangeMultiplicity_LowerBound(); + + /** + * The meta object literal for the 'Upper Bound' attribute feature. + * + * + * @generated + */ + EAttribute RANGE_MULTIPLICITY__UPPER_BOUND = eINSTANCE.getRangeMultiplicity_UpperBound(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.impl.ExactMultiplicityImpl Exact Multiplicity}' class. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.impl.ExactMultiplicityImpl + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getExactMultiplicity() + * @generated + */ + EClass EXACT_MULTIPLICITY = eINSTANCE.getExactMultiplicity(); + + /** + * The meta object literal for the 'Exact Value' attribute feature. + * + * + * @generated + */ + EAttribute EXACT_MULTIPLICITY__EXACT_VALUE = eINSTANCE.getExactMultiplicity_ExactValue(); + + /** + * The meta object literal for the '{@link org.eclipse.viatra.solver.language.model.problem.LogicValue Logic Value}' enum. + * + * + * @see org.eclipse.viatra.solver.language.model.problem.LogicValue + * @see org.eclipse.viatra.solver.language.model.problem.impl.ProblemPackageImpl#getLogicValue() + * @generated + */ + EEnum LOGIC_VALUE = eINSTANCE.getLogicValue(); + + } + +} //ProblemPackage diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RangeMultiplicity.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RangeMultiplicity.java new file mode 100644 index 00000000..65bcc440 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/RangeMultiplicity.java @@ -0,0 +1,69 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'Range Multiplicity'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity#getLowerBound Lower Bound}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity#getUpperBound Upper Bound}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getRangeMultiplicity() + * @model + * @generated + */ +public interface RangeMultiplicity extends Multiplicity { + /** + * Returns the value of the 'Lower Bound' attribute. + * The default value is "0". + * + * + * @return the value of the 'Lower Bound' attribute. + * @see #setLowerBound(int) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getRangeMultiplicity_LowerBound() + * @model default="0" + * @generated + */ + int getLowerBound(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity#getLowerBound Lower Bound}' attribute. + * + * + * @param value the new value of the 'Lower Bound' attribute. + * @see #getLowerBound() + * @generated + */ + void setLowerBound(int value); + + /** + * Returns the value of the 'Upper Bound' attribute. + * The default value is "-1". + * + * + * @return the value of the 'Upper Bound' attribute. + * @see #setUpperBound(int) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getRangeMultiplicity_UpperBound() + * @model default="-1" + * @generated + */ + int getUpperBound(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity#getUpperBound Upper Bound}' attribute. + * + * + * @param value the new value of the 'Upper Bound' attribute. + * @see #getUpperBound() + * @generated + */ + void setUpperBound(int value); + +} // RangeMultiplicity diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ReferenceDeclaration.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ReferenceDeclaration.java new file mode 100644 index 00000000..f07ee7d1 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ReferenceDeclaration.java @@ -0,0 +1,113 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'Reference Declaration'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getReferenceType Reference Type}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getOpposite Opposite}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#isContainment Containment}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getMultiplicity Multiplicity}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getReferenceDeclaration() + * @model + * @generated + */ +public interface ReferenceDeclaration extends Relation { + /** + * Returns the value of the 'Reference Type' reference. + * + * + * @return the value of the 'Reference Type' reference. + * @see #setReferenceType(ClassDeclaration) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getReferenceDeclaration_ReferenceType() + * @model + * @generated + */ + ClassDeclaration getReferenceType(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getReferenceType Reference Type}' reference. + * + * + * @param value the new value of the 'Reference Type' reference. + * @see #getReferenceType() + * @generated + */ + void setReferenceType(ClassDeclaration value); + + /** + * Returns the value of the 'Opposite' reference. + * + * + * @return the value of the 'Opposite' reference. + * @see #setOpposite(ReferenceDeclaration) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getReferenceDeclaration_Opposite() + * @model + * @generated + */ + ReferenceDeclaration getOpposite(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getOpposite Opposite}' reference. + * + * + * @param value the new value of the 'Opposite' reference. + * @see #getOpposite() + * @generated + */ + void setOpposite(ReferenceDeclaration value); + + /** + * Returns the value of the 'Containment' attribute. + * + * + * @return the value of the 'Containment' attribute. + * @see #setContainment(boolean) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getReferenceDeclaration_Containment() + * @model + * @generated + */ + boolean isContainment(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#isContainment Containment}' attribute. + * + * + * @param value the new value of the 'Containment' attribute. + * @see #isContainment() + * @generated + */ + void setContainment(boolean value); + + /** + * Returns the value of the 'Multiplicity' containment reference. + * + * + * @return the value of the 'Multiplicity' containment reference. + * @see #setMultiplicity(Multiplicity) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getReferenceDeclaration_Multiplicity() + * @model containment="true" + * @generated + */ + Multiplicity getMultiplicity(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration#getMultiplicity Multiplicity}' containment reference. + * + * + * @param value the new value of the 'Multiplicity' containment reference. + * @see #getMultiplicity() + * @generated + */ + void setMultiplicity(Multiplicity value); + +} // ReferenceDeclaration diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Relation.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Relation.java new file mode 100644 index 00000000..2754e9d0 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Relation.java @@ -0,0 +1,16 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'Relation'. + * + * + * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getRelation() + * @model abstract="true" + * @generated + */ +public interface Relation extends NamedElement { +} // Relation diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ScopeDeclaration.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ScopeDeclaration.java new file mode 100644 index 00000000..f728589d --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/ScopeDeclaration.java @@ -0,0 +1,36 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +import org.eclipse.emf.common.util.EList; + +/** + * + * A representation of the model object 'Scope Declaration'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration#getTypeScopes Type Scopes}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getScopeDeclaration() + * @model + * @generated + */ +public interface ScopeDeclaration extends Statement { + /** + * Returns the value of the 'Type Scopes' containment reference list. + * The list contents are of type {@link org.eclipse.viatra.solver.language.model.problem.TypeScope}. + * + * + * @return the value of the 'Type Scopes' containment reference list. + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getScopeDeclaration_TypeScopes() + * @model containment="true" + * @generated + */ + EList getTypeScopes(); + +} // ScopeDeclaration diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Statement.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Statement.java new file mode 100644 index 00000000..90303639 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Statement.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 'Statement'. + * + * + * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getStatement() + * @model interface="true" abstract="true" + * @generated + */ +public interface Statement extends EObject { +} // Statement diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/TypeScope.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/TypeScope.java new file mode 100644 index 00000000..76a95dd5 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/TypeScope.java @@ -0,0 +1,92 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +import org.eclipse.emf.ecore.EObject; + +/** + * + * A representation of the model object 'Type Scope'. + * + * + *

+ * The following features are supported: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.TypeScope#getTargetType Target Type}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.TypeScope#isIncrement Increment}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.TypeScope#getMultiplicity Multiplicity}
  • + *
+ * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getTypeScope() + * @model + * @generated + */ +public interface TypeScope extends EObject { + /** + * Returns the value of the 'Target Type' reference. + * + * + * @return the value of the 'Target Type' reference. + * @see #setTargetType(ClassDeclaration) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getTypeScope_TargetType() + * @model + * @generated + */ + ClassDeclaration getTargetType(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.TypeScope#getTargetType Target Type}' reference. + * + * + * @param value the new value of the 'Target Type' reference. + * @see #getTargetType() + * @generated + */ + void setTargetType(ClassDeclaration value); + + /** + * Returns the value of the 'Increment' attribute. + * + * + * @return the value of the 'Increment' attribute. + * @see #setIncrement(boolean) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getTypeScope_Increment() + * @model + * @generated + */ + boolean isIncrement(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.TypeScope#isIncrement Increment}' attribute. + * + * + * @param value the new value of the 'Increment' attribute. + * @see #isIncrement() + * @generated + */ + void setIncrement(boolean value); + + /** + * Returns the value of the 'Multiplicity' containment reference. + * + * + * @return the value of the 'Multiplicity' containment reference. + * @see #setMultiplicity(Multiplicity) + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getTypeScope_Multiplicity() + * @model containment="true" + * @generated + */ + Multiplicity getMultiplicity(); + + /** + * Sets the value of the '{@link org.eclipse.viatra.solver.language.model.problem.TypeScope#getMultiplicity Multiplicity}' containment reference. + * + * + * @param value the new value of the 'Multiplicity' containment reference. + * @see #getMultiplicity() + * @generated + */ + void setMultiplicity(Multiplicity value); + +} // TypeScope diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Variable.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Variable.java new file mode 100644 index 00000000..26637a35 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/Variable.java @@ -0,0 +1,16 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem; + +/** + * + * A representation of the model object 'Variable'. + * + * + * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#getVariable() + * @model abstract="true" + * @generated + */ +public interface Variable extends NamedElement { +} // Variable diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java new file mode 100644 index 00000000..5856a276 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AssertionImpl.java @@ -0,0 +1,272 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import org.eclipse.viatra.solver.language.model.problem.Assertion; +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; + +/** + * + * An implementation of the model object 'Assertion'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@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}
  • + *
+ * + * @generated + */ +public class AssertionImpl extends MinimalEObjectImpl.Container implements Assertion { + /** + * The cached value of the '{@link #getRelation() Relation}' reference. + * + * + * @see #getRelation() + * @generated + * @ordered + */ + protected Relation relation; + + /** + * The cached value of the '{@link #getArguments() Arguments}' reference list. + * + * + * @see #getArguments() + * @generated + * @ordered + */ + protected EList arguments; + + /** + * The default value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected static final LogicValue VALUE_EDEFAULT = LogicValue.TRUE; + + /** + * The cached value of the '{@link #getValue() Value}' attribute. + * + * + * @see #getValue() + * @generated + * @ordered + */ + protected LogicValue value = VALUE_EDEFAULT; + + /** + * + * + * @generated + */ + protected AssertionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.ASSERTION; + } + + /** + * + * + * @generated + */ + public Relation getRelation() { + if (relation != null && relation.eIsProxy()) { + InternalEObject oldRelation = (InternalEObject) relation; + relation = (Relation) eResolveProxy(oldRelation); + if (relation != oldRelation) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.ASSERTION__RELATION, + oldRelation, relation)); + } + } + return relation; + } + + /** + * + * + * @generated + */ + public Relation basicGetRelation() { + return relation; + } + + /** + * + * + * @generated + */ + public void setRelation(Relation newRelation) { + Relation oldRelation = relation; + relation = newRelation; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ASSERTION__RELATION, oldRelation, + relation)); + } + + /** + * + * + * @generated + */ + public EList getArguments() { + if (arguments == null) { + arguments = new EObjectResolvingEList(Node.class, this, ProblemPackage.ASSERTION__ARGUMENTS); + } + return arguments; + } + + /** + * + * + * @generated + */ + public LogicValue getValue() { + return value; + } + + /** + * + * + * @generated + */ + public void setValue(LogicValue newValue) { + LogicValue oldValue = value; + value = newValue == null ? VALUE_EDEFAULT : newValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ASSERTION__VALUE, oldValue, value)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.ASSERTION__RELATION: + if (resolve) + return getRelation(); + return basicGetRelation(); + case ProblemPackage.ASSERTION__ARGUMENTS: + return getArguments(); + case ProblemPackage.ASSERTION__VALUE: + return getValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + 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; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.ASSERTION__RELATION: + setRelation((Relation) null); + return; + case ProblemPackage.ASSERTION__ARGUMENTS: + getArguments().clear(); + return; + case ProblemPackage.ASSERTION__VALUE: + setValue(VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + 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; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (value: "); + result.append(value); + result.append(')'); + return result.toString(); + } + +} //AssertionImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java new file mode 100644 index 00000000..4571db14 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/AtomImpl.java @@ -0,0 +1,271 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.Notification; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectResolvingEList; + +import org.eclipse.viatra.solver.language.model.problem.Atom; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; +import org.eclipse.viatra.solver.language.model.problem.Relation; +import org.eclipse.viatra.solver.language.model.problem.Variable; + +/** + * + * An implementation of the model object 'Atom'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl#getRelation Relation}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl#getArguments Arguments}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.AtomImpl#isTransitiveClosure Transitive Closure}
  • + *
+ * + * @generated + */ +public class AtomImpl extends LiteralImpl implements Atom { + /** + * The cached value of the '{@link #getRelation() Relation}' reference. + * + * + * @see #getRelation() + * @generated + * @ordered + */ + protected Relation relation; + + /** + * The cached value of the '{@link #getArguments() Arguments}' reference list. + * + * + * @see #getArguments() + * @generated + * @ordered + */ + protected EList arguments; + + /** + * The default value of the '{@link #isTransitiveClosure() Transitive Closure}' attribute. + * + * + * @see #isTransitiveClosure() + * @generated + * @ordered + */ + protected static final boolean TRANSITIVE_CLOSURE_EDEFAULT = false; + + /** + * The cached value of the '{@link #isTransitiveClosure() Transitive Closure}' attribute. + * + * + * @see #isTransitiveClosure() + * @generated + * @ordered + */ + protected boolean transitiveClosure = TRANSITIVE_CLOSURE_EDEFAULT; + + /** + * + * + * @generated + */ + protected AtomImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.ATOM; + } + + /** + * + * + * @generated + */ + public Relation getRelation() { + if (relation != null && relation.eIsProxy()) { + InternalEObject oldRelation = (InternalEObject) relation; + relation = (Relation) eResolveProxy(oldRelation); + if (relation != oldRelation) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.ATOM__RELATION, + oldRelation, relation)); + } + } + return relation; + } + + /** + * + * + * @generated + */ + public Relation basicGetRelation() { + return relation; + } + + /** + * + * + * @generated + */ + public void setRelation(Relation newRelation) { + Relation oldRelation = relation; + relation = newRelation; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ATOM__RELATION, oldRelation, + relation)); + } + + /** + * + * + * @generated + */ + public EList getArguments() { + if (arguments == null) { + arguments = new EObjectResolvingEList(Variable.class, this, ProblemPackage.ATOM__ARGUMENTS); + } + return arguments; + } + + /** + * + * + * @generated + */ + public boolean isTransitiveClosure() { + return transitiveClosure; + } + + /** + * + * + * @generated + */ + public void setTransitiveClosure(boolean newTransitiveClosure) { + boolean oldTransitiveClosure = transitiveClosure; + transitiveClosure = newTransitiveClosure; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.ATOM__TRANSITIVE_CLOSURE, + oldTransitiveClosure, transitiveClosure)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.ATOM__RELATION: + if (resolve) + return getRelation(); + return basicGetRelation(); + case ProblemPackage.ATOM__ARGUMENTS: + return getArguments(); + case ProblemPackage.ATOM__TRANSITIVE_CLOSURE: + return isTransitiveClosure(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.ATOM__RELATION: + setRelation((Relation) newValue); + return; + case ProblemPackage.ATOM__ARGUMENTS: + getArguments().clear(); + getArguments().addAll((Collection) newValue); + return; + case ProblemPackage.ATOM__TRANSITIVE_CLOSURE: + setTransitiveClosure((Boolean) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.ATOM__RELATION: + setRelation((Relation) null); + return; + case ProblemPackage.ATOM__ARGUMENTS: + getArguments().clear(); + return; + case ProblemPackage.ATOM__TRANSITIVE_CLOSURE: + setTransitiveClosure(TRANSITIVE_CLOSURE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.ATOM__RELATION: + return relation != null; + case ProblemPackage.ATOM__ARGUMENTS: + return arguments != null && !arguments.isEmpty(); + case ProblemPackage.ATOM__TRANSITIVE_CLOSURE: + return transitiveClosure != TRANSITIVE_CLOSURE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (transitiveClosure: "); + result.append(transitiveClosure); + result.append(')'); + return result.toString(); + } + +} //AtomImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java new file mode 100644 index 00000000..e1d07071 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ClassDeclarationImpl.java @@ -0,0 +1,260 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +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; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.EObjectResolvingEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; +import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration; + +/** + * + * An implementation of the model object 'Class Declaration'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl#isAbstract Abstract}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl#getSuperTypes Super Types}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ClassDeclarationImpl#getReferenceDeclarations Reference Declarations}
  • + *
+ * + * @generated + */ +public class ClassDeclarationImpl extends RelationImpl implements ClassDeclaration { + /** + * The default value of the '{@link #isAbstract() Abstract}' attribute. + * + * + * @see #isAbstract() + * @generated + * @ordered + */ + protected static final boolean ABSTRACT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isAbstract() Abstract}' attribute. + * + * + * @see #isAbstract() + * @generated + * @ordered + */ + protected boolean abstract_ = ABSTRACT_EDEFAULT; + + /** + * The cached value of the '{@link #getSuperTypes() Super Types}' reference list. + * + * + * @see #getSuperTypes() + * @generated + * @ordered + */ + protected EList superTypes; + + /** + * The cached value of the '{@link #getReferenceDeclarations() Reference Declarations}' containment reference list. + * + * + * @see #getReferenceDeclarations() + * @generated + * @ordered + */ + protected EList referenceDeclarations; + + /** + * + * + * @generated + */ + protected ClassDeclarationImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.CLASS_DECLARATION; + } + + /** + * + * + * @generated + */ + public boolean isAbstract() { + return abstract_; + } + + /** + * + * + * @generated + */ + public void setAbstract(boolean newAbstract) { + boolean oldAbstract = abstract_; + abstract_ = newAbstract; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.CLASS_DECLARATION__ABSTRACT, + oldAbstract, abstract_)); + } + + /** + * + * + * @generated + */ + public EList getSuperTypes() { + if (superTypes == null) { + superTypes = new EObjectResolvingEList(ClassDeclaration.class, this, + ProblemPackage.CLASS_DECLARATION__SUPER_TYPES); + } + return superTypes; + } + + /** + * + * + * @generated + */ + public EList getReferenceDeclarations() { + if (referenceDeclarations == null) { + referenceDeclarations = new EObjectContainmentEList(ReferenceDeclaration.class, this, + ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS); + } + return referenceDeclarations; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS: + return ((InternalEList) getReferenceDeclarations()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.CLASS_DECLARATION__ABSTRACT: + return isAbstract(); + case ProblemPackage.CLASS_DECLARATION__SUPER_TYPES: + return getSuperTypes(); + case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS: + return getReferenceDeclarations(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.CLASS_DECLARATION__ABSTRACT: + setAbstract((Boolean) newValue); + return; + case ProblemPackage.CLASS_DECLARATION__SUPER_TYPES: + getSuperTypes().clear(); + getSuperTypes().addAll((Collection) newValue); + return; + case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS: + getReferenceDeclarations().clear(); + getReferenceDeclarations().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.CLASS_DECLARATION__ABSTRACT: + setAbstract(ABSTRACT_EDEFAULT); + return; + case ProblemPackage.CLASS_DECLARATION__SUPER_TYPES: + getSuperTypes().clear(); + return; + case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS: + getReferenceDeclarations().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.CLASS_DECLARATION__ABSTRACT: + return abstract_ != ABSTRACT_EDEFAULT; + case ProblemPackage.CLASS_DECLARATION__SUPER_TYPES: + return superTypes != null && !superTypes.isEmpty(); + case ProblemPackage.CLASS_DECLARATION__REFERENCE_DECLARATIONS: + return referenceDeclarations != null && !referenceDeclarations.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (abstract: "); + result.append(abstract_); + result.append(')'); + return result.toString(); + } + +} //ClassDeclarationImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java new file mode 100644 index 00000000..3bdf887f --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ConjunctionImpl.java @@ -0,0 +1,189 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.viatra.solver.language.model.problem.Conjunction; +import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable; +import org.eclipse.viatra.solver.language.model.problem.Literal; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; + +/** + * + * An implementation of the model object 'Conjunction'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ConjunctionImpl#getImplicitVariables Implicit Variables}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ConjunctionImpl#getLiterals Literals}
  • + *
+ * + * @generated + */ +public class ConjunctionImpl extends MinimalEObjectImpl.Container implements Conjunction { + /** + * The cached value of the '{@link #getImplicitVariables() Implicit Variables}' containment reference list. + * + * + * @see #getImplicitVariables() + * @generated + * @ordered + */ + protected EList implicitVariables; + /** + * The cached value of the '{@link #getLiterals() Literals}' containment reference list. + * + * + * @see #getLiterals() + * @generated + * @ordered + */ + protected EList literals; + + /** + * + * + * @generated + */ + protected ConjunctionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.CONJUNCTION; + } + + /** + * + * + * @generated + */ + public EList getImplicitVariables() { + if (implicitVariables == null) { + implicitVariables = new EObjectContainmentEList(ImplicitVariable.class, this, + ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES); + } + return implicitVariables; + } + + /** + * + * + * @generated + */ + public EList getLiterals() { + if (literals == null) { + literals = new EObjectContainmentEList(Literal.class, this, ProblemPackage.CONJUNCTION__LITERALS); + } + return literals; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES: + return ((InternalEList) getImplicitVariables()).basicRemove(otherEnd, msgs); + case ProblemPackage.CONJUNCTION__LITERALS: + return ((InternalEList) getLiterals()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES: + return getImplicitVariables(); + case ProblemPackage.CONJUNCTION__LITERALS: + return getLiterals(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES: + getImplicitVariables().clear(); + getImplicitVariables().addAll((Collection) newValue); + return; + case ProblemPackage.CONJUNCTION__LITERALS: + getLiterals().clear(); + getLiterals().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES: + getImplicitVariables().clear(); + return; + case ProblemPackage.CONJUNCTION__LITERALS: + getLiterals().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.CONJUNCTION__IMPLICIT_VARIABLES: + return implicitVariables != null && !implicitVariables.isEmpty(); + case ProblemPackage.CONJUNCTION__LITERALS: + return literals != null && !literals.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ConjunctionImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ExactMultiplicityImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ExactMultiplicityImpl.java new file mode 100644 index 00000000..b3896ac2 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ExactMultiplicityImpl.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.ExactMultiplicity; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; + +/** + * + * An implementation of the model object 'Exact Multiplicity'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ExactMultiplicityImpl#getExactValue Exact Value}
  • + *
+ * + * @generated + */ +public class ExactMultiplicityImpl extends MultiplicityImpl implements ExactMultiplicity { + /** + * The default value of the '{@link #getExactValue() Exact Value}' attribute. + * + * + * @see #getExactValue() + * @generated + * @ordered + */ + protected static final int EXACT_VALUE_EDEFAULT = 1; + + /** + * The cached value of the '{@link #getExactValue() Exact Value}' attribute. + * + * + * @see #getExactValue() + * @generated + * @ordered + */ + protected int exactValue = EXACT_VALUE_EDEFAULT; + + /** + * + * + * @generated + */ + protected ExactMultiplicityImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.EXACT_MULTIPLICITY; + } + + /** + * + * + * @generated + */ + public int getExactValue() { + return exactValue; + } + + /** + * + * + * @generated + */ + public void setExactValue(int newExactValue) { + int oldExactValue = exactValue; + exactValue = newExactValue; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.EXACT_MULTIPLICITY__EXACT_VALUE, + oldExactValue, exactValue)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.EXACT_MULTIPLICITY__EXACT_VALUE: + return getExactValue(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.EXACT_MULTIPLICITY__EXACT_VALUE: + setExactValue((Integer) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.EXACT_MULTIPLICITY__EXACT_VALUE: + setExactValue(EXACT_VALUE_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.EXACT_MULTIPLICITY__EXACT_VALUE: + return exactValue != EXACT_VALUE_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (exactValue: "); + result.append(exactValue); + result.append(')'); + return result.toString(); + } + +} //ExactMultiplicityImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ImplicitVariableImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ImplicitVariableImpl.java new file mode 100644 index 00000000..03a31a16 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ImplicitVariableImpl.java @@ -0,0 +1,37 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; + +/** + * + * An implementation of the model object 'Implicit Variable'. + * + * + * @generated + */ +public class ImplicitVariableImpl extends VariableImpl implements ImplicitVariable { + /** + * + * + * @generated + */ + protected ImplicitVariableImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.IMPLICIT_VARIABLE; + } + +} //ImplicitVariableImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/LiteralImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/LiteralImpl.java new file mode 100644 index 00000000..c48bdb0b --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/LiteralImpl.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.Literal; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; + +/** + * + * An implementation of the model object 'Literal'. + * + * + * @generated + */ +public abstract class LiteralImpl extends MinimalEObjectImpl.Container implements Literal { + /** + * + * + * @generated + */ + protected LiteralImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.LITERAL; + } + +} //LiteralImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/MultiplicityImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/MultiplicityImpl.java new file mode 100644 index 00000000..8d769eb0 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/MultiplicityImpl.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.Multiplicity; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; + +/** + * + * An implementation of the model object 'Multiplicity'. + * + * + * @generated + */ +public abstract class MultiplicityImpl extends MinimalEObjectImpl.Container implements Multiplicity { + /** + * + * + * @generated + */ + protected MultiplicityImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.MULTIPLICITY; + } + +} //MultiplicityImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NamedElementImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NamedElementImpl.java new file mode 100644 index 00000000..b414013b --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NamedElementImpl.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.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.viatra.solver.language.model.problem.NamedElement; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; + +/** + * + * An implementation of the model object 'Named Element'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.NamedElementImpl#getName Name}
  • + *
+ * + * @generated + */ +public abstract class NamedElementImpl extends MinimalEObjectImpl.Container implements NamedElement { + /** + * The default value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected static final String NAME_EDEFAULT = null; + + /** + * The cached value of the '{@link #getName() Name}' attribute. + * + * + * @see #getName() + * @generated + * @ordered + */ + protected String name = NAME_EDEFAULT; + + /** + * + * + * @generated + */ + protected NamedElementImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.NAMED_ELEMENT; + } + + /** + * + * + * @generated + */ + public String getName() { + return name; + } + + /** + * + * + * @generated + */ + public void setName(String newName) { + String oldName = name; + name = newName; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.NAMED_ELEMENT__NAME, oldName, name)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.NAMED_ELEMENT__NAME: + return getName(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.NAMED_ELEMENT__NAME: + setName((String) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.NAMED_ELEMENT__NAME: + setName(NAME_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.NAMED_ELEMENT__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (name: "); + result.append(name); + result.append(')'); + return result.toString(); + } + +} //NamedElementImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java new file mode 100644 index 00000000..5295406b --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NegativeLiteralImpl.java @@ -0,0 +1,228 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +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; +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.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.viatra.solver.language.model.problem.Atom; +import org.eclipse.viatra.solver.language.model.problem.ImplicitVariable; +import org.eclipse.viatra.solver.language.model.problem.NegativeLiteral; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; + +/** + * + * An implementation of the model object 'Negative Literal'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.NegativeLiteralImpl#getImplicitVariables Implicit Variables}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.NegativeLiteralImpl#getAtom Atom}
  • + *
+ * + * @generated + */ +public class NegativeLiteralImpl extends MinimalEObjectImpl.Container implements NegativeLiteral { + /** + * The cached value of the '{@link #getImplicitVariables() Implicit Variables}' containment reference list. + * + * + * @see #getImplicitVariables() + * @generated + * @ordered + */ + protected EList implicitVariables; + /** + * The cached value of the '{@link #getAtom() Atom}' containment reference. + * + * + * @see #getAtom() + * @generated + * @ordered + */ + protected Atom atom; + + /** + * + * + * @generated + */ + protected NegativeLiteralImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.NEGATIVE_LITERAL; + } + + /** + * + * + * @generated + */ + public EList getImplicitVariables() { + if (implicitVariables == null) { + implicitVariables = new EObjectContainmentEList(ImplicitVariable.class, this, + ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES); + } + return implicitVariables; + } + + /** + * + * + * @generated + */ + public Atom getAtom() { + return atom; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetAtom(Atom newAtom, NotificationChain msgs) { + Atom oldAtom = atom; + atom = newAtom; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, + ProblemPackage.NEGATIVE_LITERAL__ATOM, oldAtom, newAtom); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setAtom(Atom newAtom) { + if (newAtom != atom) { + NotificationChain msgs = null; + if (atom != null) + msgs = ((InternalEObject) atom).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - ProblemPackage.NEGATIVE_LITERAL__ATOM, null, msgs); + if (newAtom != null) + msgs = ((InternalEObject) newAtom).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - ProblemPackage.NEGATIVE_LITERAL__ATOM, null, msgs); + msgs = basicSetAtom(newAtom, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.NEGATIVE_LITERAL__ATOM, newAtom, + newAtom)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES: + return ((InternalEList) getImplicitVariables()).basicRemove(otherEnd, msgs); + case ProblemPackage.NEGATIVE_LITERAL__ATOM: + return basicSetAtom(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES: + return getImplicitVariables(); + case ProblemPackage.NEGATIVE_LITERAL__ATOM: + return getAtom(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES: + getImplicitVariables().clear(); + getImplicitVariables().addAll((Collection) newValue); + return; + case ProblemPackage.NEGATIVE_LITERAL__ATOM: + setAtom((Atom) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES: + getImplicitVariables().clear(); + return; + case ProblemPackage.NEGATIVE_LITERAL__ATOM: + setAtom((Atom) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.NEGATIVE_LITERAL__IMPLICIT_VARIABLES: + return implicitVariables != null && !implicitVariables.isEmpty(); + case ProblemPackage.NEGATIVE_LITERAL__ATOM: + return atom != null; + } + return super.eIsSet(featureID); + } + +} //NegativeLiteralImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java new file mode 100644 index 00000000..23b85a9c --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/NodeImpl.java @@ -0,0 +1,37 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.viatra.solver.language.model.problem.Node; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; + +/** + * + * An implementation of the model object 'Node'. + * + * + * @generated + */ +public class NodeImpl extends NamedElementImpl implements Node { + /** + * + * + * @generated + */ + protected NodeImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.NODE; + } + +} //NodeImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.java new file mode 100644 index 00000000..cfbf25b0 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ParameterImpl.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.ClassDeclaration; +import org.eclipse.viatra.solver.language.model.problem.Parameter; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; + +/** + * + * An implementation of the model object 'Parameter'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ParameterImpl#getParameterType Parameter Type}
  • + *
+ * + * @generated + */ +public class ParameterImpl extends VariableImpl implements Parameter { + /** + * The cached value of the '{@link #getParameterType() Parameter Type}' reference. + * + * + * @see #getParameterType() + * @generated + * @ordered + */ + protected ClassDeclaration parameterType; + + /** + * + * + * @generated + */ + protected ParameterImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.PARAMETER; + } + + /** + * + * + * @generated + */ + public ClassDeclaration getParameterType() { + if (parameterType != null && parameterType.eIsProxy()) { + InternalEObject oldParameterType = (InternalEObject) parameterType; + parameterType = (ClassDeclaration) eResolveProxy(oldParameterType); + if (parameterType != oldParameterType) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.PARAMETER__PARAMETER_TYPE, + oldParameterType, parameterType)); + } + } + return parameterType; + } + + /** + * + * + * @generated + */ + public ClassDeclaration basicGetParameterType() { + return parameterType; + } + + /** + * + * + * @generated + */ + public void setParameterType(ClassDeclaration newParameterType) { + ClassDeclaration oldParameterType = parameterType; + parameterType = newParameterType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.PARAMETER__PARAMETER_TYPE, + oldParameterType, parameterType)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.PARAMETER__PARAMETER_TYPE: + if (resolve) + return getParameterType(); + return basicGetParameterType(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.PARAMETER__PARAMETER_TYPE: + setParameterType((ClassDeclaration) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.PARAMETER__PARAMETER_TYPE: + setParameterType((ClassDeclaration) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.PARAMETER__PARAMETER_TYPE: + return parameterType != null; + } + return super.eIsSet(featureID); + } + +} //ParameterImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/PredicateDefinitionImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/PredicateDefinitionImpl.java new file mode 100644 index 00000000..968b6de1 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/PredicateDefinitionImpl.java @@ -0,0 +1,262 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +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; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.ENotificationImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.viatra.solver.language.model.problem.Conjunction; +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.ProblemPackage; + +/** + * + * An implementation of the model object 'Predicate Definition'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl#isError Error}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl#getParameters Parameters}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.PredicateDefinitionImpl#getBodies Bodies}
  • + *
+ * + * @generated + */ +public class PredicateDefinitionImpl extends RelationImpl implements PredicateDefinition { + /** + * The default value of the '{@link #isError() Error}' attribute. + * + * + * @see #isError() + * @generated + * @ordered + */ + protected static final boolean ERROR_EDEFAULT = false; + + /** + * The cached value of the '{@link #isError() Error}' attribute. + * + * + * @see #isError() + * @generated + * @ordered + */ + protected boolean error = ERROR_EDEFAULT; + + /** + * The cached value of the '{@link #getParameters() Parameters}' containment reference list. + * + * + * @see #getParameters() + * @generated + * @ordered + */ + protected EList parameters; + + /** + * The cached value of the '{@link #getBodies() Bodies}' containment reference list. + * + * + * @see #getBodies() + * @generated + * @ordered + */ + protected EList bodies; + + /** + * + * + * @generated + */ + protected PredicateDefinitionImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.PREDICATE_DEFINITION; + } + + /** + * + * + * @generated + */ + public boolean isError() { + return error; + } + + /** + * + * + * @generated + */ + public void setError(boolean newError) { + boolean oldError = error; + error = newError; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.PREDICATE_DEFINITION__ERROR, oldError, + error)); + } + + /** + * + * + * @generated + */ + public EList getParameters() { + if (parameters == null) { + parameters = new EObjectContainmentEList(Parameter.class, this, + ProblemPackage.PREDICATE_DEFINITION__PARAMETERS); + } + return parameters; + } + + /** + * + * + * @generated + */ + public EList getBodies() { + if (bodies == null) { + bodies = new EObjectContainmentEList(Conjunction.class, this, + ProblemPackage.PREDICATE_DEFINITION__BODIES); + } + return bodies; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case ProblemPackage.PREDICATE_DEFINITION__PARAMETERS: + return ((InternalEList) getParameters()).basicRemove(otherEnd, msgs); + case ProblemPackage.PREDICATE_DEFINITION__BODIES: + return ((InternalEList) getBodies()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.PREDICATE_DEFINITION__ERROR: + return isError(); + case ProblemPackage.PREDICATE_DEFINITION__PARAMETERS: + return getParameters(); + case ProblemPackage.PREDICATE_DEFINITION__BODIES: + return getBodies(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.PREDICATE_DEFINITION__ERROR: + setError((Boolean) newValue); + return; + case ProblemPackage.PREDICATE_DEFINITION__PARAMETERS: + getParameters().clear(); + getParameters().addAll((Collection) newValue); + return; + case ProblemPackage.PREDICATE_DEFINITION__BODIES: + getBodies().clear(); + getBodies().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.PREDICATE_DEFINITION__ERROR: + setError(ERROR_EDEFAULT); + return; + case ProblemPackage.PREDICATE_DEFINITION__PARAMETERS: + getParameters().clear(); + return; + case ProblemPackage.PREDICATE_DEFINITION__BODIES: + getBodies().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.PREDICATE_DEFINITION__ERROR: + return error != ERROR_EDEFAULT; + case ProblemPackage.PREDICATE_DEFINITION__PARAMETERS: + return parameters != null && !parameters.isEmpty(); + case ProblemPackage.PREDICATE_DEFINITION__BODIES: + return bodies != null && !bodies.isEmpty(); + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (error: "); + result.append(error); + result.append(')'); + return result.toString(); + } + +} //PredicateDefinitionImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java new file mode 100644 index 00000000..563f8b05 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemFactoryImpl.java @@ -0,0 +1,317 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EDataType; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.impl.EFactoryImpl; + +import org.eclipse.emf.ecore.plugin.EcorePlugin; + +import org.eclipse.viatra.solver.language.model.problem.*; + +/** + * + * An implementation of the model Factory. + * + * @generated + */ +public class ProblemFactoryImpl extends EFactoryImpl implements ProblemFactory { + /** + * Creates the default factory implementation. + * + * + * @generated + */ + public static ProblemFactory init() { + try { + ProblemFactory theProblemFactory = (ProblemFactory) EPackage.Registry.INSTANCE + .getEFactory(ProblemPackage.eNS_URI); + if (theProblemFactory != null) { + return theProblemFactory; + } + } catch (Exception exception) { + EcorePlugin.INSTANCE.log(exception); + } + return new ProblemFactoryImpl(); + } + + /** + * Creates an instance of the factory. + * + * + * @generated + */ + public ProblemFactoryImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + public EObject create(EClass eClass) { + switch (eClass.getClassifierID()) { + case ProblemPackage.PROBLEM: + return createProblem(); + case ProblemPackage.CLASS_DECLARATION: + return createClassDeclaration(); + case ProblemPackage.REFERENCE_DECLARATION: + return createReferenceDeclaration(); + case ProblemPackage.PREDICATE_DEFINITION: + return createPredicateDefinition(); + case ProblemPackage.PARAMETER: + return createParameter(); + case ProblemPackage.CONJUNCTION: + return createConjunction(); + case ProblemPackage.ATOM: + return createAtom(); + case ProblemPackage.IMPLICIT_VARIABLE: + return createImplicitVariable(); + case ProblemPackage.NEGATIVE_LITERAL: + return createNegativeLiteral(); + case ProblemPackage.ASSERTION: + return createAssertion(); + case ProblemPackage.NODE: + return createNode(); + case ProblemPackage.SCOPE_DECLARATION: + return createScopeDeclaration(); + case ProblemPackage.TYPE_SCOPE: + return createTypeScope(); + case ProblemPackage.RANGE_MULTIPLICITY: + return createRangeMultiplicity(); + case ProblemPackage.EXACT_MULTIPLICITY: + return createExactMultiplicity(); + default: + throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public Object createFromString(EDataType eDataType, String initialValue) { + switch (eDataType.getClassifierID()) { + case ProblemPackage.LOGIC_VALUE: + return createLogicValueFromString(eDataType, initialValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + @Override + public String convertToString(EDataType eDataType, Object instanceValue) { + switch (eDataType.getClassifierID()) { + case ProblemPackage.LOGIC_VALUE: + return convertLogicValueToString(eDataType, instanceValue); + default: + throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier"); + } + } + + /** + * + * + * @generated + */ + public Problem createProblem() { + ProblemImpl problem = new ProblemImpl(); + return problem; + } + + /** + * + * + * @generated + */ + public ClassDeclaration createClassDeclaration() { + ClassDeclarationImpl classDeclaration = new ClassDeclarationImpl(); + return classDeclaration; + } + + /** + * + * + * @generated + */ + public ReferenceDeclaration createReferenceDeclaration() { + ReferenceDeclarationImpl referenceDeclaration = new ReferenceDeclarationImpl(); + return referenceDeclaration; + } + + /** + * + * + * @generated + */ + public PredicateDefinition createPredicateDefinition() { + PredicateDefinitionImpl predicateDefinition = new PredicateDefinitionImpl(); + return predicateDefinition; + } + + /** + * + * + * @generated + */ + public Parameter createParameter() { + ParameterImpl parameter = new ParameterImpl(); + return parameter; + } + + /** + * + * + * @generated + */ + public Conjunction createConjunction() { + ConjunctionImpl conjunction = new ConjunctionImpl(); + return conjunction; + } + + /** + * + * + * @generated + */ + public Atom createAtom() { + AtomImpl atom = new AtomImpl(); + return atom; + } + + /** + * + * + * @generated + */ + public ImplicitVariable createImplicitVariable() { + ImplicitVariableImpl implicitVariable = new ImplicitVariableImpl(); + return implicitVariable; + } + + /** + * + * + * @generated + */ + public NegativeLiteral createNegativeLiteral() { + NegativeLiteralImpl negativeLiteral = new NegativeLiteralImpl(); + return negativeLiteral; + } + + /** + * + * + * @generated + */ + public Assertion createAssertion() { + AssertionImpl assertion = new AssertionImpl(); + return assertion; + } + + /** + * + * + * @generated + */ + public Node createNode() { + NodeImpl node = new NodeImpl(); + return node; + } + + /** + * + * + * @generated + */ + public ScopeDeclaration createScopeDeclaration() { + ScopeDeclarationImpl scopeDeclaration = new ScopeDeclarationImpl(); + return scopeDeclaration; + } + + /** + * + * + * @generated + */ + public TypeScope createTypeScope() { + TypeScopeImpl typeScope = new TypeScopeImpl(); + return typeScope; + } + + /** + * + * + * @generated + */ + public RangeMultiplicity createRangeMultiplicity() { + RangeMultiplicityImpl rangeMultiplicity = new RangeMultiplicityImpl(); + return rangeMultiplicity; + } + + /** + * + * + * @generated + */ + public ExactMultiplicity createExactMultiplicity() { + ExactMultiplicityImpl exactMultiplicity = new ExactMultiplicityImpl(); + return exactMultiplicity; + } + + /** + * + * + * @generated + */ + public LogicValue createLogicValueFromString(EDataType eDataType, String initialValue) { + LogicValue result = LogicValue.get(initialValue); + if (result == null) + throw new IllegalArgumentException( + "The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'"); + return result; + } + + /** + * + * + * @generated + */ + public String convertLogicValueToString(EDataType eDataType, Object instanceValue) { + return instanceValue == null ? null : instanceValue.toString(); + } + + /** + * + * + * @generated + */ + public ProblemPackage getProblemPackage() { + return (ProblemPackage) getEPackage(); + } + + /** + * + * + * @deprecated + * @generated + */ + @Deprecated + public static ProblemPackage getPackage() { + return ProblemPackage.eINSTANCE; + } + +} //ProblemFactoryImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java new file mode 100644 index 00000000..32bba265 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemImpl.java @@ -0,0 +1,189 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.viatra.solver.language.model.problem.Node; +import org.eclipse.viatra.solver.language.model.problem.Problem; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; +import org.eclipse.viatra.solver.language.model.problem.Statement; + +/** + * + * An implementation of the model object 'Problem'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl#getNodes Nodes}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ProblemImpl#getStatements Statements}
  • + *
+ * + * @generated + */ +public class ProblemImpl extends MinimalEObjectImpl.Container implements Problem { + /** + * The cached value of the '{@link #getNodes() Nodes}' containment reference list. + * + * + * @see #getNodes() + * @generated + * @ordered + */ + protected EList nodes; + /** + * The cached value of the '{@link #getStatements() Statements}' containment reference list. + * + * + * @see #getStatements() + * @generated + * @ordered + */ + protected EList statements; + + /** + * + * + * @generated + */ + protected ProblemImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.PROBLEM; + } + + /** + * + * + * @generated + */ + public EList getNodes() { + if (nodes == null) { + nodes = new EObjectContainmentEList(Node.class, this, ProblemPackage.PROBLEM__NODES); + } + return nodes; + } + + /** + * + * + * @generated + */ + public EList getStatements() { + if (statements == null) { + statements = new EObjectContainmentEList(Statement.class, this, + ProblemPackage.PROBLEM__STATEMENTS); + } + return statements; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case ProblemPackage.PROBLEM__NODES: + return ((InternalEList) getNodes()).basicRemove(otherEnd, msgs); + case ProblemPackage.PROBLEM__STATEMENTS: + return ((InternalEList) getStatements()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.PROBLEM__NODES: + return getNodes(); + case ProblemPackage.PROBLEM__STATEMENTS: + return getStatements(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.PROBLEM__NODES: + getNodes().clear(); + getNodes().addAll((Collection) newValue); + return; + case ProblemPackage.PROBLEM__STATEMENTS: + getStatements().clear(); + getStatements().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.PROBLEM__NODES: + getNodes().clear(); + return; + case ProblemPackage.PROBLEM__STATEMENTS: + getStatements().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.PROBLEM__NODES: + return nodes != null && !nodes.isEmpty(); + case ProblemPackage.PROBLEM__STATEMENTS: + return statements != null && !statements.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ProblemImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java new file mode 100644 index 00000000..de0aa595 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ProblemPackageImpl.java @@ -0,0 +1,1061 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import org.eclipse.emf.ecore.EAttribute; +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.EEnum; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; + +import org.eclipse.emf.ecore.impl.EPackageImpl; + +import org.eclipse.viatra.solver.language.model.problem.Assertion; +import org.eclipse.viatra.solver.language.model.problem.Atom; +import org.eclipse.viatra.solver.language.model.problem.ClassDeclaration; +import org.eclipse.viatra.solver.language.model.problem.Conjunction; +import org.eclipse.viatra.solver.language.model.problem.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.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.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.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.TypeScope; +import org.eclipse.viatra.solver.language.model.problem.Variable; + +/** + * + * An implementation of the model Package. + * + * @generated + */ +public class ProblemPackageImpl extends EPackageImpl implements ProblemPackage { + /** + * + * + * @generated + */ + private EClass problemEClass = null; + + /** + * + * + * @generated + */ + private EClass relationEClass = null; + + /** + * + * + * @generated + */ + private EClass classDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass referenceDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass namedElementEClass = null; + + /** + * + * + * @generated + */ + private EClass predicateDefinitionEClass = null; + + /** + * + * + * @generated + */ + private EClass parameterEClass = null; + + /** + * + * + * @generated + */ + private EClass variableEClass = null; + + /** + * + * + * @generated + */ + private EClass conjunctionEClass = null; + + /** + * + * + * @generated + */ + private EClass literalEClass = null; + + /** + * + * + * @generated + */ + private EClass atomEClass = null; + + /** + * + * + * @generated + */ + private EClass implicitVariableEClass = null; + + /** + * + * + * @generated + */ + private EClass negativeLiteralEClass = null; + + /** + * + * + * @generated + */ + private EClass existentialQuantifierEClass = null; + + /** + * + * + * @generated + */ + private EClass assertionEClass = null; + + /** + * + * + * @generated + */ + private EClass nodeEClass = null; + + /** + * + * + * @generated + */ + private EClass scopeDeclarationEClass = null; + + /** + * + * + * @generated + */ + private EClass statementEClass = null; + + /** + * + * + * @generated + */ + private EClass typeScopeEClass = null; + + /** + * + * + * @generated + */ + private EClass multiplicityEClass = null; + + /** + * + * + * @generated + */ + private EClass rangeMultiplicityEClass = null; + + /** + * + * + * @generated + */ + private EClass exactMultiplicityEClass = null; + + /** + * + * + * @generated + */ + private EEnum logicValueEEnum = null; + + /** + * Creates an instance of the model Package, registered with + * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package + * package URI value. + *

Note: the correct way to create the package is via the static + * factory method {@link #init init()}, which also performs + * initialization of the package, or returns the registered package, + * if one already exists. + * + * + * @see org.eclipse.emf.ecore.EPackage.Registry + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage#eNS_URI + * @see #init() + * @generated + */ + private ProblemPackageImpl() { + super(eNS_URI, ProblemFactory.eINSTANCE); + } + + /** + * + * + * @generated + */ + private static boolean isInited = false; + + /** + * Creates, registers, and initializes the Package for this model, and for any others upon which it depends. + * + *

This method is used to initialize {@link ProblemPackage#eINSTANCE} when that field is accessed. + * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package. + * + * + * @see #eNS_URI + * @see #createPackageContents() + * @see #initializePackageContents() + * @generated + */ + public static ProblemPackage init() { + if (isInited) + return (ProblemPackage) EPackage.Registry.INSTANCE.getEPackage(ProblemPackage.eNS_URI); + + // Obtain or create and register package + Object registeredProblemPackage = EPackage.Registry.INSTANCE.get(eNS_URI); + ProblemPackageImpl theProblemPackage = registeredProblemPackage instanceof ProblemPackageImpl + ? (ProblemPackageImpl) registeredProblemPackage + : new ProblemPackageImpl(); + + isInited = true; + + // Create package meta-data objects + theProblemPackage.createPackageContents(); + + // Initialize created meta-data + theProblemPackage.initializePackageContents(); + + // Mark meta-data to indicate it can't be changed + theProblemPackage.freeze(); + + // Update the registry and return the package + EPackage.Registry.INSTANCE.put(ProblemPackage.eNS_URI, theProblemPackage); + return theProblemPackage; + } + + /** + * + * + * @generated + */ + public EClass getProblem() { + return problemEClass; + } + + /** + * + * + * @generated + */ + public EReference getProblem_Nodes() { + return (EReference) problemEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getProblem_Statements() { + return (EReference) problemEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getRelation() { + return relationEClass; + } + + /** + * + * + * @generated + */ + public EClass getClassDeclaration() { + return classDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getClassDeclaration_Abstract() { + return (EAttribute) classDeclarationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getClassDeclaration_SuperTypes() { + return (EReference) classDeclarationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getClassDeclaration_ReferenceDeclarations() { + return (EReference) classDeclarationEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getReferenceDeclaration() { + return referenceDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getReferenceDeclaration_ReferenceType() { + return (EReference) referenceDeclarationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getReferenceDeclaration_Opposite() { + return (EReference) referenceDeclarationEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getReferenceDeclaration_Containment() { + return (EAttribute) referenceDeclarationEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EReference getReferenceDeclaration_Multiplicity() { + return (EReference) referenceDeclarationEClass.getEStructuralFeatures().get(3); + } + + /** + * + * + * @generated + */ + public EClass getNamedElement() { + return namedElementEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getNamedElement_Name() { + return (EAttribute) namedElementEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getPredicateDefinition() { + return predicateDefinitionEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getPredicateDefinition_Error() { + return (EAttribute) predicateDefinitionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getPredicateDefinition_Parameters() { + return (EReference) predicateDefinitionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getPredicateDefinition_Bodies() { + return (EReference) predicateDefinitionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getParameter() { + return parameterEClass; + } + + /** + * + * + * @generated + */ + public EReference getParameter_ParameterType() { + return (EReference) parameterEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getVariable() { + return variableEClass; + } + + /** + * + * + * @generated + */ + public EClass getConjunction() { + return conjunctionEClass; + } + + /** + * + * + * @generated + */ + public EReference getConjunction_Literals() { + return (EReference) conjunctionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getLiteral() { + return literalEClass; + } + + /** + * + * + * @generated + */ + public EClass getAtom() { + return atomEClass; + } + + /** + * + * + * @generated + */ + public EReference getAtom_Relation() { + return (EReference) atomEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getAtom_Arguments() { + return (EReference) atomEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getAtom_TransitiveClosure() { + return (EAttribute) atomEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getImplicitVariable() { + return implicitVariableEClass; + } + + /** + * + * + * @generated + */ + public EClass getNegativeLiteral() { + return negativeLiteralEClass; + } + + /** + * + * + * @generated + */ + public EReference getNegativeLiteral_Atom() { + return (EReference) negativeLiteralEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getExistentialQuantifier() { + return existentialQuantifierEClass; + } + + /** + * + * + * @generated + */ + public EReference getExistentialQuantifier_ImplicitVariables() { + return (EReference) existentialQuantifierEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getAssertion() { + return assertionEClass; + } + + /** + * + * + * @generated + */ + public EReference getAssertion_Relation() { + return (EReference) assertionEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EReference getAssertion_Arguments() { + return (EReference) assertionEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EAttribute getAssertion_Value() { + return (EAttribute) assertionEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getNode() { + return nodeEClass; + } + + /** + * + * + * @generated + */ + public EClass getScopeDeclaration() { + return scopeDeclarationEClass; + } + + /** + * + * + * @generated + */ + public EReference getScopeDeclaration_TypeScopes() { + return (EReference) scopeDeclarationEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EClass getStatement() { + return statementEClass; + } + + /** + * + * + * @generated + */ + public EClass getTypeScope() { + return typeScopeEClass; + } + + /** + * + * + * @generated + */ + public EReference getTypeScope_TargetType() { + return (EReference) typeScopeEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getTypeScope_Increment() { + return (EAttribute) typeScopeEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EReference getTypeScope_Multiplicity() { + return (EReference) typeScopeEClass.getEStructuralFeatures().get(2); + } + + /** + * + * + * @generated + */ + public EClass getMultiplicity() { + return multiplicityEClass; + } + + /** + * + * + * @generated + */ + public EClass getRangeMultiplicity() { + return rangeMultiplicityEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getRangeMultiplicity_LowerBound() { + return (EAttribute) rangeMultiplicityEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EAttribute getRangeMultiplicity_UpperBound() { + return (EAttribute) rangeMultiplicityEClass.getEStructuralFeatures().get(1); + } + + /** + * + * + * @generated + */ + public EClass getExactMultiplicity() { + return exactMultiplicityEClass; + } + + /** + * + * + * @generated + */ + public EAttribute getExactMultiplicity_ExactValue() { + return (EAttribute) exactMultiplicityEClass.getEStructuralFeatures().get(0); + } + + /** + * + * + * @generated + */ + public EEnum getLogicValue() { + return logicValueEEnum; + } + + /** + * + * + * @generated + */ + public ProblemFactory getProblemFactory() { + return (ProblemFactory) getEFactoryInstance(); + } + + /** + * + * + * @generated + */ + private boolean isCreated = false; + + /** + * Creates the meta-model objects for the package. This method is + * guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void createPackageContents() { + if (isCreated) + return; + isCreated = true; + + // Create classes and their features + problemEClass = createEClass(PROBLEM); + createEReference(problemEClass, PROBLEM__NODES); + createEReference(problemEClass, PROBLEM__STATEMENTS); + + relationEClass = createEClass(RELATION); + + classDeclarationEClass = createEClass(CLASS_DECLARATION); + createEAttribute(classDeclarationEClass, CLASS_DECLARATION__ABSTRACT); + createEReference(classDeclarationEClass, CLASS_DECLARATION__SUPER_TYPES); + createEReference(classDeclarationEClass, CLASS_DECLARATION__REFERENCE_DECLARATIONS); + + referenceDeclarationEClass = createEClass(REFERENCE_DECLARATION); + createEReference(referenceDeclarationEClass, REFERENCE_DECLARATION__REFERENCE_TYPE); + createEReference(referenceDeclarationEClass, REFERENCE_DECLARATION__OPPOSITE); + createEAttribute(referenceDeclarationEClass, REFERENCE_DECLARATION__CONTAINMENT); + createEReference(referenceDeclarationEClass, REFERENCE_DECLARATION__MULTIPLICITY); + + namedElementEClass = createEClass(NAMED_ELEMENT); + createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME); + + predicateDefinitionEClass = createEClass(PREDICATE_DEFINITION); + createEAttribute(predicateDefinitionEClass, PREDICATE_DEFINITION__ERROR); + createEReference(predicateDefinitionEClass, PREDICATE_DEFINITION__PARAMETERS); + createEReference(predicateDefinitionEClass, PREDICATE_DEFINITION__BODIES); + + parameterEClass = createEClass(PARAMETER); + createEReference(parameterEClass, PARAMETER__PARAMETER_TYPE); + + variableEClass = createEClass(VARIABLE); + + conjunctionEClass = createEClass(CONJUNCTION); + createEReference(conjunctionEClass, CONJUNCTION__LITERALS); + + literalEClass = createEClass(LITERAL); + + atomEClass = createEClass(ATOM); + createEReference(atomEClass, ATOM__RELATION); + createEReference(atomEClass, ATOM__ARGUMENTS); + createEAttribute(atomEClass, ATOM__TRANSITIVE_CLOSURE); + + implicitVariableEClass = createEClass(IMPLICIT_VARIABLE); + + negativeLiteralEClass = createEClass(NEGATIVE_LITERAL); + createEReference(negativeLiteralEClass, NEGATIVE_LITERAL__ATOM); + + existentialQuantifierEClass = createEClass(EXISTENTIAL_QUANTIFIER); + createEReference(existentialQuantifierEClass, EXISTENTIAL_QUANTIFIER__IMPLICIT_VARIABLES); + + assertionEClass = createEClass(ASSERTION); + createEReference(assertionEClass, ASSERTION__RELATION); + createEReference(assertionEClass, ASSERTION__ARGUMENTS); + createEAttribute(assertionEClass, ASSERTION__VALUE); + + nodeEClass = createEClass(NODE); + + scopeDeclarationEClass = createEClass(SCOPE_DECLARATION); + createEReference(scopeDeclarationEClass, SCOPE_DECLARATION__TYPE_SCOPES); + + statementEClass = createEClass(STATEMENT); + + typeScopeEClass = createEClass(TYPE_SCOPE); + createEReference(typeScopeEClass, TYPE_SCOPE__TARGET_TYPE); + createEAttribute(typeScopeEClass, TYPE_SCOPE__INCREMENT); + createEReference(typeScopeEClass, TYPE_SCOPE__MULTIPLICITY); + + multiplicityEClass = createEClass(MULTIPLICITY); + + rangeMultiplicityEClass = createEClass(RANGE_MULTIPLICITY); + createEAttribute(rangeMultiplicityEClass, RANGE_MULTIPLICITY__LOWER_BOUND); + createEAttribute(rangeMultiplicityEClass, RANGE_MULTIPLICITY__UPPER_BOUND); + + exactMultiplicityEClass = createEClass(EXACT_MULTIPLICITY); + createEAttribute(exactMultiplicityEClass, EXACT_MULTIPLICITY__EXACT_VALUE); + + // Create enums + logicValueEEnum = createEEnum(LOGIC_VALUE); + } + + /** + * + * + * @generated + */ + private boolean isInitialized = false; + + /** + * Complete the initialization of the package and its meta-model. This + * method is guarded to have no affect on any invocation but its first. + * + * + * @generated + */ + public void initializePackageContents() { + if (isInitialized) + return; + isInitialized = true; + + // Initialize package + setName(eNAME); + setNsPrefix(eNS_PREFIX); + setNsURI(eNS_URI); + + // Create type parameters + + // Set bounds for type parameters + + // Add supertypes to classes + relationEClass.getESuperTypes().add(this.getNamedElement()); + classDeclarationEClass.getESuperTypes().add(this.getRelation()); + classDeclarationEClass.getESuperTypes().add(this.getStatement()); + referenceDeclarationEClass.getESuperTypes().add(this.getRelation()); + predicateDefinitionEClass.getESuperTypes().add(this.getRelation()); + predicateDefinitionEClass.getESuperTypes().add(this.getStatement()); + parameterEClass.getESuperTypes().add(this.getVariable()); + variableEClass.getESuperTypes().add(this.getNamedElement()); + conjunctionEClass.getESuperTypes().add(this.getExistentialQuantifier()); + atomEClass.getESuperTypes().add(this.getLiteral()); + implicitVariableEClass.getESuperTypes().add(this.getVariable()); + negativeLiteralEClass.getESuperTypes().add(this.getExistentialQuantifier()); + negativeLiteralEClass.getESuperTypes().add(this.getLiteral()); + assertionEClass.getESuperTypes().add(this.getStatement()); + nodeEClass.getESuperTypes().add(this.getNamedElement()); + scopeDeclarationEClass.getESuperTypes().add(this.getStatement()); + rangeMultiplicityEClass.getESuperTypes().add(this.getMultiplicity()); + exactMultiplicityEClass.getESuperTypes().add(this.getMultiplicity()); + + // Initialize classes, features, and operations; add parameters + initEClass(problemEClass, Problem.class, "Problem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getProblem_Nodes(), this.getNode(), null, "nodes", null, 0, -1, Problem.class, !IS_TRANSIENT, + !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, + IS_ORDERED); + initEReference(getProblem_Statements(), this.getStatement(), null, "statements", null, 0, -1, Problem.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(relationEClass, Relation.class, "Relation", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(classDeclarationEClass, ClassDeclaration.class, "ClassDeclaration", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getClassDeclaration_Abstract(), ecorePackage.getEBoolean(), "abstract", null, 0, 1, + ClassDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEReference(getClassDeclaration_SuperTypes(), this.getClassDeclaration(), null, "superTypes", null, 0, -1, + ClassDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getClassDeclaration_ReferenceDeclarations(), this.getReferenceDeclaration(), null, + "referenceDeclarations", null, 0, -1, ClassDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, + IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(referenceDeclarationEClass, ReferenceDeclaration.class, "ReferenceDeclaration", !IS_ABSTRACT, + !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getReferenceDeclaration_ReferenceType(), this.getClassDeclaration(), null, "referenceType", null, + 0, 1, ReferenceDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, + IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getReferenceDeclaration_Opposite(), this.getReferenceDeclaration(), null, "opposite", null, 0, 1, + ReferenceDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, + IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getReferenceDeclaration_Containment(), ecorePackage.getEBoolean(), "containment", null, 0, 1, + ReferenceDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getReferenceDeclaration_Multiplicity(), this.getMultiplicity(), null, "multiplicity", null, 0, 1, + ReferenceDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, + !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(namedElementEClass, NamedElement.class, "NamedElement", IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getNamedElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, NamedElement.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(predicateDefinitionEClass, PredicateDefinition.class, "PredicateDefinition", !IS_ABSTRACT, + !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getPredicateDefinition_Error(), ecorePackage.getEBoolean(), "error", null, 0, 1, + PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getPredicateDefinition_Parameters(), this.getParameter(), null, "parameters", null, 0, -1, + PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, + !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getPredicateDefinition_Bodies(), this.getConjunction(), null, "bodies", null, 0, -1, + PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, + !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(parameterEClass, Parameter.class, "Parameter", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEReference(getParameter_ParameterType(), this.getClassDeclaration(), null, "parameterType", null, 0, 1, + Parameter.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(variableEClass, Variable.class, "Variable", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(conjunctionEClass, Conjunction.class, "Conjunction", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEReference(getConjunction_Literals(), this.getLiteral(), null, "literals", null, 0, -1, Conjunction.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(literalEClass, Literal.class, "Literal", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(atomEClass, Atom.class, "Atom", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getAtom_Relation(), this.getRelation(), null, "relation", null, 0, 1, Atom.class, !IS_TRANSIENT, + !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, + IS_ORDERED); + initEReference(getAtom_Arguments(), this.getVariable(), null, "arguments", null, 0, -1, Atom.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getAtom_TransitiveClosure(), ecorePackage.getEBoolean(), "transitiveClosure", null, 0, 1, + Atom.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, + IS_ORDERED); + + initEClass(implicitVariableEClass, ImplicitVariable.class, "ImplicitVariable", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + + initEClass(negativeLiteralEClass, NegativeLiteral.class, "NegativeLiteral", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEReference(getNegativeLiteral_Atom(), this.getAtom(), null, "atom", null, 0, 1, NegativeLiteral.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, + IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(existentialQuantifierEClass, ExistentialQuantifier.class, "ExistentialQuantifier", IS_ABSTRACT, + IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + initEReference(getExistentialQuantifier_ImplicitVariables(), this.getImplicitVariable(), null, + "implicitVariables", null, 0, -1, ExistentialQuantifier.class, !IS_TRANSIENT, !IS_VOLATILE, + IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(assertionEClass, Assertion.class, "Assertion", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + 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); + + initEClass(nodeEClass, Node.class, "Node", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + + initEClass(scopeDeclarationEClass, ScopeDeclaration.class, "ScopeDeclaration", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEReference(getScopeDeclaration_TypeScopes(), this.getTypeScope(), null, "typeScopes", null, 0, -1, + ScopeDeclaration.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(statementEClass, Statement.class, "Statement", IS_ABSTRACT, IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + + initEClass(typeScopeEClass, TypeScope.class, "TypeScope", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEReference(getTypeScope_TargetType(), this.getClassDeclaration(), null, "targetType", null, 0, 1, + TypeScope.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEAttribute(getTypeScope_Increment(), ecorePackage.getEBoolean(), "increment", null, 0, 1, TypeScope.class, + !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getTypeScope_Multiplicity(), this.getMultiplicity(), null, "multiplicity", null, 0, 1, + TypeScope.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, + !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + + initEClass(multiplicityEClass, Multiplicity.class, "Multiplicity", IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + + initEClass(rangeMultiplicityEClass, RangeMultiplicity.class, "RangeMultiplicity", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getRangeMultiplicity_LowerBound(), ecorePackage.getEInt(), "lowerBound", "0", 0, 1, + RangeMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + initEAttribute(getRangeMultiplicity_UpperBound(), ecorePackage.getEInt(), "upperBound", "-1", 0, 1, + RangeMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + + initEClass(exactMultiplicityEClass, ExactMultiplicity.class, "ExactMultiplicity", !IS_ABSTRACT, !IS_INTERFACE, + IS_GENERATED_INSTANCE_CLASS); + initEAttribute(getExactMultiplicity_ExactValue(), ecorePackage.getEInt(), "exactValue", "1", 0, 1, + ExactMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, + !IS_DERIVED, IS_ORDERED); + + // Initialize enums and add enum literals + initEEnum(logicValueEEnum, LogicValue.class, "LogicValue"); + addEEnumLiteral(logicValueEEnum, LogicValue.TRUE); + addEEnumLiteral(logicValueEEnum, LogicValue.FALSE); + addEEnumLiteral(logicValueEEnum, LogicValue.UNKNOWN); + + // Create resource + createResource(eNS_URI); + } + +} //ProblemPackageImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RangeMultiplicityImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RangeMultiplicityImpl.java new file mode 100644 index 00000000..1122b5be --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RangeMultiplicityImpl.java @@ -0,0 +1,219 @@ +/** + */ +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.RangeMultiplicity; + +/** + * + * An implementation of the model object 'Range Multiplicity'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.RangeMultiplicityImpl#getLowerBound Lower Bound}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.RangeMultiplicityImpl#getUpperBound Upper Bound}
  • + *
+ * + * @generated + */ +public class RangeMultiplicityImpl extends MultiplicityImpl implements RangeMultiplicity { + /** + * The default value of the '{@link #getLowerBound() Lower Bound}' attribute. + * + * + * @see #getLowerBound() + * @generated + * @ordered + */ + protected static final int LOWER_BOUND_EDEFAULT = 0; + + /** + * The cached value of the '{@link #getLowerBound() Lower Bound}' attribute. + * + * + * @see #getLowerBound() + * @generated + * @ordered + */ + protected int lowerBound = LOWER_BOUND_EDEFAULT; + + /** + * The default value of the '{@link #getUpperBound() Upper Bound}' attribute. + * + * + * @see #getUpperBound() + * @generated + * @ordered + */ + protected static final int UPPER_BOUND_EDEFAULT = -1; + + /** + * The cached value of the '{@link #getUpperBound() Upper Bound}' attribute. + * + * + * @see #getUpperBound() + * @generated + * @ordered + */ + protected int upperBound = UPPER_BOUND_EDEFAULT; + + /** + * + * + * @generated + */ + protected RangeMultiplicityImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.RANGE_MULTIPLICITY; + } + + /** + * + * + * @generated + */ + public int getLowerBound() { + return lowerBound; + } + + /** + * + * + * @generated + */ + public void setLowerBound(int newLowerBound) { + int oldLowerBound = lowerBound; + lowerBound = newLowerBound; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.RANGE_MULTIPLICITY__LOWER_BOUND, + oldLowerBound, lowerBound)); + } + + /** + * + * + * @generated + */ + public int getUpperBound() { + return upperBound; + } + + /** + * + * + * @generated + */ + public void setUpperBound(int newUpperBound) { + int oldUpperBound = upperBound; + upperBound = newUpperBound; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.RANGE_MULTIPLICITY__UPPER_BOUND, + oldUpperBound, upperBound)); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.RANGE_MULTIPLICITY__LOWER_BOUND: + return getLowerBound(); + case ProblemPackage.RANGE_MULTIPLICITY__UPPER_BOUND: + return getUpperBound(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.RANGE_MULTIPLICITY__LOWER_BOUND: + setLowerBound((Integer) newValue); + return; + case ProblemPackage.RANGE_MULTIPLICITY__UPPER_BOUND: + setUpperBound((Integer) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.RANGE_MULTIPLICITY__LOWER_BOUND: + setLowerBound(LOWER_BOUND_EDEFAULT); + return; + case ProblemPackage.RANGE_MULTIPLICITY__UPPER_BOUND: + setUpperBound(UPPER_BOUND_EDEFAULT); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.RANGE_MULTIPLICITY__LOWER_BOUND: + return lowerBound != LOWER_BOUND_EDEFAULT; + case ProblemPackage.RANGE_MULTIPLICITY__UPPER_BOUND: + return upperBound != UPPER_BOUND_EDEFAULT; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (lowerBound: "); + result.append(lowerBound); + result.append(", upperBound: "); + result.append(upperBound); + result.append(')'); + return result.toString(); + } + +} //RangeMultiplicityImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java new file mode 100644 index 00000000..424db23d --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ReferenceDeclarationImpl.java @@ -0,0 +1,379 @@ +/** + */ +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.ClassDeclaration; +import org.eclipse.viatra.solver.language.model.problem.Multiplicity; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; +import org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration; + +/** + * + * An implementation of the model object 'Reference Declaration'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl#getReferenceType Reference Type}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl#getOpposite Opposite}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl#isContainment Containment}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ReferenceDeclarationImpl#getMultiplicity Multiplicity}
  • + *
+ * + * @generated + */ +public class ReferenceDeclarationImpl extends RelationImpl implements ReferenceDeclaration { + /** + * The cached value of the '{@link #getReferenceType() Reference Type}' reference. + * + * + * @see #getReferenceType() + * @generated + * @ordered + */ + protected ClassDeclaration referenceType; + + /** + * The cached value of the '{@link #getOpposite() Opposite}' reference. + * + * + * @see #getOpposite() + * @generated + * @ordered + */ + protected ReferenceDeclaration opposite; + + /** + * The default value of the '{@link #isContainment() Containment}' attribute. + * + * + * @see #isContainment() + * @generated + * @ordered + */ + protected static final boolean CONTAINMENT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isContainment() Containment}' attribute. + * + * + * @see #isContainment() + * @generated + * @ordered + */ + protected boolean containment = CONTAINMENT_EDEFAULT; + + /** + * The cached value of the '{@link #getMultiplicity() Multiplicity}' containment reference. + * + * + * @see #getMultiplicity() + * @generated + * @ordered + */ + protected Multiplicity multiplicity; + + /** + * + * + * @generated + */ + protected ReferenceDeclarationImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.REFERENCE_DECLARATION; + } + + /** + * + * + * @generated + */ + public ClassDeclaration getReferenceType() { + if (referenceType != null && referenceType.eIsProxy()) { + InternalEObject oldReferenceType = (InternalEObject) referenceType; + referenceType = (ClassDeclaration) eResolveProxy(oldReferenceType); + if (referenceType != oldReferenceType) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE, oldReferenceType, referenceType)); + } + } + return referenceType; + } + + /** + * + * + * @generated + */ + public ClassDeclaration basicGetReferenceType() { + return referenceType; + } + + /** + * + * + * @generated + */ + public void setReferenceType(ClassDeclaration newReferenceType) { + ClassDeclaration oldReferenceType = referenceType; + referenceType = newReferenceType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE, + oldReferenceType, referenceType)); + } + + /** + * + * + * @generated + */ + public ReferenceDeclaration getOpposite() { + if (opposite != null && opposite.eIsProxy()) { + InternalEObject oldOpposite = (InternalEObject) opposite; + opposite = (ReferenceDeclaration) eResolveProxy(oldOpposite); + if (opposite != oldOpposite) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, + ProblemPackage.REFERENCE_DECLARATION__OPPOSITE, oldOpposite, opposite)); + } + } + return opposite; + } + + /** + * + * + * @generated + */ + public ReferenceDeclaration basicGetOpposite() { + return opposite; + } + + /** + * + * + * @generated + */ + public void setOpposite(ReferenceDeclaration newOpposite) { + ReferenceDeclaration oldOpposite = opposite; + opposite = newOpposite; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.REFERENCE_DECLARATION__OPPOSITE, + oldOpposite, opposite)); + } + + /** + * + * + * @generated + */ + public boolean isContainment() { + return containment; + } + + /** + * + * + * @generated + */ + public void setContainment(boolean newContainment) { + boolean oldContainment = containment; + containment = newContainment; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.REFERENCE_DECLARATION__CONTAINMENT, + oldContainment, containment)); + } + + /** + * + * + * @generated + */ + public Multiplicity getMultiplicity() { + return multiplicity; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMultiplicity(Multiplicity newMultiplicity, NotificationChain msgs) { + Multiplicity oldMultiplicity = multiplicity; + multiplicity = newMultiplicity; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, + ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY, oldMultiplicity, newMultiplicity); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setMultiplicity(Multiplicity newMultiplicity) { + if (newMultiplicity != multiplicity) { + NotificationChain msgs = null; + if (multiplicity != null) + msgs = ((InternalEObject) multiplicity).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY, null, msgs); + if (newMultiplicity != null) + msgs = ((InternalEObject) newMultiplicity).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY, null, msgs); + msgs = basicSetMultiplicity(newMultiplicity, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY, + newMultiplicity, newMultiplicity)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY: + return basicSetMultiplicity(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE: + if (resolve) + return getReferenceType(); + return basicGetReferenceType(); + case ProblemPackage.REFERENCE_DECLARATION__OPPOSITE: + if (resolve) + return getOpposite(); + return basicGetOpposite(); + case ProblemPackage.REFERENCE_DECLARATION__CONTAINMENT: + return isContainment(); + case ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY: + return getMultiplicity(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE: + setReferenceType((ClassDeclaration) newValue); + return; + case ProblemPackage.REFERENCE_DECLARATION__OPPOSITE: + setOpposite((ReferenceDeclaration) newValue); + return; + case ProblemPackage.REFERENCE_DECLARATION__CONTAINMENT: + setContainment((Boolean) newValue); + return; + case ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY: + setMultiplicity((Multiplicity) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE: + setReferenceType((ClassDeclaration) null); + return; + case ProblemPackage.REFERENCE_DECLARATION__OPPOSITE: + setOpposite((ReferenceDeclaration) null); + return; + case ProblemPackage.REFERENCE_DECLARATION__CONTAINMENT: + setContainment(CONTAINMENT_EDEFAULT); + return; + case ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY: + setMultiplicity((Multiplicity) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.REFERENCE_DECLARATION__REFERENCE_TYPE: + return referenceType != null; + case ProblemPackage.REFERENCE_DECLARATION__OPPOSITE: + return opposite != null; + case ProblemPackage.REFERENCE_DECLARATION__CONTAINMENT: + return containment != CONTAINMENT_EDEFAULT; + case ProblemPackage.REFERENCE_DECLARATION__MULTIPLICITY: + return multiplicity != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (containment: "); + result.append(containment); + result.append(')'); + return result.toString(); + } + +} //ReferenceDeclarationImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RelationImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RelationImpl.java new file mode 100644 index 00000000..20d43043 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/RelationImpl.java @@ -0,0 +1,37 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; +import org.eclipse.viatra.solver.language.model.problem.Relation; + +/** + * + * An implementation of the model object 'Relation'. + * + * + * @generated + */ +public abstract class RelationImpl extends NamedElementImpl implements Relation { + /** + * + * + * @generated + */ + protected RelationImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.RELATION; + } + +} //RelationImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ScopeDeclarationImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ScopeDeclarationImpl.java new file mode 100644 index 00000000..f178d9e0 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/ScopeDeclarationImpl.java @@ -0,0 +1,153 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import java.util.Collection; + +import org.eclipse.emf.common.notify.NotificationChain; + +import org.eclipse.emf.common.util.EList; + +import org.eclipse.emf.ecore.EClass; +import org.eclipse.emf.ecore.InternalEObject; + +import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; + +import org.eclipse.emf.ecore.util.EObjectContainmentEList; +import org.eclipse.emf.ecore.util.InternalEList; + +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; +import org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration; +import org.eclipse.viatra.solver.language.model.problem.TypeScope; + +/** + * + * An implementation of the model object 'Scope Declaration'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.ScopeDeclarationImpl#getTypeScopes Type Scopes}
  • + *
+ * + * @generated + */ +public class ScopeDeclarationImpl extends MinimalEObjectImpl.Container implements ScopeDeclaration { + /** + * The cached value of the '{@link #getTypeScopes() Type Scopes}' containment reference list. + * + * + * @see #getTypeScopes() + * @generated + * @ordered + */ + protected EList typeScopes; + + /** + * + * + * @generated + */ + protected ScopeDeclarationImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.SCOPE_DECLARATION; + } + + /** + * + * + * @generated + */ + public EList getTypeScopes() { + if (typeScopes == null) { + typeScopes = new EObjectContainmentEList(TypeScope.class, this, + ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES); + } + return typeScopes; + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES: + return ((InternalEList) getTypeScopes()).basicRemove(otherEnd, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES: + return getTypeScopes(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @SuppressWarnings("unchecked") + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES: + getTypeScopes().clear(); + getTypeScopes().addAll((Collection) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES: + getTypeScopes().clear(); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.SCOPE_DECLARATION__TYPE_SCOPES: + return typeScopes != null && !typeScopes.isEmpty(); + } + return super.eIsSet(featureID); + } + +} //ScopeDeclarationImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/TypeScopeImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/TypeScopeImpl.java new file mode 100644 index 00000000..608cc015 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/TypeScopeImpl.java @@ -0,0 +1,317 @@ +/** + */ +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.ClassDeclaration; +import org.eclipse.viatra.solver.language.model.problem.Multiplicity; +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; +import org.eclipse.viatra.solver.language.model.problem.TypeScope; + +/** + * + * An implementation of the model object 'Type Scope'. + * + *

+ * The following features are implemented: + *

+ *
    + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl#getTargetType Target Type}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl#isIncrement Increment}
  • + *
  • {@link org.eclipse.viatra.solver.language.model.problem.impl.TypeScopeImpl#getMultiplicity Multiplicity}
  • + *
+ * + * @generated + */ +public class TypeScopeImpl extends MinimalEObjectImpl.Container implements TypeScope { + /** + * The cached value of the '{@link #getTargetType() Target Type}' reference. + * + * + * @see #getTargetType() + * @generated + * @ordered + */ + protected ClassDeclaration targetType; + + /** + * The default value of the '{@link #isIncrement() Increment}' attribute. + * + * + * @see #isIncrement() + * @generated + * @ordered + */ + protected static final boolean INCREMENT_EDEFAULT = false; + + /** + * The cached value of the '{@link #isIncrement() Increment}' attribute. + * + * + * @see #isIncrement() + * @generated + * @ordered + */ + protected boolean increment = INCREMENT_EDEFAULT; + + /** + * The cached value of the '{@link #getMultiplicity() Multiplicity}' containment reference. + * + * + * @see #getMultiplicity() + * @generated + * @ordered + */ + protected Multiplicity multiplicity; + + /** + * + * + * @generated + */ + protected TypeScopeImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.TYPE_SCOPE; + } + + /** + * + * + * @generated + */ + public ClassDeclaration getTargetType() { + if (targetType != null && targetType.eIsProxy()) { + InternalEObject oldTargetType = (InternalEObject) targetType; + targetType = (ClassDeclaration) eResolveProxy(oldTargetType); + if (targetType != oldTargetType) { + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.RESOLVE, ProblemPackage.TYPE_SCOPE__TARGET_TYPE, + oldTargetType, targetType)); + } + } + return targetType; + } + + /** + * + * + * @generated + */ + public ClassDeclaration basicGetTargetType() { + return targetType; + } + + /** + * + * + * @generated + */ + public void setTargetType(ClassDeclaration newTargetType) { + ClassDeclaration oldTargetType = targetType; + targetType = newTargetType; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.TYPE_SCOPE__TARGET_TYPE, oldTargetType, + targetType)); + } + + /** + * + * + * @generated + */ + public boolean isIncrement() { + return increment; + } + + /** + * + * + * @generated + */ + public void setIncrement(boolean newIncrement) { + boolean oldIncrement = increment; + increment = newIncrement; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.TYPE_SCOPE__INCREMENT, oldIncrement, + increment)); + } + + /** + * + * + * @generated + */ + public Multiplicity getMultiplicity() { + return multiplicity; + } + + /** + * + * + * @generated + */ + public NotificationChain basicSetMultiplicity(Multiplicity newMultiplicity, NotificationChain msgs) { + Multiplicity oldMultiplicity = multiplicity; + multiplicity = newMultiplicity; + if (eNotificationRequired()) { + ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, + ProblemPackage.TYPE_SCOPE__MULTIPLICITY, oldMultiplicity, newMultiplicity); + if (msgs == null) + msgs = notification; + else + msgs.add(notification); + } + return msgs; + } + + /** + * + * + * @generated + */ + public void setMultiplicity(Multiplicity newMultiplicity) { + if (newMultiplicity != multiplicity) { + NotificationChain msgs = null; + if (multiplicity != null) + msgs = ((InternalEObject) multiplicity).eInverseRemove(this, + EOPPOSITE_FEATURE_BASE - ProblemPackage.TYPE_SCOPE__MULTIPLICITY, null, msgs); + if (newMultiplicity != null) + msgs = ((InternalEObject) newMultiplicity).eInverseAdd(this, + EOPPOSITE_FEATURE_BASE - ProblemPackage.TYPE_SCOPE__MULTIPLICITY, null, msgs); + msgs = basicSetMultiplicity(newMultiplicity, msgs); + if (msgs != null) + msgs.dispatch(); + } else if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, ProblemPackage.TYPE_SCOPE__MULTIPLICITY, + newMultiplicity, newMultiplicity)); + } + + /** + * + * + * @generated + */ + @Override + public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { + switch (featureID) { + case ProblemPackage.TYPE_SCOPE__MULTIPLICITY: + return basicSetMultiplicity(null, msgs); + } + return super.eInverseRemove(otherEnd, featureID, msgs); + } + + /** + * + * + * @generated + */ + @Override + public Object eGet(int featureID, boolean resolve, boolean coreType) { + switch (featureID) { + case ProblemPackage.TYPE_SCOPE__TARGET_TYPE: + if (resolve) + return getTargetType(); + return basicGetTargetType(); + case ProblemPackage.TYPE_SCOPE__INCREMENT: + return isIncrement(); + case ProblemPackage.TYPE_SCOPE__MULTIPLICITY: + return getMultiplicity(); + } + return super.eGet(featureID, resolve, coreType); + } + + /** + * + * + * @generated + */ + @Override + public void eSet(int featureID, Object newValue) { + switch (featureID) { + case ProblemPackage.TYPE_SCOPE__TARGET_TYPE: + setTargetType((ClassDeclaration) newValue); + return; + case ProblemPackage.TYPE_SCOPE__INCREMENT: + setIncrement((Boolean) newValue); + return; + case ProblemPackage.TYPE_SCOPE__MULTIPLICITY: + setMultiplicity((Multiplicity) newValue); + return; + } + super.eSet(featureID, newValue); + } + + /** + * + * + * @generated + */ + @Override + public void eUnset(int featureID) { + switch (featureID) { + case ProblemPackage.TYPE_SCOPE__TARGET_TYPE: + setTargetType((ClassDeclaration) null); + return; + case ProblemPackage.TYPE_SCOPE__INCREMENT: + setIncrement(INCREMENT_EDEFAULT); + return; + case ProblemPackage.TYPE_SCOPE__MULTIPLICITY: + setMultiplicity((Multiplicity) null); + return; + } + super.eUnset(featureID); + } + + /** + * + * + * @generated + */ + @Override + public boolean eIsSet(int featureID) { + switch (featureID) { + case ProblemPackage.TYPE_SCOPE__TARGET_TYPE: + return targetType != null; + case ProblemPackage.TYPE_SCOPE__INCREMENT: + return increment != INCREMENT_EDEFAULT; + case ProblemPackage.TYPE_SCOPE__MULTIPLICITY: + return multiplicity != null; + } + return super.eIsSet(featureID); + } + + /** + * + * + * @generated + */ + @Override + public String toString() { + if (eIsProxy()) + return super.toString(); + + StringBuilder result = new StringBuilder(super.toString()); + result.append(" (increment: "); + result.append(increment); + result.append(')'); + return result.toString(); + } + +} //TypeScopeImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java new file mode 100644 index 00000000..0a8cde48 --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/impl/VariableImpl.java @@ -0,0 +1,37 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.impl; + +import org.eclipse.emf.ecore.EClass; + +import org.eclipse.viatra.solver.language.model.problem.ProblemPackage; +import org.eclipse.viatra.solver.language.model.problem.Variable; + +/** + * + * An implementation of the model object 'Variable'. + * + * + * @generated + */ +public abstract class VariableImpl extends NamedElementImpl implements Variable { + /** + * + * + * @generated + */ + protected VariableImpl() { + super(); + } + + /** + * + * + * @generated + */ + @Override + protected EClass eStaticClass() { + return ProblemPackage.Literals.VARIABLE; + } + +} //VariableImpl diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java new file mode 100644 index 00000000..f228f54a --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemAdapterFactory.java @@ -0,0 +1,518 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.util; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notifier; + +import org.eclipse.emf.common.notify.impl.AdapterFactoryImpl; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.viatra.solver.language.model.problem.*; + +/** + * + * The Adapter Factory for the model. + * It provides an adapter createXXX method for each class of the model. + * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage + * @generated + */ +public class ProblemAdapterFactory extends AdapterFactoryImpl { + /** + * The cached model package. + * + * + * @generated + */ + protected static ProblemPackage modelPackage; + + /** + * Creates an instance of the adapter factory. + * + * + * @generated + */ + public ProblemAdapterFactory() { + if (modelPackage == null) { + modelPackage = ProblemPackage.eINSTANCE; + } + } + + /** + * Returns whether this factory is applicable for the type of the object. + * + * This implementation returns true if the object is either the model's package or is an instance object of the model. + * + * @return whether this factory is applicable for the type of the object. + * @generated + */ + @Override + public boolean isFactoryForType(Object object) { + if (object == modelPackage) { + return true; + } + if (object instanceof EObject) { + return ((EObject) object).eClass().getEPackage() == modelPackage; + } + return false; + } + + /** + * The switch that delegates to the createXXX methods. + * + * + * @generated + */ + protected ProblemSwitch modelSwitch = new ProblemSwitch() { + @Override + public Adapter caseProblem(Problem object) { + return createProblemAdapter(); + } + + @Override + public Adapter caseRelation(Relation object) { + return createRelationAdapter(); + } + + @Override + public Adapter caseClassDeclaration(ClassDeclaration object) { + return createClassDeclarationAdapter(); + } + + @Override + public Adapter caseReferenceDeclaration(ReferenceDeclaration object) { + return createReferenceDeclarationAdapter(); + } + + @Override + public Adapter caseNamedElement(NamedElement object) { + return createNamedElementAdapter(); + } + + @Override + public Adapter casePredicateDefinition(PredicateDefinition object) { + return createPredicateDefinitionAdapter(); + } + + @Override + public Adapter caseParameter(Parameter object) { + return createParameterAdapter(); + } + + @Override + public Adapter caseVariable(Variable object) { + return createVariableAdapter(); + } + + @Override + public Adapter caseConjunction(Conjunction object) { + return createConjunctionAdapter(); + } + + @Override + public Adapter caseLiteral(Literal object) { + return createLiteralAdapter(); + } + + @Override + public Adapter caseAtom(Atom object) { + return createAtomAdapter(); + } + + @Override + public Adapter caseImplicitVariable(ImplicitVariable object) { + return createImplicitVariableAdapter(); + } + + @Override + public Adapter caseNegativeLiteral(NegativeLiteral object) { + return createNegativeLiteralAdapter(); + } + + @Override + public Adapter caseExistentialQuantifier(ExistentialQuantifier object) { + return createExistentialQuantifierAdapter(); + } + + @Override + public Adapter caseAssertion(Assertion object) { + return createAssertionAdapter(); + } + + @Override + public Adapter caseNode(Node object) { + return createNodeAdapter(); + } + + @Override + public Adapter caseScopeDeclaration(ScopeDeclaration object) { + return createScopeDeclarationAdapter(); + } + + @Override + public Adapter caseStatement(Statement object) { + return createStatementAdapter(); + } + + @Override + public Adapter caseTypeScope(TypeScope object) { + return createTypeScopeAdapter(); + } + + @Override + public Adapter caseMultiplicity(Multiplicity object) { + return createMultiplicityAdapter(); + } + + @Override + public Adapter caseRangeMultiplicity(RangeMultiplicity object) { + return createRangeMultiplicityAdapter(); + } + + @Override + public Adapter caseExactMultiplicity(ExactMultiplicity object) { + return createExactMultiplicityAdapter(); + } + + @Override + public Adapter defaultCase(EObject object) { + return createEObjectAdapter(); + } + }; + + /** + * Creates an adapter for the target. + * + * + * @param target the object to adapt. + * @return the adapter for the target. + * @generated + */ + @Override + public Adapter createAdapter(Notifier target) { + return modelSwitch.doSwitch((EObject) target); + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Problem Problem}'. + * + * 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.Problem + * @generated + */ + public Adapter createProblemAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Relation Relation}'. + * + * 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.Relation + * @generated + */ + public Adapter createRelationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.ClassDeclaration Class Declaration}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.ClassDeclaration + * @generated + */ + public Adapter createClassDeclarationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration Reference Declaration}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.ReferenceDeclaration + * @generated + */ + public Adapter createReferenceDeclarationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.NamedElement Named Element}'. + * + * 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.NamedElement + * @generated + */ + public Adapter createNamedElementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.PredicateDefinition Predicate Definition}'. + * + * 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.PredicateDefinition + * @generated + */ + public Adapter createPredicateDefinitionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Parameter Parameter}'. + * + * 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.Parameter + * @generated + */ + public Adapter createParameterAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Variable Variable}'. + * + * 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.Variable + * @generated + */ + public Adapter createVariableAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Conjunction Conjunction}'. + * + * 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.Conjunction + * @generated + */ + public Adapter createConjunctionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Literal Literal}'. + * + * 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.Literal + * @generated + */ + public Adapter createLiteralAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Atom Atom}'. + * + * 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.Atom + * @generated + */ + public Adapter createAtomAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.ImplicitVariable Implicit Variable}'. + * + * 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.ImplicitVariable + * @generated + */ + public Adapter createImplicitVariableAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.NegativeLiteral Negative Literal}'. + * + * 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.NegativeLiteral + * @generated + */ + public Adapter createNegativeLiteralAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.ExistentialQuantifier Existential Quantifier}'. + * + * 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.ExistentialQuantifier + * @generated + */ + public Adapter createExistentialQuantifierAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Assertion 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.Assertion + * @generated + */ + public Adapter createAssertionAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Node Node}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.Node + * @generated + */ + public Adapter createNodeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration Scope Declaration}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.ScopeDeclaration + * @generated + */ + public Adapter createScopeDeclarationAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Statement Statement}'. + * + * 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.Statement + * @generated + */ + public Adapter createStatementAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.TypeScope Type Scope}'. + * + * 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.TypeScope + * @generated + */ + public Adapter createTypeScopeAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.Multiplicity Multiplicity}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.Multiplicity + * @generated + */ + public Adapter createMultiplicityAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity Range Multiplicity}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.RangeMultiplicity + * @generated + */ + public Adapter createRangeMultiplicityAdapter() { + return null; + } + + /** + * Creates a new adapter for an object of class '{@link org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity Exact Multiplicity}'. + * + * This default implementation returns null so that we can easily ignore cases; + * it's useful to ignore a case when inheritance will catch all the cases anyway. + * + * @return the new adapter. + * @see org.eclipse.viatra.solver.language.model.problem.ExactMultiplicity + * @generated + */ + public Adapter createExactMultiplicityAdapter() { + return null; + } + + /** + * Creates a new adapter for the default case. + * + * This default implementation returns null. + * + * @return the new adapter. + * @generated + */ + public Adapter createEObjectAdapter() { + return null; + } + +} //ProblemAdapterFactory diff --git a/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java new file mode 100644 index 00000000..a9e1455b --- /dev/null +++ b/org.eclipse.viatra.solver.language.parent/org.eclipse.viatra.solver.language.model/src/main/emf-gen/org/eclipse/viatra/solver/language/model/problem/util/ProblemSwitch.java @@ -0,0 +1,620 @@ +/** + */ +package org.eclipse.viatra.solver.language.model.problem.util; + +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; + +import org.eclipse.emf.ecore.util.Switch; + +import org.eclipse.viatra.solver.language.model.problem.*; + +/** + * + * The Switch for the model's inheritance hierarchy. + * It supports the call {@link #doSwitch(EObject) doSwitch(object)} + * to invoke the caseXXX method for each class of the model, + * starting with the actual class of the object + * and proceeding up the inheritance hierarchy + * until a non-null result is returned, + * which is the result of the switch. + * + * @see org.eclipse.viatra.solver.language.model.problem.ProblemPackage + * @generated + */ +public class ProblemSwitch extends Switch { + /** + * The cached model package + * + * + * @generated + */ + protected static ProblemPackage modelPackage; + + /** + * Creates an instance of the switch. + * + * + * @generated + */ + public ProblemSwitch() { + if (modelPackage == null) { + modelPackage = ProblemPackage.eINSTANCE; + } + } + + /** + * Checks whether this is a switch for the given package. + * + * + * @param ePackage the package in question. + * @return whether this is a switch for the given package. + * @generated + */ + @Override + protected boolean isSwitchFor(EPackage ePackage) { + return ePackage == modelPackage; + } + + /** + * Calls caseXXX for each class of the model until one returns a non null result; it yields that result. + * + * + * @return the first non-null result returned by a caseXXX call. + * @generated + */ + @Override + protected T doSwitch(int classifierID, EObject theEObject) { + switch (classifierID) { + case ProblemPackage.PROBLEM: { + Problem problem = (Problem) theEObject; + T result = caseProblem(problem); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.RELATION: { + Relation relation = (Relation) theEObject; + T result = caseRelation(relation); + if (result == null) + result = caseNamedElement(relation); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.CLASS_DECLARATION: { + ClassDeclaration classDeclaration = (ClassDeclaration) theEObject; + T result = caseClassDeclaration(classDeclaration); + if (result == null) + result = caseRelation(classDeclaration); + if (result == null) + result = caseStatement(classDeclaration); + if (result == null) + result = caseNamedElement(classDeclaration); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.REFERENCE_DECLARATION: { + ReferenceDeclaration referenceDeclaration = (ReferenceDeclaration) theEObject; + T result = caseReferenceDeclaration(referenceDeclaration); + if (result == null) + result = caseRelation(referenceDeclaration); + if (result == null) + result = caseNamedElement(referenceDeclaration); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.NAMED_ELEMENT: { + NamedElement namedElement = (NamedElement) theEObject; + T result = caseNamedElement(namedElement); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.PREDICATE_DEFINITION: { + PredicateDefinition predicateDefinition = (PredicateDefinition) theEObject; + T result = casePredicateDefinition(predicateDefinition); + if (result == null) + result = caseRelation(predicateDefinition); + if (result == null) + result = caseStatement(predicateDefinition); + if (result == null) + result = caseNamedElement(predicateDefinition); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.PARAMETER: { + Parameter parameter = (Parameter) theEObject; + T result = caseParameter(parameter); + if (result == null) + result = caseVariable(parameter); + if (result == null) + result = caseNamedElement(parameter); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.VARIABLE: { + Variable variable = (Variable) theEObject; + T result = caseVariable(variable); + if (result == null) + result = caseNamedElement(variable); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.CONJUNCTION: { + Conjunction conjunction = (Conjunction) theEObject; + T result = caseConjunction(conjunction); + if (result == null) + result = caseExistentialQuantifier(conjunction); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.LITERAL: { + Literal literal = (Literal) theEObject; + T result = caseLiteral(literal); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.ATOM: { + Atom atom = (Atom) theEObject; + T result = caseAtom(atom); + if (result == null) + result = caseLiteral(atom); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.IMPLICIT_VARIABLE: { + ImplicitVariable implicitVariable = (ImplicitVariable) theEObject; + T result = caseImplicitVariable(implicitVariable); + if (result == null) + result = caseVariable(implicitVariable); + if (result == null) + result = caseNamedElement(implicitVariable); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.NEGATIVE_LITERAL: { + NegativeLiteral negativeLiteral = (NegativeLiteral) theEObject; + T result = caseNegativeLiteral(negativeLiteral); + if (result == null) + result = caseExistentialQuantifier(negativeLiteral); + if (result == null) + result = caseLiteral(negativeLiteral); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.EXISTENTIAL_QUANTIFIER: { + ExistentialQuantifier existentialQuantifier = (ExistentialQuantifier) theEObject; + T result = caseExistentialQuantifier(existentialQuantifier); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.ASSERTION: { + Assertion assertion = (Assertion) theEObject; + T result = caseAssertion(assertion); + if (result == null) + result = caseStatement(assertion); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.NODE: { + Node node = (Node) theEObject; + T result = caseNode(node); + if (result == null) + result = caseNamedElement(node); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.SCOPE_DECLARATION: { + ScopeDeclaration scopeDeclaration = (ScopeDeclaration) theEObject; + T result = caseScopeDeclaration(scopeDeclaration); + if (result == null) + result = caseStatement(scopeDeclaration); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.STATEMENT: { + Statement statement = (Statement) theEObject; + T result = caseStatement(statement); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.TYPE_SCOPE: { + TypeScope typeScope = (TypeScope) theEObject; + T result = caseTypeScope(typeScope); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.MULTIPLICITY: { + Multiplicity multiplicity = (Multiplicity) theEObject; + T result = caseMultiplicity(multiplicity); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.RANGE_MULTIPLICITY: { + RangeMultiplicity rangeMultiplicity = (RangeMultiplicity) theEObject; + T result = caseRangeMultiplicity(rangeMultiplicity); + if (result == null) + result = caseMultiplicity(rangeMultiplicity); + if (result == null) + result = defaultCase(theEObject); + return result; + } + case ProblemPackage.EXACT_MULTIPLICITY: { + ExactMultiplicity exactMultiplicity = (ExactMultiplicity) theEObject; + T result = caseExactMultiplicity(exactMultiplicity); + if (result == null) + result = caseMultiplicity(exactMultiplicity); + if (result == null) + result = defaultCase(theEObject); + return result; + } + default: + return defaultCase(theEObject); + } + } + + /** + * Returns the result of interpreting the object as an instance of 'Problem'. + * + * 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 'Problem'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseProblem(Problem object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Relation'. + * + * 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 'Relation'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRelation(Relation object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Class Declaration'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Class Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseClassDeclaration(ClassDeclaration object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Reference Declaration'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Reference Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseReferenceDeclaration(ReferenceDeclaration object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Named Element'. + * + * 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 'Named Element'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNamedElement(NamedElement object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Predicate Definition'. + * + * 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 'Predicate Definition'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T casePredicateDefinition(PredicateDefinition object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Parameter'. + * + * 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 'Parameter'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseParameter(Parameter object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Variable'. + * + * 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'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseVariable(Variable object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Conjunction'. + * + * 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 'Conjunction'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseConjunction(Conjunction object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Literal'. + * + * 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 'Literal'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseLiteral(Literal object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Atom'. + * + * 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 'Atom'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAtom(Atom object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Implicit Variable'. + * + * 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 'Implicit Variable'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseImplicitVariable(ImplicitVariable object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Negative Literal'. + * + * 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 'Negative Literal'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNegativeLiteral(NegativeLiteral object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Existential Quantifier'. + * + * 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 'Existential Quantifier'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExistentialQuantifier(ExistentialQuantifier object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of '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 'Assertion'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseAssertion(Assertion object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Node'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Node'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseNode(Node object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Scope Declaration'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Scope Declaration'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseScopeDeclaration(ScopeDeclaration object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Statement'. + * + * 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 'Statement'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseStatement(Statement object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Type Scope'. + * + * 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 'Type Scope'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseTypeScope(TypeScope object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Multiplicity'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Multiplicity'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseMultiplicity(Multiplicity object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Range Multiplicity'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Range Multiplicity'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseRangeMultiplicity(RangeMultiplicity object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'Exact Multiplicity'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'Exact Multiplicity'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) + * @generated + */ + public T caseExactMultiplicity(ExactMultiplicity object) { + return null; + } + + /** + * Returns the result of interpreting the object as an instance of 'EObject'. + * + * This implementation returns null; + * returning a non-null result will terminate the switch, but this is the last case anyway. + * + * @param object the target of the switch. + * @return the result of interpreting the object as an instance of 'EObject'. + * @see #doSwitch(org.eclipse.emf.ecore.EObject) + * @generated + */ + @Override + public T defaultCase(EObject object) { + return null; + } + +} //ProblemSwitch -- cgit v1.2.3-70-g09d2