/**
 * generated by Xtext 2.16.0
 */
package be.uantwerpen.cosys.contractLang.impl;

import be.uantwerpen.cosys.contractLang.*;

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;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Factory</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class ContractLangFactoryImpl extends EFactoryImpl implements ContractLangFactory
{
  /**
   * Creates the default factory implementation.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public static ContractLangFactory init()
  {
    try
    {
      ContractLangFactory theContractLangFactory = (ContractLangFactory)EPackage.Registry.INSTANCE.getEFactory(ContractLangPackage.eNS_URI);
      if (theContractLangFactory != null)
      {
        return theContractLangFactory;
      }
    }
    catch (Exception exception)
    {
      EcorePlugin.INSTANCE.log(exception);
    }
    return new ContractLangFactoryImpl();
  }

  /**
   * Creates an instance of the factory.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public ContractLangFactoryImpl()
  {
    super();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public EObject create(EClass eClass)
  {
    switch (eClass.getClassifierID())
    {
      case ContractLangPackage.ROOT: return createRoot();
      case ContractLangPackage.CONTRACT_SET: return createContractSet();
      case ContractLangPackage.CONTRACT_REF: return createContractRef();
      case ContractLangPackage.CONTRACT: return createContract();
      case ContractLangPackage.EVENT: return createEvent();
      case ContractLangPackage.PROPERTY: return createProperty();
      case ContractLangPackage.META_STATEMENT: return createMetaStatement();
      case ContractLangPackage.STATEMENT_REF: return createStatementRef();
      case ContractLangPackage.STATEMENT: return createStatement();
      case ContractLangPackage.STATEMENT_OP: return createStatementOp();
      case ContractLangPackage.STATEMENT_AND: return createStatementAnd();
      case ContractLangPackage.STATEMENT_OR: return createStatementOr();
      case ContractLangPackage.STATEMENT_NOT: return createStatementNot();
      case ContractLangPackage.SCOPE: return createScope();
      case ContractLangPackage.GLOBALLY_SCOPE: return createGloballyScope();
      case ContractLangPackage.BEFORE_SCOPE: return createBeforeScope();
      case ContractLangPackage.AFTER_SCOPE: return createAfterScope();
      case ContractLangPackage.BETWEEN_SCOPE: return createBetweenScope();
      case ContractLangPackage.AFTER_UNTIL_SCOPE: return createAfterUntilScope();
      case ContractLangPackage.PATTERN: return createPattern();
      case ContractLangPackage.OCCURRENCE: return createOccurrence();
      case ContractLangPackage.UNIVERSALITY_PATTERN: return createUniversalityPattern();
      case ContractLangPackage.ABSENCE_PATTERN: return createAbsencePattern();
      case ContractLangPackage.EXISTENCE_PATTERN: return createExistencePattern();
      case ContractLangPackage.BOUNDED_EXISTENCE_PATTERN: return createBoundedExistencePattern();
      case ContractLangPackage.TRANSIENT_STATE_PATTERN: return createTransientStatePattern();
      case ContractLangPackage.STEADY_STATE_PATTERN: return createSteadyStatePattern();
      case ContractLangPackage.MIN_DURATION_PATTERN: return createMinDurationPattern();
      case ContractLangPackage.MAX_DURATION_PATTERN: return createMaxDurationPattern();
      case ContractLangPackage.RECURRENCE_PATTERN: return createRecurrencePattern();
      case ContractLangPackage.PREC_STATEMENT: return createPrecStatement();
      case ContractLangPackage.ORDER: return createOrder();
      case ContractLangPackage.PRECEDENCE_PATTERN: return createPrecedencePattern();
      case ContractLangPackage.PRECEDENCE_CHAIN1_NPATTERN: return createPrecedenceChain1NPattern();
      case ContractLangPackage.UNTIL_PATTERN: return createUntilPattern();
      case ContractLangPackage.RESPONSE_PATTERN: return createResponsePattern();
      case ContractLangPackage.RESPONSE_CHAIN1_NPATTERN: return createResponseChain1NPattern();
      case ContractLangPackage.RESPONSE_CHAIN_N1_PATTERN: return createResponseChainN1Pattern();
      case ContractLangPackage.RESPONSE_INVARIANCE_PATTERN: return createResponseInvariancePattern();
      case ContractLangPackage.CONSTRAINT: return createConstraint();
      case ContractLangPackage.TIME: return createTime();
      case ContractLangPackage.TIME_INTERVAL: return createTimeInterval();
      case ContractLangPackage.UPPER_TIME_BOUND: return createUpperTimeBound();
      case ContractLangPackage.LOWER_TIME_BOUND: return createLowerTimeBound();
      case ContractLangPackage.SINGLE_TIME: return createSingleTime();
      case ContractLangPackage.TIME_UNIT: return createTimeUnit();
      case ContractLangPackage.PROBABILITY: return createProbability();
      case ContractLangPackage.PROB_LESS: return createProbLess();
      case ContractLangPackage.PROB_LESS_EQ: return createProbLessEq();
      case ContractLangPackage.PROB_GREATER: return createProbGreater();
      case ContractLangPackage.PROB_GREATER_EQ: return createProbGreaterEq();
      case ContractLangPackage.ACTION: return createAction();
      case ContractLangPackage.VAR_OR_VAR_OP: return createVarOrVarOp();
      case ContractLangPackage.OPERATOR: return createOperator();
      case ContractLangPackage.EXPRESSION: return createExpression();
      case ContractLangPackage.NUM_VALUE: return createNumValue();
      case ContractLangPackage.INFINITY: return createInfinity();
      case ContractLangPackage.INT_VALUE: return createIntValue();
      case ContractLangPackage.FLOAT_VALUE: return createFloatValue();
      case ContractLangPackage.UNIT: return createUnit();
      case ContractLangPackage.UNITLESS: return createUnitless();
      case ContractLangPackage.PERCENTAGE: return createPercentage();
      case ContractLangPackage.DERIVATIVE: return createDerivative();
      case ContractLangPackage.ABSOLUTE_VALUE: return createAbsoluteValue();
      case ContractLangPackage.DIFFERENCE: return createDifference();
      case ContractLangPackage.AVERAGE: return createAverage();
      case ContractLangPackage.EQUALITY: return createEquality();
      case ContractLangPackage.GREATER_THAN: return createGreaterThan();
      case ContractLangPackage.LESS_THAN: return createLessThan();
      case ContractLangPackage.AND_EXPRESSION: return createAndExpression();
      case ContractLangPackage.TRUE: return createTrue();
      case ContractLangPackage.FALSE: return createFalse();
      case ContractLangPackage.STRING_VALUE: return createStringValue();
      case ContractLangPackage.QUAL_VALUE: return createQualValue();
      case ContractLangPackage.INTERVAL: return createInterval();
      case ContractLangPackage.INTERVAL_BOUND: return createIntervalBound();
      case ContractLangPackage.OPEN_INTERVAL: return createOpenInterval();
      case ContractLangPackage.CLOSED_INTERVAL: return createClosedInterval();
      case ContractLangPackage.VALUE_WITH_UNIT: return createValueWithUnit();
      case ContractLangPackage.ASSIGN_ACTION: return createAssignAction();
      case ContractLangPackage.VALUE: return createValue();
      case ContractLangPackage.DOMAIN_VALUE: return createDomainValue();
      case ContractLangPackage.VARIABLE: return createVariable();
      case ContractLangPackage.FMU_PROPERTY: return createFMUProperty();
      case ContractLangPackage.FMU_INSTANCE: return createFMUInstance();
      case ContractLangPackage.FMU_SIGNAL: return createFMUSignal();
      case ContractLangPackage.STEADY_STATE_SUGGESTION: return createSteadyStateSuggestion();
      case ContractLangPackage.POWER_BOND_SUGGESTION: return createPowerBondSuggestion();
      case ContractLangPackage.COSIM_UNIT: return createCosimUnit();
      case ContractLangPackage.FREQUENCY: return createFrequency();
      case ContractLangPackage.SAHARA_PROPERTY: return createSAHARAProperty();
      case ContractLangPackage.SAHARA_S: return createSAHARA_S();
      case ContractLangPackage.SAHARA_E: return createSAHARA_E();
      case ContractLangPackage.SAHARA_C: return createSAHARA_C();
      case ContractLangPackage.SAHARA_UNIT: return createSAHARAUnit();
      case ContractLangPackage.METERS: return createMeters();
      case ContractLangPackage.METERS_PER_SECOND: return createMetersPerSecond();
      case ContractLangPackage.KILOMETERS: return createKilometers();
      case ContractLangPackage.KILOMETERS_PER_HOUR: return createKilometersPerHour();
      case ContractLangPackage.FORCE: return createForce();
      default:
        throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
    }
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Object createFromString(EDataType eDataType, String initialValue)
  {
    switch (eDataType.getClassifierID())
    {
      case ContractLangPackage.LOW_MED_HIGH:
        return createLOW_MED_HIGHFromString(eDataType, initialValue);
      case ContractLangPackage.FMU_PROPERTY_ENUM:
        return createFMUPropertyEnumFromString(eDataType, initialValue);
      case ContractLangPackage.SAHARA_PROPERTY_ENUM:
        return createSAHARAPropertyEnumFromString(eDataType, initialValue);
      case ContractLangPackage.SAHARA_SENUM:
        return createSAHARA_S_EnumFromString(eDataType, initialValue);
      case ContractLangPackage.SAHARA_EENUM:
        return createSAHARA_E_EnumFromString(eDataType, initialValue);
      case ContractLangPackage.SAHARA_CENUM:
        return createSAHARA_C_EnumFromString(eDataType, initialValue);
      default:
        throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
    }
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public String convertToString(EDataType eDataType, Object instanceValue)
  {
    switch (eDataType.getClassifierID())
    {
      case ContractLangPackage.LOW_MED_HIGH:
        return convertLOW_MED_HIGHToString(eDataType, instanceValue);
      case ContractLangPackage.FMU_PROPERTY_ENUM:
        return convertFMUPropertyEnumToString(eDataType, instanceValue);
      case ContractLangPackage.SAHARA_PROPERTY_ENUM:
        return convertSAHARAPropertyEnumToString(eDataType, instanceValue);
      case ContractLangPackage.SAHARA_SENUM:
        return convertSAHARA_S_EnumToString(eDataType, instanceValue);
      case ContractLangPackage.SAHARA_EENUM:
        return convertSAHARA_E_EnumToString(eDataType, instanceValue);
      case ContractLangPackage.SAHARA_CENUM:
        return convertSAHARA_C_EnumToString(eDataType, instanceValue);
      default:
        throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
    }
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Root createRoot()
  {
    RootImpl root = new RootImpl();
    return root;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public ContractSet createContractSet()
  {
    ContractSetImpl contractSet = new ContractSetImpl();
    return contractSet;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public ContractRef createContractRef()
  {
    ContractRefImpl contractRef = new ContractRefImpl();
    return contractRef;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Contract createContract()
  {
    ContractImpl contract = new ContractImpl();
    return contract;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Event createEvent()
  {
    EventImpl event = new EventImpl();
    return event;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Property createProperty()
  {
    PropertyImpl property = new PropertyImpl();
    return property;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public MetaStatement createMetaStatement()
  {
    MetaStatementImpl metaStatement = new MetaStatementImpl();
    return metaStatement;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public StatementRef createStatementRef()
  {
    StatementRefImpl statementRef = new StatementRefImpl();
    return statementRef;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Statement createStatement()
  {
    StatementImpl statement = new StatementImpl();
    return statement;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public StatementOp createStatementOp()
  {
    StatementOpImpl statementOp = new StatementOpImpl();
    return statementOp;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public StatementAnd createStatementAnd()
  {
    StatementAndImpl statementAnd = new StatementAndImpl();
    return statementAnd;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public StatementOr createStatementOr()
  {
    StatementOrImpl statementOr = new StatementOrImpl();
    return statementOr;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public StatementNot createStatementNot()
  {
    StatementNotImpl statementNot = new StatementNotImpl();
    return statementNot;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Scope createScope()
  {
    ScopeImpl scope = new ScopeImpl();
    return scope;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public GloballyScope createGloballyScope()
  {
    GloballyScopeImpl globallyScope = new GloballyScopeImpl();
    return globallyScope;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public BeforeScope createBeforeScope()
  {
    BeforeScopeImpl beforeScope = new BeforeScopeImpl();
    return beforeScope;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public AfterScope createAfterScope()
  {
    AfterScopeImpl afterScope = new AfterScopeImpl();
    return afterScope;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public BetweenScope createBetweenScope()
  {
    BetweenScopeImpl betweenScope = new BetweenScopeImpl();
    return betweenScope;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public AfterUntilScope createAfterUntilScope()
  {
    AfterUntilScopeImpl afterUntilScope = new AfterUntilScopeImpl();
    return afterUntilScope;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Pattern createPattern()
  {
    PatternImpl pattern = new PatternImpl();
    return pattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Occurrence createOccurrence()
  {
    OccurrenceImpl occurrence = new OccurrenceImpl();
    return occurrence;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public UniversalityPattern createUniversalityPattern()
  {
    UniversalityPatternImpl universalityPattern = new UniversalityPatternImpl();
    return universalityPattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public AbsencePattern createAbsencePattern()
  {
    AbsencePatternImpl absencePattern = new AbsencePatternImpl();
    return absencePattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public ExistencePattern createExistencePattern()
  {
    ExistencePatternImpl existencePattern = new ExistencePatternImpl();
    return existencePattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public BoundedExistencePattern createBoundedExistencePattern()
  {
    BoundedExistencePatternImpl boundedExistencePattern = new BoundedExistencePatternImpl();
    return boundedExistencePattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public TransientStatePattern createTransientStatePattern()
  {
    TransientStatePatternImpl transientStatePattern = new TransientStatePatternImpl();
    return transientStatePattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public SteadyStatePattern createSteadyStatePattern()
  {
    SteadyStatePatternImpl steadyStatePattern = new SteadyStatePatternImpl();
    return steadyStatePattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public MinDurationPattern createMinDurationPattern()
  {
    MinDurationPatternImpl minDurationPattern = new MinDurationPatternImpl();
    return minDurationPattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public MaxDurationPattern createMaxDurationPattern()
  {
    MaxDurationPatternImpl maxDurationPattern = new MaxDurationPatternImpl();
    return maxDurationPattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public RecurrencePattern createRecurrencePattern()
  {
    RecurrencePatternImpl recurrencePattern = new RecurrencePatternImpl();
    return recurrencePattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public PrecStatement createPrecStatement()
  {
    PrecStatementImpl precStatement = new PrecStatementImpl();
    return precStatement;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Order createOrder()
  {
    OrderImpl order = new OrderImpl();
    return order;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public PrecedencePattern createPrecedencePattern()
  {
    PrecedencePatternImpl precedencePattern = new PrecedencePatternImpl();
    return precedencePattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public PrecedenceChain1NPattern createPrecedenceChain1NPattern()
  {
    PrecedenceChain1NPatternImpl precedenceChain1NPattern = new PrecedenceChain1NPatternImpl();
    return precedenceChain1NPattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public UntilPattern createUntilPattern()
  {
    UntilPatternImpl untilPattern = new UntilPatternImpl();
    return untilPattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public ResponsePattern createResponsePattern()
  {
    ResponsePatternImpl responsePattern = new ResponsePatternImpl();
    return responsePattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public ResponseChain1NPattern createResponseChain1NPattern()
  {
    ResponseChain1NPatternImpl responseChain1NPattern = new ResponseChain1NPatternImpl();
    return responseChain1NPattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public ResponseChainN1Pattern createResponseChainN1Pattern()
  {
    ResponseChainN1PatternImpl responseChainN1Pattern = new ResponseChainN1PatternImpl();
    return responseChainN1Pattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public ResponseInvariancePattern createResponseInvariancePattern()
  {
    ResponseInvariancePatternImpl responseInvariancePattern = new ResponseInvariancePatternImpl();
    return responseInvariancePattern;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Constraint createConstraint()
  {
    ConstraintImpl constraint = new ConstraintImpl();
    return constraint;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Time createTime()
  {
    TimeImpl time = new TimeImpl();
    return time;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public TimeInterval createTimeInterval()
  {
    TimeIntervalImpl timeInterval = new TimeIntervalImpl();
    return timeInterval;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public UpperTimeBound createUpperTimeBound()
  {
    UpperTimeBoundImpl upperTimeBound = new UpperTimeBoundImpl();
    return upperTimeBound;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public LowerTimeBound createLowerTimeBound()
  {
    LowerTimeBoundImpl lowerTimeBound = new LowerTimeBoundImpl();
    return lowerTimeBound;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public SingleTime createSingleTime()
  {
    SingleTimeImpl singleTime = new SingleTimeImpl();
    return singleTime;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public TimeUnit createTimeUnit()
  {
    TimeUnitImpl timeUnit = new TimeUnitImpl();
    return timeUnit;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Probability createProbability()
  {
    ProbabilityImpl probability = new ProbabilityImpl();
    return probability;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public ProbLess createProbLess()
  {
    ProbLessImpl probLess = new ProbLessImpl();
    return probLess;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public ProbLessEq createProbLessEq()
  {
    ProbLessEqImpl probLessEq = new ProbLessEqImpl();
    return probLessEq;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public ProbGreater createProbGreater()
  {
    ProbGreaterImpl probGreater = new ProbGreaterImpl();
    return probGreater;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public ProbGreaterEq createProbGreaterEq()
  {
    ProbGreaterEqImpl probGreaterEq = new ProbGreaterEqImpl();
    return probGreaterEq;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Action createAction()
  {
    ActionImpl action = new ActionImpl();
    return action;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public VarOrVarOp createVarOrVarOp()
  {
    VarOrVarOpImpl varOrVarOp = new VarOrVarOpImpl();
    return varOrVarOp;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Operator createOperator()
  {
    OperatorImpl operator = new OperatorImpl();
    return operator;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Expression createExpression()
  {
    ExpressionImpl expression = new ExpressionImpl();
    return expression;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public NumValue createNumValue()
  {
    NumValueImpl numValue = new NumValueImpl();
    return numValue;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Infinity createInfinity()
  {
    InfinityImpl infinity = new InfinityImpl();
    return infinity;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public IntValue createIntValue()
  {
    IntValueImpl intValue = new IntValueImpl();
    return intValue;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public FloatValue createFloatValue()
  {
    FloatValueImpl floatValue = new FloatValueImpl();
    return floatValue;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Unit createUnit()
  {
    UnitImpl unit = new UnitImpl();
    return unit;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Unitless createUnitless()
  {
    UnitlessImpl unitless = new UnitlessImpl();
    return unitless;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Percentage createPercentage()
  {
    PercentageImpl percentage = new PercentageImpl();
    return percentage;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Derivative createDerivative()
  {
    DerivativeImpl derivative = new DerivativeImpl();
    return derivative;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public AbsoluteValue createAbsoluteValue()
  {
    AbsoluteValueImpl absoluteValue = new AbsoluteValueImpl();
    return absoluteValue;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Difference createDifference()
  {
    DifferenceImpl difference = new DifferenceImpl();
    return difference;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Average createAverage()
  {
    AverageImpl average = new AverageImpl();
    return average;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Equality createEquality()
  {
    EqualityImpl equality = new EqualityImpl();
    return equality;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public GreaterThan createGreaterThan()
  {
    GreaterThanImpl greaterThan = new GreaterThanImpl();
    return greaterThan;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public LessThan createLessThan()
  {
    LessThanImpl lessThan = new LessThanImpl();
    return lessThan;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public AndExpression createAndExpression()
  {
    AndExpressionImpl andExpression = new AndExpressionImpl();
    return andExpression;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public True createTrue()
  {
    TrueImpl true_ = new TrueImpl();
    return true_;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public False createFalse()
  {
    FalseImpl false_ = new FalseImpl();
    return false_;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public StringValue createStringValue()
  {
    StringValueImpl stringValue = new StringValueImpl();
    return stringValue;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public QualValue createQualValue()
  {
    QualValueImpl qualValue = new QualValueImpl();
    return qualValue;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Interval createInterval()
  {
    IntervalImpl interval = new IntervalImpl();
    return interval;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public IntervalBound createIntervalBound()
  {
    IntervalBoundImpl intervalBound = new IntervalBoundImpl();
    return intervalBound;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public OpenInterval createOpenInterval()
  {
    OpenIntervalImpl openInterval = new OpenIntervalImpl();
    return openInterval;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public ClosedInterval createClosedInterval()
  {
    ClosedIntervalImpl closedInterval = new ClosedIntervalImpl();
    return closedInterval;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public ValueWithUnit createValueWithUnit()
  {
    ValueWithUnitImpl valueWithUnit = new ValueWithUnitImpl();
    return valueWithUnit;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public AssignAction createAssignAction()
  {
    AssignActionImpl assignAction = new AssignActionImpl();
    return assignAction;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Value createValue()
  {
    ValueImpl value = new ValueImpl();
    return value;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public DomainValue createDomainValue()
  {
    DomainValueImpl domainValue = new DomainValueImpl();
    return domainValue;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Variable createVariable()
  {
    VariableImpl variable = new VariableImpl();
    return variable;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public FMUProperty createFMUProperty()
  {
    FMUPropertyImpl fmuProperty = new FMUPropertyImpl();
    return fmuProperty;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public FMUInstance createFMUInstance()
  {
    FMUInstanceImpl fmuInstance = new FMUInstanceImpl();
    return fmuInstance;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public FMUSignal createFMUSignal()
  {
    FMUSignalImpl fmuSignal = new FMUSignalImpl();
    return fmuSignal;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public SteadyStateSuggestion createSteadyStateSuggestion()
  {
    SteadyStateSuggestionImpl steadyStateSuggestion = new SteadyStateSuggestionImpl();
    return steadyStateSuggestion;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public PowerBondSuggestion createPowerBondSuggestion()
  {
    PowerBondSuggestionImpl powerBondSuggestion = new PowerBondSuggestionImpl();
    return powerBondSuggestion;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public CosimUnit createCosimUnit()
  {
    CosimUnitImpl cosimUnit = new CosimUnitImpl();
    return cosimUnit;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Frequency createFrequency()
  {
    FrequencyImpl frequency = new FrequencyImpl();
    return frequency;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public SAHARAProperty createSAHARAProperty()
  {
    SAHARAPropertyImpl saharaProperty = new SAHARAPropertyImpl();
    return saharaProperty;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public SAHARA_S createSAHARA_S()
  {
    SAHARA_SImpl saharA_S = new SAHARA_SImpl();
    return saharA_S;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public SAHARA_E createSAHARA_E()
  {
    SAHARA_EImpl saharA_E = new SAHARA_EImpl();
    return saharA_E;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public SAHARA_C createSAHARA_C()
  {
    SAHARA_CImpl saharA_C = new SAHARA_CImpl();
    return saharA_C;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public SAHARAUnit createSAHARAUnit()
  {
    SAHARAUnitImpl saharaUnit = new SAHARAUnitImpl();
    return saharaUnit;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Meters createMeters()
  {
    MetersImpl meters = new MetersImpl();
    return meters;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public MetersPerSecond createMetersPerSecond()
  {
    MetersPerSecondImpl metersPerSecond = new MetersPerSecondImpl();
    return metersPerSecond;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Kilometers createKilometers()
  {
    KilometersImpl kilometers = new KilometersImpl();
    return kilometers;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public KilometersPerHour createKilometersPerHour()
  {
    KilometersPerHourImpl kilometersPerHour = new KilometersPerHourImpl();
    return kilometersPerHour;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Force createForce()
  {
    ForceImpl force = new ForceImpl();
    return force;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public LOW_MED_HIGH createLOW_MED_HIGHFromString(EDataType eDataType, String initialValue)
  {
    LOW_MED_HIGH result = LOW_MED_HIGH.get(initialValue);
    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
    return result;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public String convertLOW_MED_HIGHToString(EDataType eDataType, Object instanceValue)
  {
    return instanceValue == null ? null : instanceValue.toString();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public FMUPropertyEnum createFMUPropertyEnumFromString(EDataType eDataType, String initialValue)
  {
    FMUPropertyEnum result = FMUPropertyEnum.get(initialValue);
    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
    return result;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public String convertFMUPropertyEnumToString(EDataType eDataType, Object instanceValue)
  {
    return instanceValue == null ? null : instanceValue.toString();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public SAHARAPropertyEnum createSAHARAPropertyEnumFromString(EDataType eDataType, String initialValue)
  {
    SAHARAPropertyEnum result = SAHARAPropertyEnum.get(initialValue);
    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
    return result;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public String convertSAHARAPropertyEnumToString(EDataType eDataType, Object instanceValue)
  {
    return instanceValue == null ? null : instanceValue.toString();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public SAHARA_S_Enum createSAHARA_S_EnumFromString(EDataType eDataType, String initialValue)
  {
    SAHARA_S_Enum result = SAHARA_S_Enum.get(initialValue);
    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
    return result;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public String convertSAHARA_S_EnumToString(EDataType eDataType, Object instanceValue)
  {
    return instanceValue == null ? null : instanceValue.toString();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public SAHARA_E_Enum createSAHARA_E_EnumFromString(EDataType eDataType, String initialValue)
  {
    SAHARA_E_Enum result = SAHARA_E_Enum.get(initialValue);
    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
    return result;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public String convertSAHARA_E_EnumToString(EDataType eDataType, Object instanceValue)
  {
    return instanceValue == null ? null : instanceValue.toString();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public SAHARA_C_Enum createSAHARA_C_EnumFromString(EDataType eDataType, String initialValue)
  {
    SAHARA_C_Enum result = SAHARA_C_Enum.get(initialValue);
    if (result == null) throw new IllegalArgumentException("The value '" + initialValue + "' is not a valid enumerator of '" + eDataType.getName() + "'");
    return result;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public String convertSAHARA_C_EnumToString(EDataType eDataType, Object instanceValue)
  {
    return instanceValue == null ? null : instanceValue.toString();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public ContractLangPackage getContractLangPackage()
  {
    return (ContractLangPackage)getEPackage();
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @deprecated
   * @generated
   */
  @Deprecated
  public static ContractLangPackage getPackage()
  {
    return ContractLangPackage.eINSTANCE;
  }

} //ContractLangFactoryImpl
