/**
 * generated by Xtext 2.26.0
 */
package org.xtext.example.mydsl.myDsl.impl;

import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;

import org.eclipse.emf.ecore.impl.EFactoryImpl;

import org.eclipse.emf.ecore.plugin.EcorePlugin;

import org.xtext.example.mydsl.myDsl.*;

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

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

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public EObject create(EClass eClass)
  {
    switch (eClass.getClassifierID())
    {
      case MyDslPackage.PROBLEM_SPECIFICATION: return createProblemSpecification();
      case MyDslPackage.TASKS_MODEL: return createTasksModel();
      case MyDslPackage.ATOMIC_TASK: return createAtomicTask();
      case MyDslPackage.COMPOUND_TASK: return createCompoundTask();
      case MyDslPackage.WORLD_MODEL: return createWorldModel();
      case MyDslPackage.LOCATION: return createLocation();
      case MyDslPackage.PATHS: return createPaths();
      case MyDslPackage.ROBOTS_MODEL: return createRobotsModel();
      case MyDslPackage.CAPABILITY: return createCapability();
      case MyDslPackage.ROBOT: return createRobot();
      case MyDslPackage.ROBOTS2TASKS_PERFORMANCE: return createRobots2tasksPerformance();
      case MyDslPackage.MISSION: return createMission();
      case MyDslPackage.ATOMIC_TASK_NO_LOC: return createAtomicTaskNoLoc();
      case MyDslPackage.ATOMIC_TASK_LOC: return createAtomicTaskLoc();
      case MyDslPackage.COMP_TASK_NO_LOC: return createCompTaskNoLoc();
      case MyDslPackage.COMP_TASK_ONE_LOC: return createCompTaskOneLoc();
      case MyDslPackage.COMP_TASK_LIST_LOC: return createCompTaskListLoc();
      case MyDslPackage.COMP_TASK_AT_BUT: return createCompTaskAtBut();
      case MyDslPackage.COMP_TASK_STATED_BUT: return createCompTaskStatedBut();
      case MyDslPackage.QO_S: return createQoS();
      case MyDslPackage.ALL_ROBOTS_XX: return createAllRobotsXX();
      case MyDslPackage.ALL_ROBOTS_X: return createAllRobotsX();
      case MyDslPackage.ROBOTS_XX: return createRobotsXX();
      case MyDslPackage.ROBOTS_X: return createRobotsX();
      case MyDslPackage.ALL_ROBOTS_DEPLOY: return createAllRobotsDeploy();
      case MyDslPackage.TIME_AVAILABLE: return createTimeAvailable();
      case MyDslPackage.NUM_ALLOCATIONS: return createNumAllocations();
      case MyDslPackage.NUM_POPULATION: return createNumPopulation();
      case MyDslPackage.NUM_EVALUATIONS: return createNumEvaluations();
      case MyDslPackage.LOCATION_OR_SPACE: return createLocationOrSpace();
      default:
        throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
    }
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public ProblemSpecification createProblemSpecification()
  {
    ProblemSpecificationImpl problemSpecification = new ProblemSpecificationImpl();
    return problemSpecification;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public TasksModel createTasksModel()
  {
    TasksModelImpl tasksModel = new TasksModelImpl();
    return tasksModel;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public AtomicTask createAtomicTask()
  {
    AtomicTaskImpl atomicTask = new AtomicTaskImpl();
    return atomicTask;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public CompoundTask createCompoundTask()
  {
    CompoundTaskImpl compoundTask = new CompoundTaskImpl();
    return compoundTask;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public WorldModel createWorldModel()
  {
    WorldModelImpl worldModel = new WorldModelImpl();
    return worldModel;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Location createLocation()
  {
    LocationImpl location = new LocationImpl();
    return location;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Paths createPaths()
  {
    PathsImpl paths = new PathsImpl();
    return paths;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public RobotsModel createRobotsModel()
  {
    RobotsModelImpl robotsModel = new RobotsModelImpl();
    return robotsModel;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Capability createCapability()
  {
    CapabilityImpl capability = new CapabilityImpl();
    return capability;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Robot createRobot()
  {
    RobotImpl robot = new RobotImpl();
    return robot;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Robots2tasksPerformance createRobots2tasksPerformance()
  {
    Robots2tasksPerformanceImpl robots2tasksPerformance = new Robots2tasksPerformanceImpl();
    return robots2tasksPerformance;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public Mission createMission()
  {
    MissionImpl mission = new MissionImpl();
    return mission;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public AtomicTaskNoLoc createAtomicTaskNoLoc()
  {
    AtomicTaskNoLocImpl atomicTaskNoLoc = new AtomicTaskNoLocImpl();
    return atomicTaskNoLoc;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public AtomicTaskLoc createAtomicTaskLoc()
  {
    AtomicTaskLocImpl atomicTaskLoc = new AtomicTaskLocImpl();
    return atomicTaskLoc;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public CompTaskNoLoc createCompTaskNoLoc()
  {
    CompTaskNoLocImpl compTaskNoLoc = new CompTaskNoLocImpl();
    return compTaskNoLoc;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public CompTaskOneLoc createCompTaskOneLoc()
  {
    CompTaskOneLocImpl compTaskOneLoc = new CompTaskOneLocImpl();
    return compTaskOneLoc;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public CompTaskListLoc createCompTaskListLoc()
  {
    CompTaskListLocImpl compTaskListLoc = new CompTaskListLocImpl();
    return compTaskListLoc;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public CompTaskAtBut createCompTaskAtBut()
  {
    CompTaskAtButImpl compTaskAtBut = new CompTaskAtButImpl();
    return compTaskAtBut;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public CompTaskStatedBut createCompTaskStatedBut()
  {
    CompTaskStatedButImpl compTaskStatedBut = new CompTaskStatedButImpl();
    return compTaskStatedBut;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public QoS createQoS()
  {
    QoSImpl qoS = new QoSImpl();
    return qoS;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public AllRobotsXX createAllRobotsXX()
  {
    AllRobotsXXImpl allRobotsXX = new AllRobotsXXImpl();
    return allRobotsXX;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public AllRobotsX createAllRobotsX()
  {
    AllRobotsXImpl allRobotsX = new AllRobotsXImpl();
    return allRobotsX;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public RobotsXX createRobotsXX()
  {
    RobotsXXImpl robotsXX = new RobotsXXImpl();
    return robotsXX;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public RobotsX createRobotsX()
  {
    RobotsXImpl robotsX = new RobotsXImpl();
    return robotsX;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public AllRobotsDeploy createAllRobotsDeploy()
  {
    AllRobotsDeployImpl allRobotsDeploy = new AllRobotsDeployImpl();
    return allRobotsDeploy;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public TimeAvailable createTimeAvailable()
  {
    TimeAvailableImpl timeAvailable = new TimeAvailableImpl();
    return timeAvailable;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public NumAllocations createNumAllocations()
  {
    NumAllocationsImpl numAllocations = new NumAllocationsImpl();
    return numAllocations;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public NumPopulation createNumPopulation()
  {
    NumPopulationImpl numPopulation = new NumPopulationImpl();
    return numPopulation;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public NumEvaluations createNumEvaluations()
  {
    NumEvaluationsImpl numEvaluations = new NumEvaluationsImpl();
    return numEvaluations;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public LocationOrSpace createLocationOrSpace()
  {
    LocationOrSpaceImpl locationOrSpace = new LocationOrSpaceImpl();
    return locationOrSpace;
  }

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

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

} //MyDslFactoryImpl
