/**
 * <copyright>
 * </copyright>
 *

 */
package jp.ac.jaist.kslab.e4.dsl.e4Dsl.impl;

import jp.ac.jaist.kslab.e4.dsl.e4Dsl.*;

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;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model <b>Factory</b>.
 * <!-- end-user-doc -->
 * @generated
 */
public class E4DslFactoryImpl extends EFactoryImpl implements E4DslFactory
{
  /**
   * Creates the default factory implementation.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public static E4DslFactory init()
  {
    try
    {
      E4DslFactory theE4DslFactory = (E4DslFactory)EPackage.Registry.INSTANCE.getEFactory("http://www.ac.jp/jaist/kslab/e4/dsl/E4Dsl"); 
      if (theE4DslFactory != null)
      {
        return theE4DslFactory;
      }
    }
    catch (Exception exception)
    {
      EcorePlugin.INSTANCE.log(exception);
    }
    return new E4DslFactoryImpl();
  }

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

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  @Override
  public EObject create(EClass eClass)
  {
    switch (eClass.getClassifierID())
    {
      case E4DslPackage.APPLICATION: return createApplication();
      case E4DslPackage.ABS_WINDOW: return createAbsWindow();
      case E4DslPackage.WINDOW: return createWindow();
      case E4DslPackage.TRIMMED_WINDOW: return createTrimmedWindow();
      case E4DslPackage.ABS_PART: return createAbsPart();
      case E4DslPackage.PART: return createPart();
      case E4DslPackage.XWT_PART: return createXWTPart();
      case E4DslPackage.LAYOUT: return createLayout();
      case E4DslPackage.ABS_CONTROLS: return createAbsControls();
      case E4DslPackage.CONTROLS: return createControls();
      case E4DslPackage.BROWSER: return createBrowser();
      case E4DslPackage.BUTTON: return createButton();
      case E4DslPackage.CCOMBO: return createCCombo();
      case E4DslPackage.CLABEL: return createCLabel();
      case E4DslPackage.COMBO: return createCombo();
      case E4DslPackage.DATE_TIME: return createDateTime();
      case E4DslPackage.LABEL: return createLabel();
      case E4DslPackage.LINK: return createLink();
      case E4DslPackage.LIST: return createList();
      case E4DslPackage.PROGRESS_BAR: return createProgressBar();
      case E4DslPackage.SASH: return createSash();
      case E4DslPackage.SCALE: return createScale();
      case E4DslPackage.SLIDER: return createSlider();
      case E4DslPackage.SPINNER: return createSpinner();
      case E4DslPackage.SEPARATOR: return createSeparator();
      case E4DslPackage.STYLED_TEXT: return createStyledText();
      case E4DslPackage.TEXT: return createText();
      case E4DslPackage.SIZE: return createSize();
      case E4DslPackage.COMMAND: return createCommand();
      case E4DslPackage.BINDING: return createBinding();
      case E4DslPackage.ABS_MENU: return createAbsMenu();
      case E4DslPackage.MENU: return createMenu();
      case E4DslPackage.HANDLED_MENU_ITEM: return createHandledMenuItem();
      case E4DslPackage.DIRECT_MENU_ITEM: return createDirectMenuItem();
      case E4DslPackage.TOOL_BAR: return createToolBar();
      case E4DslPackage.TOOL_ITEM: return createToolItem();
      default:
        throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
    }
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Application createApplication()
  {
    ApplicationImpl application = new ApplicationImpl();
    return application;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public AbsWindow createAbsWindow()
  {
    AbsWindowImpl absWindow = new AbsWindowImpl();
    return absWindow;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Window createWindow()
  {
    WindowImpl window = new WindowImpl();
    return window;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public TrimmedWindow createTrimmedWindow()
  {
    TrimmedWindowImpl trimmedWindow = new TrimmedWindowImpl();
    return trimmedWindow;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public AbsPart createAbsPart()
  {
    AbsPartImpl absPart = new AbsPartImpl();
    return absPart;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Part createPart()
  {
    PartImpl part = new PartImpl();
    return part;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public XWTPart createXWTPart()
  {
    XWTPartImpl xwtPart = new XWTPartImpl();
    return xwtPart;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Layout createLayout()
  {
    LayoutImpl layout = new LayoutImpl();
    return layout;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public AbsControls createAbsControls()
  {
    AbsControlsImpl absControls = new AbsControlsImpl();
    return absControls;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Controls createControls()
  {
    ControlsImpl controls = new ControlsImpl();
    return controls;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Browser createBrowser()
  {
    BrowserImpl browser = new BrowserImpl();
    return browser;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Button createButton()
  {
    ButtonImpl button = new ButtonImpl();
    return button;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public CCombo createCCombo()
  {
    CComboImpl cCombo = new CComboImpl();
    return cCombo;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public CLabel createCLabel()
  {
    CLabelImpl cLabel = new CLabelImpl();
    return cLabel;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Combo createCombo()
  {
    ComboImpl combo = new ComboImpl();
    return combo;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public DateTime createDateTime()
  {
    DateTimeImpl dateTime = new DateTimeImpl();
    return dateTime;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Label createLabel()
  {
    LabelImpl label = new LabelImpl();
    return label;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Link createLink()
  {
    LinkImpl link = new LinkImpl();
    return link;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public List createList()
  {
    ListImpl list = new ListImpl();
    return list;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public ProgressBar createProgressBar()
  {
    ProgressBarImpl progressBar = new ProgressBarImpl();
    return progressBar;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Sash createSash()
  {
    SashImpl sash = new SashImpl();
    return sash;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Scale createScale()
  {
    ScaleImpl scale = new ScaleImpl();
    return scale;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Slider createSlider()
  {
    SliderImpl slider = new SliderImpl();
    return slider;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Spinner createSpinner()
  {
    SpinnerImpl spinner = new SpinnerImpl();
    return spinner;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Separator createSeparator()
  {
    SeparatorImpl separator = new SeparatorImpl();
    return separator;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public StyledText createStyledText()
  {
    StyledTextImpl styledText = new StyledTextImpl();
    return styledText;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Text createText()
  {
    TextImpl text = new TextImpl();
    return text;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Size createSize()
  {
    SizeImpl size = new SizeImpl();
    return size;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Command createCommand()
  {
    CommandImpl command = new CommandImpl();
    return command;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Binding createBinding()
  {
    BindingImpl binding = new BindingImpl();
    return binding;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public AbsMenu createAbsMenu()
  {
    AbsMenuImpl absMenu = new AbsMenuImpl();
    return absMenu;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public Menu createMenu()
  {
    MenuImpl menu = new MenuImpl();
    return menu;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public HandledMenuItem createHandledMenuItem()
  {
    HandledMenuItemImpl handledMenuItem = new HandledMenuItemImpl();
    return handledMenuItem;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public DirectMenuItem createDirectMenuItem()
  {
    DirectMenuItemImpl directMenuItem = new DirectMenuItemImpl();
    return directMenuItem;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public ToolBar createToolBar()
  {
    ToolBarImpl toolBar = new ToolBarImpl();
    return toolBar;
  }

  /**
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   * @generated
   */
  public ToolItem createToolItem()
  {
    ToolItemImpl toolItem = new ToolItemImpl();
    return toolItem;
  }

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

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

} //E4DslFactoryImpl
