/** * generated by Xtext 2.21.0 */ package org.eclipse.viatra.solver.language.solverLanguage.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.solverLanguage.Aggregation; import org.eclipse.viatra.solver.language.solverLanguage.Argument; import org.eclipse.viatra.solver.language.solverLanguage.ArgumentList; import org.eclipse.viatra.solver.language.solverLanguage.BinaryExpression; import org.eclipse.viatra.solver.language.solverLanguage.BinaryOperator; import org.eclipse.viatra.solver.language.solverLanguage.BoundedMultiplicity; import org.eclipse.viatra.solver.language.solverLanguage.BoundedScopeDefinition; import org.eclipse.viatra.solver.language.solverLanguage.Call; import org.eclipse.viatra.solver.language.solverLanguage.Case; import org.eclipse.viatra.solver.language.solverLanguage.CastExpression; import org.eclipse.viatra.solver.language.solverLanguage.ClassDefinition; import org.eclipse.viatra.solver.language.solverLanguage.Comparison; import org.eclipse.viatra.solver.language.solverLanguage.Conjunction; import org.eclipse.viatra.solver.language.solverLanguage.DefaultDefinition; import org.eclipse.viatra.solver.language.solverLanguage.Disjunction; import org.eclipse.viatra.solver.language.solverLanguage.EmptyIntervalLiteral; import org.eclipse.viatra.solver.language.solverLanguage.ExactMultiplicity; import org.eclipse.viatra.solver.language.solverLanguage.ExactScopeDefinition; import org.eclipse.viatra.solver.language.solverLanguage.Expression; import org.eclipse.viatra.solver.language.solverLanguage.ExpressionArgument; import org.eclipse.viatra.solver.language.solverLanguage.ExternAggregatorDefinition; import org.eclipse.viatra.solver.language.solverLanguage.ExternDatatypeDefinition; import org.eclipse.viatra.solver.language.solverLanguage.ExternMetricDefinition; import org.eclipse.viatra.solver.language.solverLanguage.ExternPredicateDefinition; import org.eclipse.viatra.solver.language.solverLanguage.Functor; import org.eclipse.viatra.solver.language.solverLanguage.IfElse; import org.eclipse.viatra.solver.language.solverLanguage.InfinityLiteral; import org.eclipse.viatra.solver.language.solverLanguage.Interpretation; import org.eclipse.viatra.solver.language.solverLanguage.Interval; import org.eclipse.viatra.solver.language.solverLanguage.Let; import org.eclipse.viatra.solver.language.solverLanguage.LetBinding; import org.eclipse.viatra.solver.language.solverLanguage.Literal; import org.eclipse.viatra.solver.language.solverLanguage.LocalVariables; import org.eclipse.viatra.solver.language.solverLanguage.LogicLiteral; import org.eclipse.viatra.solver.language.solverLanguage.LogicValue; import org.eclipse.viatra.solver.language.solverLanguage.LowerBoundedScopeDefinition; import org.eclipse.viatra.solver.language.solverLanguage.ManyMultiplicity; import org.eclipse.viatra.solver.language.solverLanguage.MemberDefinition; import org.eclipse.viatra.solver.language.solverLanguage.Metric; import org.eclipse.viatra.solver.language.solverLanguage.MetricDefinition; import org.eclipse.viatra.solver.language.solverLanguage.Multiplicity; import org.eclipse.viatra.solver.language.solverLanguage.NamedElement; import org.eclipse.viatra.solver.language.solverLanguage.Node; import org.eclipse.viatra.solver.language.solverLanguage.NumericLiteral; import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveDefinition; import org.eclipse.viatra.solver.language.solverLanguage.ObjectiveKind; import org.eclipse.viatra.solver.language.solverLanguage.Predicate; import org.eclipse.viatra.solver.language.solverLanguage.PredicateDefinition; import org.eclipse.viatra.solver.language.solverLanguage.Problem; import org.eclipse.viatra.solver.language.solverLanguage.QuantifiedExpression; import org.eclipse.viatra.solver.language.solverLanguage.Quantifier; import org.eclipse.viatra.solver.language.solverLanguage.Reference; import org.eclipse.viatra.solver.language.solverLanguage.ScopeDefinition; import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguageFactory; import org.eclipse.viatra.solver.language.solverLanguage.SolverLanguagePackage; import org.eclipse.viatra.solver.language.solverLanguage.StarArgument; import org.eclipse.viatra.solver.language.solverLanguage.Statement; import org.eclipse.viatra.solver.language.solverLanguage.StringLiteral; import org.eclipse.viatra.solver.language.solverLanguage.Switch; import org.eclipse.viatra.solver.language.solverLanguage.TypedArgument; import org.eclipse.viatra.solver.language.solverLanguage.TypedStarArgument; import org.eclipse.viatra.solver.language.solverLanguage.UnaryExpression; import org.eclipse.viatra.solver.language.solverLanguage.UnaryOp; import org.eclipse.viatra.solver.language.solverLanguage.UnnamedErrorPrediateDefinition; import org.eclipse.viatra.solver.language.solverLanguage.Variable; /** * * An implementation of the model Package. * * @generated */ public class SolverLanguagePackageImpl extends EPackageImpl implements SolverLanguagePackage { /** * * * @generated */ private EClass problemEClass = null; /** * * * @generated */ private EClass statementEClass = null; /** * * * @generated */ private EClass predicateDefinitionEClass = null; /** * * * @generated */ private EClass unnamedErrorPrediateDefinitionEClass = null; /** * * * @generated */ private EClass defaultDefinitionEClass = null; /** * * * @generated */ private EClass metricDefinitionEClass = null; /** * * * @generated */ private EClass externPredicateDefinitionEClass = null; /** * * * @generated */ private EClass externMetricDefinitionEClass = null; /** * * * @generated */ private EClass externAggregatorDefinitionEClass = null; /** * * * @generated */ private EClass externDatatypeDefinitionEClass = null; /** * * * @generated */ private EClass namedElementEClass = null; /** * * * @generated */ private EClass expressionEClass = null; /** * * * @generated */ private EClass ifElseEClass = null; /** * * * @generated */ private EClass letEClass = null; /** * * * @generated */ private EClass letBindingEClass = null; /** * * * @generated */ private EClass caseEClass = null; /** * * * @generated */ private EClass localVariablesEClass = null; /** * * * @generated */ private EClass quantifiedExpressionEClass = null; /** * * * @generated */ private EClass aggregationEClass = null; /** * * * @generated */ private EClass callEClass = null; /** * * * @generated */ private EClass argumentListEClass = null; /** * * * @generated */ private EClass argumentEClass = null; /** * * * @generated */ private EClass expressionArgumentEClass = null; /** * * * @generated */ private EClass starArgumentEClass = null; /** * * * @generated */ private EClass typedArgumentEClass = null; /** * * * @generated */ private EClass typedStarArgumentEClass = null; /** * * * @generated */ private EClass referenceEClass = null; /** * * * @generated */ private EClass intervalEClass = null; /** * * * @generated */ private EClass literalEClass = null; /** * * * @generated */ private EClass logicLiteralEClass = null; /** * * * @generated */ private EClass numericLiteralEClass = null; /** * * * @generated */ private EClass infinityLiteralEClass = null; /** * * * @generated */ private EClass emptyIntervalLiteralEClass = null; /** * * * @generated */ private EClass stringLiteralEClass = null; /** * * * @generated */ private EClass classDefinitionEClass = null; /** * * * @generated */ private EClass memberDefinitionEClass = null; /** * * * @generated */ private EClass multiplicityEClass = null; /** * * * @generated */ private EClass manyMultiplicityEClass = null; /** * * * @generated */ private EClass exactMultiplicityEClass = null; /** * * * @generated */ private EClass boundedMultiplicityEClass = null; /** * * * @generated */ private EClass scopeDefinitionEClass = null; /** * * * @generated */ private EClass exactScopeDefinitionEClass = null; /** * * * @generated */ private EClass boundedScopeDefinitionEClass = null; /** * * * @generated */ private EClass lowerBoundedScopeDefinitionEClass = null; /** * * * @generated */ private EClass objectiveDefinitionEClass = null; /** * * * @generated */ private EClass interpretationEClass = null; /** * * * @generated */ private EClass variableEClass = null; /** * * * @generated */ private EClass disjunctionEClass = null; /** * * * @generated */ private EClass switchEClass = null; /** * * * @generated */ private EClass conjunctionEClass = null; /** * * * @generated */ private EClass comparisonEClass = null; /** * * * @generated */ private EClass binaryExpressionEClass = null; /** * * * @generated */ private EClass castExpressionEClass = null; /** * * * @generated */ private EClass unaryExpressionEClass = null; /** * * * @generated */ private EClass nodeEClass = null; /** * * * @generated */ private EClass functorEClass = null; /** * * * @generated */ private EClass predicateEClass = null; /** * * * @generated */ private EClass metricEClass = null; /** * * * @generated */ private EEnum binaryOperatorEEnum = null; /** * * * @generated */ private EEnum unaryOpEEnum = null; /** * * * @generated */ private EEnum logicValueEEnum = null; /** * * * @generated */ private EEnum objectiveKindEEnum = null; /** * * * @generated */ private EEnum quantifierEEnum = 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.solverLanguage.SolverLanguagePackage#eNS_URI * @see #init() * @generated */ private SolverLanguagePackageImpl() { super(eNS_URI, SolverLanguageFactory.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 SolverLanguagePackage#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 SolverLanguagePackage init() { if (isInited) return (SolverLanguagePackage)EPackage.Registry.INSTANCE.getEPackage(SolverLanguagePackage.eNS_URI); // Obtain or create and register package Object registeredSolverLanguagePackage = EPackage.Registry.INSTANCE.get(eNS_URI); SolverLanguagePackageImpl theSolverLanguagePackage = registeredSolverLanguagePackage instanceof SolverLanguagePackageImpl ? (SolverLanguagePackageImpl)registeredSolverLanguagePackage : new SolverLanguagePackageImpl(); isInited = true; // Create package meta-data objects theSolverLanguagePackage.createPackageContents(); // Initialize created meta-data theSolverLanguagePackage.initializePackageContents(); // Mark meta-data to indicate it can't be changed theSolverLanguagePackage.freeze(); // Update the registry and return the package EPackage.Registry.INSTANCE.put(SolverLanguagePackage.eNS_URI, theSolverLanguagePackage); return theSolverLanguagePackage; } /** * * * @generated */ @Override public EClass getProblem() { return problemEClass; } /** * * * @generated */ @Override public EReference getProblem_Statements() { return (EReference)problemEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getStatement() { return statementEClass; } /** * * * @generated */ @Override public EClass getPredicateDefinition() { return predicateDefinitionEClass; } /** * * * @generated */ @Override public EReference getPredicateDefinition_Head() { return (EReference)predicateDefinitionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getPredicateDefinition_Body() { return (EReference)predicateDefinitionEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EAttribute getPredicateDefinition_Functional() { return (EAttribute)predicateDefinitionEClass.getEStructuralFeatures().get(2); } /** * * * @generated */ @Override public EAttribute getPredicateDefinition_Error() { return (EAttribute)predicateDefinitionEClass.getEStructuralFeatures().get(3); } /** * * * @generated */ @Override public EClass getUnnamedErrorPrediateDefinition() { return unnamedErrorPrediateDefinitionEClass; } /** * * * @generated */ @Override public EReference getUnnamedErrorPrediateDefinition_ArgumentList() { return (EReference)unnamedErrorPrediateDefinitionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getUnnamedErrorPrediateDefinition_Body() { return (EReference)unnamedErrorPrediateDefinitionEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EClass getDefaultDefinition() { return defaultDefinitionEClass; } /** * * * @generated */ @Override public EReference getDefaultDefinition_Head() { return (EReference)defaultDefinitionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getDefaultDefinition_Range() { return (EReference)defaultDefinitionEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EClass getMetricDefinition() { return metricDefinitionEClass; } /** * * * @generated */ @Override public EReference getMetricDefinition_Head() { return (EReference)metricDefinitionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getMetricDefinition_Body() { return (EReference)metricDefinitionEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EReference getMetricDefinition_Type() { return (EReference)metricDefinitionEClass.getEStructuralFeatures().get(2); } /** * * * @generated */ @Override public EClass getExternPredicateDefinition() { return externPredicateDefinitionEClass; } /** * * * @generated */ @Override public EAttribute getExternPredicateDefinition_Name() { return (EAttribute)externPredicateDefinitionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getExternPredicateDefinition_ArgumentList() { return (EReference)externPredicateDefinitionEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EClass getExternMetricDefinition() { return externMetricDefinitionEClass; } /** * * * @generated */ @Override public EReference getExternMetricDefinition_Type() { return (EReference)externMetricDefinitionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EAttribute getExternMetricDefinition_Name() { return (EAttribute)externMetricDefinitionEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EReference getExternMetricDefinition_ArgumentList() { return (EReference)externMetricDefinitionEClass.getEStructuralFeatures().get(2); } /** * * * @generated */ @Override public EClass getExternAggregatorDefinition() { return externAggregatorDefinitionEClass; } /** * * * @generated */ @Override public EReference getExternAggregatorDefinition_Type() { return (EReference)externAggregatorDefinitionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EAttribute getExternAggregatorDefinition_Name() { return (EAttribute)externAggregatorDefinitionEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EReference getExternAggregatorDefinition_InputType() { return (EReference)externAggregatorDefinitionEClass.getEStructuralFeatures().get(2); } /** * * * @generated */ @Override public EClass getExternDatatypeDefinition() { return externDatatypeDefinitionEClass; } /** * * * @generated */ @Override public EAttribute getExternDatatypeDefinition_Name() { return (EAttribute)externDatatypeDefinitionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getExternDatatypeDefinition_Supertypes() { return (EReference)externDatatypeDefinitionEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EClass getNamedElement() { return namedElementEClass; } /** * * * @generated */ @Override public EAttribute getNamedElement_Name() { return (EAttribute)namedElementEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getExpression() { return expressionEClass; } /** * * * @generated */ @Override public EClass getIfElse() { return ifElseEClass; } /** * * * @generated */ @Override public EReference getIfElse_Then() { return (EReference)ifElseEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getIfElse_Else() { return (EReference)ifElseEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EReference getIfElse_Condition() { return (EReference)ifElseEClass.getEStructuralFeatures().get(2); } /** * * * @generated */ @Override public EClass getLet() { return letEClass; } /** * * * @generated */ @Override public EReference getLet_Bindings() { return (EReference)letEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getLet_Body() { return (EReference)letEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EClass getLetBinding() { return letBindingEClass; } /** * * * @generated */ @Override public EReference getLetBinding_Variable() { return (EReference)letBindingEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getLetBinding_Value() { return (EReference)letBindingEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EClass getCase() { return caseEClass; } /** * * * @generated */ @Override public EReference getCase_Body() { return (EReference)caseEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getCase_Condition() { return (EReference)caseEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EClass getLocalVariables() { return localVariablesEClass; } /** * * * @generated */ @Override public EReference getLocalVariables_Variables() { return (EReference)localVariablesEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getQuantifiedExpression() { return quantifiedExpressionEClass; } /** * * * @generated */ @Override public EReference getQuantifiedExpression_LocalVariables() { return (EReference)quantifiedExpressionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getQuantifiedExpression_Body() { return (EReference)quantifiedExpressionEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EAttribute getQuantifiedExpression_Quantifier() { return (EAttribute)quantifiedExpressionEClass.getEStructuralFeatures().get(2); } /** * * * @generated */ @Override public EClass getAggregation() { return aggregationEClass; } /** * * * @generated */ @Override public EReference getAggregation_Op() { return (EReference)aggregationEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getAggregation_LocalVariables() { return (EReference)aggregationEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EReference getAggregation_Body() { return (EReference)aggregationEClass.getEStructuralFeatures().get(2); } /** * * * @generated */ @Override public EReference getAggregation_Condition() { return (EReference)aggregationEClass.getEStructuralFeatures().get(3); } /** * * * @generated */ @Override public EClass getCall() { return callEClass; } /** * * * @generated */ @Override public EReference getCall_Functor() { return (EReference)callEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EAttribute getCall_TransitiveClosure() { return (EAttribute)callEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EAttribute getCall_ReflexiveTransitiveClosure() { return (EAttribute)callEClass.getEStructuralFeatures().get(2); } /** * * * @generated */ @Override public EReference getCall_ArgumentList() { return (EReference)callEClass.getEStructuralFeatures().get(3); } /** * * * @generated */ @Override public EClass getArgumentList() { return argumentListEClass; } /** * * * @generated */ @Override public EReference getArgumentList_Arguments() { return (EReference)argumentListEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getArgument() { return argumentEClass; } /** * * * @generated */ @Override public EClass getExpressionArgument() { return expressionArgumentEClass; } /** * * * @generated */ @Override public EReference getExpressionArgument_Body() { return (EReference)expressionArgumentEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getStarArgument() { return starArgumentEClass; } /** * * * @generated */ @Override public EClass getTypedArgument() { return typedArgumentEClass; } /** * * * @generated */ @Override public EReference getTypedArgument_Type() { return (EReference)typedArgumentEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getTypedArgument_Variable() { return (EReference)typedArgumentEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EClass getTypedStarArgument() { return typedStarArgumentEClass; } /** * * * @generated */ @Override public EReference getTypedStarArgument_Type() { return (EReference)typedStarArgumentEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getReference() { return referenceEClass; } /** * * * @generated */ @Override public EReference getReference_Referred() { return (EReference)referenceEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getInterval() { return intervalEClass; } /** * * * @generated */ @Override public EReference getInterval_LowerBound() { return (EReference)intervalEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getInterval_UpperBound() { return (EReference)intervalEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EClass getLiteral() { return literalEClass; } /** * * * @generated */ @Override public EClass getLogicLiteral() { return logicLiteralEClass; } /** * * * @generated */ @Override public EAttribute getLogicLiteral_Value() { return (EAttribute)logicLiteralEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getNumericLiteral() { return numericLiteralEClass; } /** * * * @generated */ @Override public EAttribute getNumericLiteral_Value() { return (EAttribute)numericLiteralEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getInfinityLiteral() { return infinityLiteralEClass; } /** * * * @generated */ @Override public EClass getEmptyIntervalLiteral() { return emptyIntervalLiteralEClass; } /** * * * @generated */ @Override public EClass getStringLiteral() { return stringLiteralEClass; } /** * * * @generated */ @Override public EAttribute getStringLiteral_Value() { return (EAttribute)stringLiteralEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getClassDefinition() { return classDefinitionEClass; } /** * * * @generated */ @Override public EAttribute getClassDefinition_Abstract() { return (EAttribute)classDefinitionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EAttribute getClassDefinition_Name() { return (EAttribute)classDefinitionEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EReference getClassDefinition_Superclasses() { return (EReference)classDefinitionEClass.getEStructuralFeatures().get(2); } /** * * * @generated */ @Override public EReference getClassDefinition_Members() { return (EReference)classDefinitionEClass.getEStructuralFeatures().get(3); } /** * * * @generated */ @Override public EClass getMemberDefinition() { return memberDefinitionEClass; } /** * * * @generated */ @Override public EAttribute getMemberDefinition_Containment() { return (EAttribute)memberDefinitionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getMemberDefinition_Type() { return (EReference)memberDefinitionEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EReference getMemberDefinition_Multiplicity() { return (EReference)memberDefinitionEClass.getEStructuralFeatures().get(2); } /** * * * @generated */ @Override public EAttribute getMemberDefinition_Name() { return (EAttribute)memberDefinitionEClass.getEStructuralFeatures().get(3); } /** * * * @generated */ @Override public EReference getMemberDefinition_Opposite() { return (EReference)memberDefinitionEClass.getEStructuralFeatures().get(4); } /** * * * @generated */ @Override public EClass getMultiplicity() { return multiplicityEClass; } /** * * * @generated */ @Override public EClass getManyMultiplicity() { return manyMultiplicityEClass; } /** * * * @generated */ @Override public EClass getExactMultiplicity() { return exactMultiplicityEClass; } /** * * * @generated */ @Override public EAttribute getExactMultiplicity_Multiplicity() { return (EAttribute)exactMultiplicityEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getBoundedMultiplicity() { return boundedMultiplicityEClass; } /** * * * @generated */ @Override public EAttribute getBoundedMultiplicity_LowerBound() { return (EAttribute)boundedMultiplicityEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EAttribute getBoundedMultiplicity_UpperBound() { return (EAttribute)boundedMultiplicityEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EClass getScopeDefinition() { return scopeDefinitionEClass; } /** * * * @generated */ @Override public EReference getScopeDefinition_Type() { return (EReference)scopeDefinitionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getExactScopeDefinition() { return exactScopeDefinitionEClass; } /** * * * @generated */ @Override public EAttribute getExactScopeDefinition_ExactScope() { return (EAttribute)exactScopeDefinitionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getBoundedScopeDefinition() { return boundedScopeDefinitionEClass; } /** * * * @generated */ @Override public EAttribute getBoundedScopeDefinition_LowerBound() { return (EAttribute)boundedScopeDefinitionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EAttribute getBoundedScopeDefinition_UpperBound() { return (EAttribute)boundedScopeDefinitionEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EClass getLowerBoundedScopeDefinition() { return lowerBoundedScopeDefinitionEClass; } /** * * * @generated */ @Override public EAttribute getLowerBoundedScopeDefinition_LowerBound() { return (EAttribute)lowerBoundedScopeDefinitionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getObjectiveDefinition() { return objectiveDefinitionEClass; } /** * * * @generated */ @Override public EAttribute getObjectiveDefinition_Kind() { return (EAttribute)objectiveDefinitionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getObjectiveDefinition_Objective() { return (EReference)objectiveDefinitionEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EClass getInterpretation() { return interpretationEClass; } /** * * * @generated */ @Override public EReference getInterpretation_Body() { return (EReference)interpretationEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getInterpretation_Range() { return (EReference)interpretationEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EClass getVariable() { return variableEClass; } /** * * * @generated */ @Override public EReference getVariable_Type() { return (EReference)variableEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getDisjunction() { return disjunctionEClass; } /** * * * @generated */ @Override public EReference getDisjunction_Children() { return (EReference)disjunctionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getSwitch() { return switchEClass; } /** * * * @generated */ @Override public EReference getSwitch_Cases() { return (EReference)switchEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getConjunction() { return conjunctionEClass; } /** * * * @generated */ @Override public EReference getConjunction_Children() { return (EReference)conjunctionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getComparison() { return comparisonEClass; } /** * * * @generated */ @Override public EReference getComparison_Left() { return (EReference)comparisonEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EAttribute getComparison_Op() { return (EAttribute)comparisonEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EReference getComparison_Right() { return (EReference)comparisonEClass.getEStructuralFeatures().get(2); } /** * * * @generated */ @Override public EClass getBinaryExpression() { return binaryExpressionEClass; } /** * * * @generated */ @Override public EReference getBinaryExpression_Left() { return (EReference)binaryExpressionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EAttribute getBinaryExpression_Op() { return (EAttribute)binaryExpressionEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EReference getBinaryExpression_Right() { return (EReference)binaryExpressionEClass.getEStructuralFeatures().get(2); } /** * * * @generated */ @Override public EClass getCastExpression() { return castExpressionEClass; } /** * * * @generated */ @Override public EReference getCastExpression_Body() { return (EReference)castExpressionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getCastExpression_Type() { return (EReference)castExpressionEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EClass getUnaryExpression() { return unaryExpressionEClass; } /** * * * @generated */ @Override public EAttribute getUnaryExpression_Op() { return (EAttribute)unaryExpressionEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EReference getUnaryExpression_Body() { return (EReference)unaryExpressionEClass.getEStructuralFeatures().get(1); } /** * * * @generated */ @Override public EClass getNode() { return nodeEClass; } /** * * * @generated */ @Override public EAttribute getNode_WithId() { return (EAttribute)nodeEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getFunctor() { return functorEClass; } /** * * * @generated */ @Override public EReference getFunctor_Parameters() { return (EReference)functorEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EClass getPredicate() { return predicateEClass; } /** * * * @generated */ @Override public EClass getMetric() { return metricEClass; } /** * * * @generated */ @Override public EReference getMetric_ReturnType() { return (EReference)metricEClass.getEStructuralFeatures().get(0); } /** * * * @generated */ @Override public EEnum getBinaryOperator() { return binaryOperatorEEnum; } /** * * * @generated */ @Override public EEnum getUnaryOp() { return unaryOpEEnum; } /** * * * @generated */ @Override public EEnum getLogicValue() { return logicValueEEnum; } /** * * * @generated */ @Override public EEnum getObjectiveKind() { return objectiveKindEEnum; } /** * * * @generated */ @Override public EEnum getQuantifier() { return quantifierEEnum; } /** * * * @generated */ @Override public SolverLanguageFactory getSolverLanguageFactory() { return (SolverLanguageFactory)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__STATEMENTS); statementEClass = createEClass(STATEMENT); predicateDefinitionEClass = createEClass(PREDICATE_DEFINITION); createEReference(predicateDefinitionEClass, PREDICATE_DEFINITION__HEAD); createEReference(predicateDefinitionEClass, PREDICATE_DEFINITION__BODY); createEAttribute(predicateDefinitionEClass, PREDICATE_DEFINITION__FUNCTIONAL); createEAttribute(predicateDefinitionEClass, PREDICATE_DEFINITION__ERROR); unnamedErrorPrediateDefinitionEClass = createEClass(UNNAMED_ERROR_PREDIATE_DEFINITION); createEReference(unnamedErrorPrediateDefinitionEClass, UNNAMED_ERROR_PREDIATE_DEFINITION__ARGUMENT_LIST); createEReference(unnamedErrorPrediateDefinitionEClass, UNNAMED_ERROR_PREDIATE_DEFINITION__BODY); defaultDefinitionEClass = createEClass(DEFAULT_DEFINITION); createEReference(defaultDefinitionEClass, DEFAULT_DEFINITION__HEAD); createEReference(defaultDefinitionEClass, DEFAULT_DEFINITION__RANGE); metricDefinitionEClass = createEClass(METRIC_DEFINITION); createEReference(metricDefinitionEClass, METRIC_DEFINITION__HEAD); createEReference(metricDefinitionEClass, METRIC_DEFINITION__BODY); createEReference(metricDefinitionEClass, METRIC_DEFINITION__TYPE); externPredicateDefinitionEClass = createEClass(EXTERN_PREDICATE_DEFINITION); createEAttribute(externPredicateDefinitionEClass, EXTERN_PREDICATE_DEFINITION__NAME); createEReference(externPredicateDefinitionEClass, EXTERN_PREDICATE_DEFINITION__ARGUMENT_LIST); externMetricDefinitionEClass = createEClass(EXTERN_METRIC_DEFINITION); createEReference(externMetricDefinitionEClass, EXTERN_METRIC_DEFINITION__TYPE); createEAttribute(externMetricDefinitionEClass, EXTERN_METRIC_DEFINITION__NAME); createEReference(externMetricDefinitionEClass, EXTERN_METRIC_DEFINITION__ARGUMENT_LIST); externAggregatorDefinitionEClass = createEClass(EXTERN_AGGREGATOR_DEFINITION); createEReference(externAggregatorDefinitionEClass, EXTERN_AGGREGATOR_DEFINITION__TYPE); createEAttribute(externAggregatorDefinitionEClass, EXTERN_AGGREGATOR_DEFINITION__NAME); createEReference(externAggregatorDefinitionEClass, EXTERN_AGGREGATOR_DEFINITION__INPUT_TYPE); externDatatypeDefinitionEClass = createEClass(EXTERN_DATATYPE_DEFINITION); createEAttribute(externDatatypeDefinitionEClass, EXTERN_DATATYPE_DEFINITION__NAME); createEReference(externDatatypeDefinitionEClass, EXTERN_DATATYPE_DEFINITION__SUPERTYPES); namedElementEClass = createEClass(NAMED_ELEMENT); createEAttribute(namedElementEClass, NAMED_ELEMENT__NAME); expressionEClass = createEClass(EXPRESSION); ifElseEClass = createEClass(IF_ELSE); createEReference(ifElseEClass, IF_ELSE__THEN); createEReference(ifElseEClass, IF_ELSE__ELSE); createEReference(ifElseEClass, IF_ELSE__CONDITION); letEClass = createEClass(LET); createEReference(letEClass, LET__BINDINGS); createEReference(letEClass, LET__BODY); letBindingEClass = createEClass(LET_BINDING); createEReference(letBindingEClass, LET_BINDING__VARIABLE); createEReference(letBindingEClass, LET_BINDING__VALUE); caseEClass = createEClass(CASE); createEReference(caseEClass, CASE__BODY); createEReference(caseEClass, CASE__CONDITION); localVariablesEClass = createEClass(LOCAL_VARIABLES); createEReference(localVariablesEClass, LOCAL_VARIABLES__VARIABLES); quantifiedExpressionEClass = createEClass(QUANTIFIED_EXPRESSION); createEReference(quantifiedExpressionEClass, QUANTIFIED_EXPRESSION__LOCAL_VARIABLES); createEReference(quantifiedExpressionEClass, QUANTIFIED_EXPRESSION__BODY); createEAttribute(quantifiedExpressionEClass, QUANTIFIED_EXPRESSION__QUANTIFIER); aggregationEClass = createEClass(AGGREGATION); createEReference(aggregationEClass, AGGREGATION__OP); createEReference(aggregationEClass, AGGREGATION__LOCAL_VARIABLES); createEReference(aggregationEClass, AGGREGATION__BODY); createEReference(aggregationEClass, AGGREGATION__CONDITION); callEClass = createEClass(CALL); createEReference(callEClass, CALL__FUNCTOR); createEAttribute(callEClass, CALL__TRANSITIVE_CLOSURE); createEAttribute(callEClass, CALL__REFLEXIVE_TRANSITIVE_CLOSURE); createEReference(callEClass, CALL__ARGUMENT_LIST); argumentListEClass = createEClass(ARGUMENT_LIST); createEReference(argumentListEClass, ARGUMENT_LIST__ARGUMENTS); argumentEClass = createEClass(ARGUMENT); expressionArgumentEClass = createEClass(EXPRESSION_ARGUMENT); createEReference(expressionArgumentEClass, EXPRESSION_ARGUMENT__BODY); starArgumentEClass = createEClass(STAR_ARGUMENT); typedArgumentEClass = createEClass(TYPED_ARGUMENT); createEReference(typedArgumentEClass, TYPED_ARGUMENT__TYPE); createEReference(typedArgumentEClass, TYPED_ARGUMENT__VARIABLE); typedStarArgumentEClass = createEClass(TYPED_STAR_ARGUMENT); createEReference(typedStarArgumentEClass, TYPED_STAR_ARGUMENT__TYPE); referenceEClass = createEClass(REFERENCE); createEReference(referenceEClass, REFERENCE__REFERRED); intervalEClass = createEClass(INTERVAL); createEReference(intervalEClass, INTERVAL__LOWER_BOUND); createEReference(intervalEClass, INTERVAL__UPPER_BOUND); literalEClass = createEClass(LITERAL); logicLiteralEClass = createEClass(LOGIC_LITERAL); createEAttribute(logicLiteralEClass, LOGIC_LITERAL__VALUE); numericLiteralEClass = createEClass(NUMERIC_LITERAL); createEAttribute(numericLiteralEClass, NUMERIC_LITERAL__VALUE); infinityLiteralEClass = createEClass(INFINITY_LITERAL); emptyIntervalLiteralEClass = createEClass(EMPTY_INTERVAL_LITERAL); stringLiteralEClass = createEClass(STRING_LITERAL); createEAttribute(stringLiteralEClass, STRING_LITERAL__VALUE); classDefinitionEClass = createEClass(CLASS_DEFINITION); createEAttribute(classDefinitionEClass, CLASS_DEFINITION__ABSTRACT); createEAttribute(classDefinitionEClass, CLASS_DEFINITION__NAME); createEReference(classDefinitionEClass, CLASS_DEFINITION__SUPERCLASSES); createEReference(classDefinitionEClass, CLASS_DEFINITION__MEMBERS); memberDefinitionEClass = createEClass(MEMBER_DEFINITION); createEAttribute(memberDefinitionEClass, MEMBER_DEFINITION__CONTAINMENT); createEReference(memberDefinitionEClass, MEMBER_DEFINITION__TYPE); createEReference(memberDefinitionEClass, MEMBER_DEFINITION__MULTIPLICITY); createEAttribute(memberDefinitionEClass, MEMBER_DEFINITION__NAME); createEReference(memberDefinitionEClass, MEMBER_DEFINITION__OPPOSITE); multiplicityEClass = createEClass(MULTIPLICITY); manyMultiplicityEClass = createEClass(MANY_MULTIPLICITY); exactMultiplicityEClass = createEClass(EXACT_MULTIPLICITY); createEAttribute(exactMultiplicityEClass, EXACT_MULTIPLICITY__MULTIPLICITY); boundedMultiplicityEClass = createEClass(BOUNDED_MULTIPLICITY); createEAttribute(boundedMultiplicityEClass, BOUNDED_MULTIPLICITY__LOWER_BOUND); createEAttribute(boundedMultiplicityEClass, BOUNDED_MULTIPLICITY__UPPER_BOUND); scopeDefinitionEClass = createEClass(SCOPE_DEFINITION); createEReference(scopeDefinitionEClass, SCOPE_DEFINITION__TYPE); exactScopeDefinitionEClass = createEClass(EXACT_SCOPE_DEFINITION); createEAttribute(exactScopeDefinitionEClass, EXACT_SCOPE_DEFINITION__EXACT_SCOPE); boundedScopeDefinitionEClass = createEClass(BOUNDED_SCOPE_DEFINITION); createEAttribute(boundedScopeDefinitionEClass, BOUNDED_SCOPE_DEFINITION__LOWER_BOUND); createEAttribute(boundedScopeDefinitionEClass, BOUNDED_SCOPE_DEFINITION__UPPER_BOUND); lowerBoundedScopeDefinitionEClass = createEClass(LOWER_BOUNDED_SCOPE_DEFINITION); createEAttribute(lowerBoundedScopeDefinitionEClass, LOWER_BOUNDED_SCOPE_DEFINITION__LOWER_BOUND); objectiveDefinitionEClass = createEClass(OBJECTIVE_DEFINITION); createEAttribute(objectiveDefinitionEClass, OBJECTIVE_DEFINITION__KIND); createEReference(objectiveDefinitionEClass, OBJECTIVE_DEFINITION__OBJECTIVE); interpretationEClass = createEClass(INTERPRETATION); createEReference(interpretationEClass, INTERPRETATION__BODY); createEReference(interpretationEClass, INTERPRETATION__RANGE); variableEClass = createEClass(VARIABLE); createEReference(variableEClass, VARIABLE__TYPE); disjunctionEClass = createEClass(DISJUNCTION); createEReference(disjunctionEClass, DISJUNCTION__CHILDREN); switchEClass = createEClass(SWITCH); createEReference(switchEClass, SWITCH__CASES); conjunctionEClass = createEClass(CONJUNCTION); createEReference(conjunctionEClass, CONJUNCTION__CHILDREN); comparisonEClass = createEClass(COMPARISON); createEReference(comparisonEClass, COMPARISON__LEFT); createEAttribute(comparisonEClass, COMPARISON__OP); createEReference(comparisonEClass, COMPARISON__RIGHT); binaryExpressionEClass = createEClass(BINARY_EXPRESSION); createEReference(binaryExpressionEClass, BINARY_EXPRESSION__LEFT); createEAttribute(binaryExpressionEClass, BINARY_EXPRESSION__OP); createEReference(binaryExpressionEClass, BINARY_EXPRESSION__RIGHT); castExpressionEClass = createEClass(CAST_EXPRESSION); createEReference(castExpressionEClass, CAST_EXPRESSION__BODY); createEReference(castExpressionEClass, CAST_EXPRESSION__TYPE); unaryExpressionEClass = createEClass(UNARY_EXPRESSION); createEAttribute(unaryExpressionEClass, UNARY_EXPRESSION__OP); createEReference(unaryExpressionEClass, UNARY_EXPRESSION__BODY); nodeEClass = createEClass(NODE); createEAttribute(nodeEClass, NODE__WITH_ID); functorEClass = createEClass(FUNCTOR); createEReference(functorEClass, FUNCTOR__PARAMETERS); predicateEClass = createEClass(PREDICATE); metricEClass = createEClass(METRIC); createEReference(metricEClass, METRIC__RETURN_TYPE); // Create enums binaryOperatorEEnum = createEEnum(BINARY_OPERATOR); unaryOpEEnum = createEEnum(UNARY_OP); logicValueEEnum = createEEnum(LOGIC_VALUE); objectiveKindEEnum = createEEnum(OBJECTIVE_KIND); quantifierEEnum = createEEnum(QUANTIFIER); } /** * * * @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 predicateDefinitionEClass.getESuperTypes().add(this.getStatement()); unnamedErrorPrediateDefinitionEClass.getESuperTypes().add(this.getStatement()); defaultDefinitionEClass.getESuperTypes().add(this.getStatement()); metricDefinitionEClass.getESuperTypes().add(this.getStatement()); externPredicateDefinitionEClass.getESuperTypes().add(this.getStatement()); externMetricDefinitionEClass.getESuperTypes().add(this.getStatement()); externAggregatorDefinitionEClass.getESuperTypes().add(this.getStatement()); externDatatypeDefinitionEClass.getESuperTypes().add(this.getStatement()); expressionEClass.getESuperTypes().add(this.getStatement()); ifElseEClass.getESuperTypes().add(this.getExpression()); letEClass.getESuperTypes().add(this.getExpression()); caseEClass.getESuperTypes().add(this.getExpression()); quantifiedExpressionEClass.getESuperTypes().add(this.getExpression()); aggregationEClass.getESuperTypes().add(this.getExpression()); callEClass.getESuperTypes().add(this.getExpression()); expressionArgumentEClass.getESuperTypes().add(this.getArgument()); starArgumentEClass.getESuperTypes().add(this.getArgument()); typedArgumentEClass.getESuperTypes().add(this.getArgument()); typedStarArgumentEClass.getESuperTypes().add(this.getArgument()); referenceEClass.getESuperTypes().add(this.getExpression()); intervalEClass.getESuperTypes().add(this.getExpression()); literalEClass.getESuperTypes().add(this.getExpression()); logicLiteralEClass.getESuperTypes().add(this.getLiteral()); numericLiteralEClass.getESuperTypes().add(this.getLiteral()); infinityLiteralEClass.getESuperTypes().add(this.getLiteral()); emptyIntervalLiteralEClass.getESuperTypes().add(this.getLiteral()); stringLiteralEClass.getESuperTypes().add(this.getLiteral()); classDefinitionEClass.getESuperTypes().add(this.getStatement()); manyMultiplicityEClass.getESuperTypes().add(this.getMultiplicity()); exactMultiplicityEClass.getESuperTypes().add(this.getMultiplicity()); boundedMultiplicityEClass.getESuperTypes().add(this.getMultiplicity()); scopeDefinitionEClass.getESuperTypes().add(this.getStatement()); exactScopeDefinitionEClass.getESuperTypes().add(this.getScopeDefinition()); boundedScopeDefinitionEClass.getESuperTypes().add(this.getScopeDefinition()); lowerBoundedScopeDefinitionEClass.getESuperTypes().add(this.getScopeDefinition()); objectiveDefinitionEClass.getESuperTypes().add(this.getStatement()); interpretationEClass.getESuperTypes().add(this.getStatement()); variableEClass.getESuperTypes().add(this.getNamedElement()); disjunctionEClass.getESuperTypes().add(this.getExpression()); switchEClass.getESuperTypes().add(this.getExpression()); conjunctionEClass.getESuperTypes().add(this.getExpression()); comparisonEClass.getESuperTypes().add(this.getExpression()); binaryExpressionEClass.getESuperTypes().add(this.getExpression()); castExpressionEClass.getESuperTypes().add(this.getExpression()); unaryExpressionEClass.getESuperTypes().add(this.getExpression()); nodeEClass.getESuperTypes().add(this.getNamedElement()); functorEClass.getESuperTypes().add(this.getNamedElement()); predicateEClass.getESuperTypes().add(this.getFunctor()); metricEClass.getESuperTypes().add(this.getFunctor()); // Initialize classes and features; add operations and parameters initEClass(problemEClass, Problem.class, "Problem", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 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(statementEClass, Statement.class, "Statement", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(predicateDefinitionEClass, PredicateDefinition.class, "PredicateDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getPredicateDefinition_Head(), this.getExpression(), null, "head", 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_Body(), this.getExpression(), null, "body", null, 0, 1, PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getPredicateDefinition_Functional(), ecorePackage.getEBoolean(), "functional", null, 0, 1, PredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 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); initEClass(unnamedErrorPrediateDefinitionEClass, UnnamedErrorPrediateDefinition.class, "UnnamedErrorPrediateDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getUnnamedErrorPrediateDefinition_ArgumentList(), this.getArgumentList(), null, "argumentList", null, 0, 1, UnnamedErrorPrediateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getUnnamedErrorPrediateDefinition_Body(), this.getExpression(), null, "body", null, 0, 1, UnnamedErrorPrediateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(defaultDefinitionEClass, DefaultDefinition.class, "DefaultDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getDefaultDefinition_Head(), this.getCall(), null, "head", null, 0, 1, DefaultDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getDefaultDefinition_Range(), this.getExpression(), null, "range", null, 0, 1, DefaultDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(metricDefinitionEClass, MetricDefinition.class, "MetricDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getMetricDefinition_Head(), this.getExpression(), null, "head", null, 0, 1, MetricDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getMetricDefinition_Body(), this.getExpression(), null, "body", null, 0, 1, MetricDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getMetricDefinition_Type(), this.getNamedElement(), null, "type", null, 0, 1, MetricDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(externPredicateDefinitionEClass, ExternPredicateDefinition.class, "ExternPredicateDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getExternPredicateDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, ExternPredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getExternPredicateDefinition_ArgumentList(), this.getArgumentList(), null, "argumentList", null, 0, 1, ExternPredicateDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(externMetricDefinitionEClass, ExternMetricDefinition.class, "ExternMetricDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getExternMetricDefinition_Type(), this.getNamedElement(), null, "type", null, 0, 1, ExternMetricDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getExternMetricDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, ExternMetricDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getExternMetricDefinition_ArgumentList(), this.getArgumentList(), null, "argumentList", null, 0, 1, ExternMetricDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(externAggregatorDefinitionEClass, ExternAggregatorDefinition.class, "ExternAggregatorDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getExternAggregatorDefinition_Type(), this.getNamedElement(), null, "type", null, 0, 1, ExternAggregatorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getExternAggregatorDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, ExternAggregatorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getExternAggregatorDefinition_InputType(), this.getNamedElement(), null, "inputType", null, 0, 1, ExternAggregatorDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(externDatatypeDefinitionEClass, ExternDatatypeDefinition.class, "ExternDatatypeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getExternDatatypeDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, ExternDatatypeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getExternDatatypeDefinition_Supertypes(), this.getNamedElement(), null, "supertypes", null, 0, -1, ExternDatatypeDefinition.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(expressionEClass, Expression.class, "Expression", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(ifElseEClass, IfElse.class, "IfElse", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getIfElse_Then(), this.getExpression(), null, "then", null, 0, 1, IfElse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getIfElse_Else(), this.getExpression(), null, "else", null, 0, 1, IfElse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getIfElse_Condition(), this.getExpression(), null, "condition", null, 0, 1, IfElse.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(letEClass, Let.class, "Let", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getLet_Bindings(), this.getLetBinding(), null, "bindings", null, 0, -1, Let.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getLet_Body(), this.getExpression(), null, "body", null, 0, 1, Let.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(letBindingEClass, LetBinding.class, "LetBinding", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getLetBinding_Variable(), this.getNamedElement(), null, "variable", null, 0, 1, LetBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getLetBinding_Value(), this.getExpression(), null, "value", null, 0, 1, LetBinding.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(caseEClass, Case.class, "Case", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getCase_Body(), this.getExpression(), null, "body", null, 0, 1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getCase_Condition(), this.getExpression(), null, "condition", null, 0, 1, Case.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(localVariablesEClass, LocalVariables.class, "LocalVariables", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getLocalVariables_Variables(), this.getNamedElement(), null, "variables", null, 0, -1, LocalVariables.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(quantifiedExpressionEClass, QuantifiedExpression.class, "QuantifiedExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getQuantifiedExpression_LocalVariables(), this.getLocalVariables(), null, "localVariables", null, 0, 1, QuantifiedExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getQuantifiedExpression_Body(), this.getExpression(), null, "body", null, 0, 1, QuantifiedExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getQuantifiedExpression_Quantifier(), this.getQuantifier(), "quantifier", null, 0, 1, QuantifiedExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(aggregationEClass, Aggregation.class, "Aggregation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getAggregation_Op(), this.getNamedElement(), null, "op", null, 0, 1, Aggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getAggregation_LocalVariables(), this.getLocalVariables(), null, "localVariables", null, 0, 1, Aggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getAggregation_Body(), this.getExpression(), null, "body", null, 0, 1, Aggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getAggregation_Condition(), this.getExpression(), null, "condition", null, 0, 1, Aggregation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(callEClass, Call.class, "Call", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getCall_Functor(), this.getReference(), null, "functor", null, 0, 1, Call.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getCall_TransitiveClosure(), ecorePackage.getEBoolean(), "transitiveClosure", null, 0, 1, Call.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getCall_ReflexiveTransitiveClosure(), ecorePackage.getEBoolean(), "reflexiveTransitiveClosure", null, 0, 1, Call.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getCall_ArgumentList(), this.getArgumentList(), null, "argumentList", null, 0, 1, Call.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(argumentListEClass, ArgumentList.class, "ArgumentList", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getArgumentList_Arguments(), this.getArgument(), null, "arguments", null, 0, -1, ArgumentList.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(argumentEClass, Argument.class, "Argument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(expressionArgumentEClass, ExpressionArgument.class, "ExpressionArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getExpressionArgument_Body(), this.getExpression(), null, "body", null, 0, 1, ExpressionArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(starArgumentEClass, StarArgument.class, "StarArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(typedArgumentEClass, TypedArgument.class, "TypedArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getTypedArgument_Type(), this.getNamedElement(), null, "type", null, 0, 1, TypedArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getTypedArgument_Variable(), this.getNamedElement(), null, "variable", null, 0, 1, TypedArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(typedStarArgumentEClass, TypedStarArgument.class, "TypedStarArgument", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getTypedStarArgument_Type(), this.getNamedElement(), null, "type", null, 0, 1, TypedStarArgument.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(referenceEClass, Reference.class, "Reference", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getReference_Referred(), this.getNamedElement(), null, "referred", null, 0, 1, Reference.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(intervalEClass, Interval.class, "Interval", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getInterval_LowerBound(), this.getExpression(), null, "lowerBound", null, 0, 1, Interval.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getInterval_UpperBound(), this.getExpression(), null, "upperBound", null, 0, 1, Interval.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(logicLiteralEClass, LogicLiteral.class, "LogicLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getLogicLiteral_Value(), this.getLogicValue(), "value", null, 0, 1, LogicLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(numericLiteralEClass, NumericLiteral.class, "NumericLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getNumericLiteral_Value(), ecorePackage.getEBigDecimal(), "value", null, 0, 1, NumericLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(infinityLiteralEClass, InfinityLiteral.class, "InfinityLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(emptyIntervalLiteralEClass, EmptyIntervalLiteral.class, "EmptyIntervalLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(stringLiteralEClass, StringLiteral.class, "StringLiteral", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getStringLiteral_Value(), ecorePackage.getEString(), "value", null, 0, 1, StringLiteral.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(classDefinitionEClass, ClassDefinition.class, "ClassDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getClassDefinition_Abstract(), ecorePackage.getEBoolean(), "abstract", null, 0, 1, ClassDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getClassDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, ClassDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getClassDefinition_Superclasses(), this.getNamedElement(), null, "superclasses", null, 0, -1, ClassDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, !IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getClassDefinition_Members(), this.getMemberDefinition(), null, "members", null, 0, -1, ClassDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(memberDefinitionEClass, MemberDefinition.class, "MemberDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getMemberDefinition_Containment(), ecorePackage.getEBoolean(), "containment", null, 0, 1, MemberDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getMemberDefinition_Type(), this.getNamedElement(), null, "type", null, 0, 1, MemberDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getMemberDefinition_Multiplicity(), this.getMultiplicity(), null, "multiplicity", null, 0, 1, MemberDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getMemberDefinition_Name(), ecorePackage.getEString(), "name", null, 0, 1, MemberDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getMemberDefinition_Opposite(), this.getNamedElement(), null, "opposite", null, 0, 1, MemberDefinition.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(manyMultiplicityEClass, ManyMultiplicity.class, "ManyMultiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(exactMultiplicityEClass, ExactMultiplicity.class, "ExactMultiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getExactMultiplicity_Multiplicity(), ecorePackage.getEInt(), "multiplicity", null, 0, 1, ExactMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(boundedMultiplicityEClass, BoundedMultiplicity.class, "BoundedMultiplicity", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getBoundedMultiplicity_LowerBound(), ecorePackage.getEInt(), "lowerBound", null, 0, 1, BoundedMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getBoundedMultiplicity_UpperBound(), ecorePackage.getEInt(), "upperBound", null, 0, 1, BoundedMultiplicity.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(scopeDefinitionEClass, ScopeDefinition.class, "ScopeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getScopeDefinition_Type(), this.getNamedElement(), null, "type", null, 0, 1, ScopeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(exactScopeDefinitionEClass, ExactScopeDefinition.class, "ExactScopeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getExactScopeDefinition_ExactScope(), ecorePackage.getEInt(), "exactScope", null, 0, 1, ExactScopeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(boundedScopeDefinitionEClass, BoundedScopeDefinition.class, "BoundedScopeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getBoundedScopeDefinition_LowerBound(), ecorePackage.getEInt(), "lowerBound", null, 0, 1, BoundedScopeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getBoundedScopeDefinition_UpperBound(), ecorePackage.getEInt(), "upperBound", null, 0, 1, BoundedScopeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(lowerBoundedScopeDefinitionEClass, LowerBoundedScopeDefinition.class, "LowerBoundedScopeDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getLowerBoundedScopeDefinition_LowerBound(), ecorePackage.getEInt(), "lowerBound", null, 0, 1, LowerBoundedScopeDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(objectiveDefinitionEClass, ObjectiveDefinition.class, "ObjectiveDefinition", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getObjectiveDefinition_Kind(), this.getObjectiveKind(), "kind", null, 0, 1, ObjectiveDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getObjectiveDefinition_Objective(), this.getExpression(), null, "objective", null, 0, 1, ObjectiveDefinition.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(interpretationEClass, Interpretation.class, "Interpretation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getInterpretation_Body(), this.getExpression(), null, "body", null, 0, 1, Interpretation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getInterpretation_Range(), this.getExpression(), null, "range", null, 0, 1, Interpretation.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); initEReference(getVariable_Type(), this.getNamedElement(), null, "type", null, 0, 1, Variable.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(disjunctionEClass, Disjunction.class, "Disjunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getDisjunction_Children(), this.getExpression(), null, "children", null, 0, -1, Disjunction.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(switchEClass, Switch.class, "Switch", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getSwitch_Cases(), this.getCase(), null, "cases", null, 0, -1, Switch.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(conjunctionEClass, Conjunction.class, "Conjunction", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getConjunction_Children(), this.getExpression(), null, "children", 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(comparisonEClass, Comparison.class, "Comparison", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getComparison_Left(), this.getExpression(), null, "left", null, 0, 1, Comparison.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getComparison_Op(), this.getBinaryOperator(), "op", null, 0, 1, Comparison.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getComparison_Right(), this.getExpression(), null, "right", null, 0, 1, Comparison.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(binaryExpressionEClass, BinaryExpression.class, "BinaryExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getBinaryExpression_Left(), this.getExpression(), null, "left", null, 0, 1, BinaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getBinaryExpression_Op(), this.getBinaryOperator(), "op", null, 0, 1, BinaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getBinaryExpression_Right(), this.getExpression(), null, "right", null, 0, 1, BinaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(castExpressionEClass, CastExpression.class, "CastExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getCastExpression_Body(), this.getExpression(), null, "body", null, 0, 1, CastExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getCastExpression_Type(), this.getNamedElement(), null, "type", null, 0, 1, CastExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(unaryExpressionEClass, UnaryExpression.class, "UnaryExpression", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getUnaryExpression_Op(), this.getUnaryOp(), "op", null, 0, 1, UnaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getUnaryExpression_Body(), this.getExpression(), null, "body", null, 0, 1, UnaryExpression.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(nodeEClass, Node.class, "Node", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getNode_WithId(), ecorePackage.getEBoolean(), "withId", null, 0, 1, Node.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(functorEClass, Functor.class, "Functor", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getFunctor_Parameters(), this.getVariable(), null, "parameters", null, 0, -1, Functor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEClass(predicateEClass, Predicate.class, "Predicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEClass(metricEClass, Metric.class, "Metric", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getMetric_ReturnType(), this.getNamedElement(), null, "returnType", null, 0, 1, Metric.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); // Initialize enums and add enum literals initEEnum(binaryOperatorEEnum, BinaryOperator.class, "BinaryOperator"); addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.EQ); addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.NOT_EQ); addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.LESS); addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.LESS_EQ); addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.GREATER); addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.GREATER_EQ); addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.IN); addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.ADD); addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.SUB); addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.MUL); addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.DIV); addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.POW); addEEnumLiteral(binaryOperatorEEnum, BinaryOperator.IMPLIES); initEEnum(unaryOpEEnum, UnaryOp.class, "UnaryOp"); addEEnumLiteral(unaryOpEEnum, UnaryOp.NEG); addEEnumLiteral(unaryOpEEnum, UnaryOp.PLUS); addEEnumLiteral(unaryOpEEnum, UnaryOp.MINUS); addEEnumLiteral(unaryOpEEnum, UnaryOp.MAY); addEEnumLiteral(unaryOpEEnum, UnaryOp.MUST); addEEnumLiteral(unaryOpEEnum, UnaryOp.CURRENT); initEEnum(logicValueEEnum, LogicValue.class, "LogicValue"); addEEnumLiteral(logicValueEEnum, LogicValue.TRUE); addEEnumLiteral(logicValueEEnum, LogicValue.FALSE); addEEnumLiteral(logicValueEEnum, LogicValue.UNKNOWN); addEEnumLiteral(logicValueEEnum, LogicValue.ERROR); initEEnum(objectiveKindEEnum, ObjectiveKind.class, "ObjectiveKind"); addEEnumLiteral(objectiveKindEEnum, ObjectiveKind.MINIMIZE); addEEnumLiteral(objectiveKindEEnum, ObjectiveKind.MAXIMIZE); initEEnum(quantifierEEnum, Quantifier.class, "Quantifier"); addEEnumLiteral(quantifierEEnum, Quantifier.EXISTS); addEEnumLiteral(quantifierEEnum, Quantifier.FORALL); addEEnumLiteral(quantifierEEnum, Quantifier.COUNT); // Create resource createResource(eNS_URI); } } //SolverLanguagePackageImpl