code: /**
   */
  package IFML.Core.impl;
  
  import IFML.Core.*;
  
  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 CoreFactoryImpl extends EFactoryImpl implements CoreFactory {
  	/**
  	 * Creates the default factory implementation.
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public static CoreFactory init() {
  		try {
  			CoreFactory theCoreFactory = (CoreFactory)EPackage.Registry.INSTANCE.getEFactory(CorePackage.eNS_URI);
  			if (theCoreFactory != null) {
  				return theCoreFactory;
  			}
  		}
  		catch (Exception exception) {
  			EcorePlugin.INSTANCE.log(exception);
  		}
  		return new CoreFactoryImpl();
  	}
  
  	/**
  	 * Creates an instance of the factory.
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public CoreFactoryImpl() {
  		super();
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	@Override
  	public EObject create(EClass eClass) {
  		switch (eClass.getClassifierID()) {
  			case CorePackage.ACTION_EVENT: return createActionEvent();
  			case CorePackage.DOMAIN_MODEL: return createDomainModel();
  			case CorePackage.INTERACTION_FLOW_EXPRESSION: return createInteractionFlowExpression();
  			case CorePackage.SYSTEM_EVENT: return createSystemEvent();
  			case CorePackage.PARAMETER_BINDING: return createParameterBinding();
  			case CorePackage.PORT_DEFINITION: return createPortDefinition();
  			case CorePackage.VIEW_ELEMENT: return createViewElement();
  			case CorePackage.DYNAMIC_BEHAVIOR: return createDynamicBehavior();
  			case CorePackage.VIEWPOINT: return createViewpoint();
  			case CorePackage.DATA_FLOW: return createDataFlow();
  			case CorePackage.VIEW_COMPONENT_PART: return createViewComponentPart();
  			case CorePackage.VIEW_CONTAINER: return createViewContainer();
  			case CorePackage.ACTIVATION_EXPRESSION: return createActivationExpression();
  			case CorePackage.INTERACTION_FLOW_MODEL: return createInteractionFlowModel();
  			case CorePackage.CONTEXT_DIMENSION: return createContextDimension();
  			case CorePackage.IFML_MODEL: return createIFMLModel();
  			case CorePackage.MODULE_DEFINITION: return createModuleDefinition();
  			case CorePackage.BOOLEAN_EXPRESSION: return createBooleanExpression();
  			case CorePackage.IFML_ACTION: return createIFMLAction();
  			case CorePackage.NAVIGATION_FLOW: return createNavigationFlow();
  			case CorePackage.PARAMETER_BINDING_GROUP: return createParameterBindingGroup();
  			case CorePackage.CONSTRAINT: return createConstraint();
  			case CorePackage.VIEW_COMPONENT: return createViewComponent();
  			case CorePackage.IFML_PARAMETER: return createIFMLParameter();
  			case CorePackage.DATA_BINDING: return createDataBinding();
  			case CorePackage.CONDITIONAL_EXPRESSION: return createConditionalExpression();
  			case CorePackage.CONTEXT: return createContext();
  			case CorePackage.VISUALIZATION_ATTRIBUTE: return createVisualizationAttribute();
  			case CorePackage.EVENT: return createEvent();
  			case CorePackage.VIEW_ELEMENT_EVENT: return createViewElementEvent();
  			case CorePackage.ANNOTATION: return createAnnotation();
  			case CorePackage.MODULE_PACKAGE: return createModulePackage();
  			case CorePackage.MODULARIZATION_ELEMENT: return createModularizationElement();
  			case CorePackage.IFML_MODULE: return createIFMLModule();
  			case CorePackage.IFML_PORT: return createIFMLPort();
  			case CorePackage.CATCHING_EVENT: return createCatchingEvent();
  			case CorePackage.THROWING_EVENT: return createThrowingEvent();
  			case CorePackage.BPMN_ACTIVITY_CONCEPT: return createBPMNActivityConcept();
  			case CorePackage.CONTEXT_VARIABLE: return createContextVariable();
  			case CorePackage.SIMPLE_CONTEXT_VARIABLE: return createSimpleContextVariable();
  			case CorePackage.DATA_CONTEXT_VARIABLE: return createDataContextVariable();
  			case CorePackage.DOMAIN_CONCEPT: return createDomainConcept();
  			case CorePackage.FEATURE_CONCEPT: return createFeatureConcept();
  			case CorePackage.BEHAVIOR_CONCEPT: return createBehaviorConcept();
  			case CorePackage.BEHAVIORAL_FEATURE_CONCEPT: return createBehavioralFeatureConcept();
  			case CorePackage.UML_BEHAVIOR: return createUMLBehavior();
  			case CorePackage.UML_BEHAVIORAL_FEATURE: return createUMLBehavioralFeature();
  			case CorePackage.UML_DOMAIN_CONCEPT: return createUMLDomainConcept();
  			case CorePackage.UML_STRUCTURAL_FEATURE: return createUMLStructuralFeature();
  			case CorePackage.ACTIVITY_CONCEPT: return createActivityConcept();
  			case CorePackage.DOMAIN_ELEMENT: return createDomainElement();
  			default:
  				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
  		}
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public InteractionFlowExpression createInteractionFlowExpression() {
  		InteractionFlowExpressionImpl interactionFlowExpression = new InteractionFlowExpressionImpl();
  		return interactionFlowExpression;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public SystemEvent createSystemEvent() {
  		SystemEventImpl systemEvent = new SystemEventImpl();
  		return systemEvent;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ParameterBinding createParameterBinding() {
  		ParameterBindingImpl parameterBinding = new ParameterBindingImpl();
  		return parameterBinding;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ActionEvent createActionEvent() {
  		ActionEventImpl actionEvent = new ActionEventImpl();
  		return actionEvent;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public DomainModel createDomainModel() {
  		DomainModelImpl domainModel = new DomainModelImpl();
  		return domainModel;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public PortDefinition createPortDefinition() {
  		PortDefinitionImpl portDefinition = new PortDefinitionImpl();
  		return portDefinition;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ViewElement createViewElement() {
  		ViewElementImpl viewElement = new ViewElementImpl();
  		return viewElement;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public DynamicBehavior createDynamicBehavior() {
  		DynamicBehaviorImpl dynamicBehavior = new DynamicBehaviorImpl();
  		return dynamicBehavior;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public Viewpoint createViewpoint() {
  		ViewpointImpl viewpoint = new ViewpointImpl();
  		return viewpoint;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public DataFlow createDataFlow() {
  		DataFlowImpl dataFlow = new DataFlowImpl();
  		return dataFlow;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ViewComponentPart createViewComponentPart() {
  		ViewComponentPartImpl viewComponentPart = new ViewComponentPartImpl();
  		return viewComponentPart;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ViewContainer createViewContainer() {
  		ViewContainerImpl viewContainer = new ViewContainerImpl();
  		return viewContainer;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ActivationExpression createActivationExpression() {
  		ActivationExpressionImpl activationExpression = new ActivationExpressionImpl();
  		return activationExpression;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public InteractionFlowModel createInteractionFlowModel() {
  		InteractionFlowModelImpl interactionFlowModel = new InteractionFlowModelImpl();
  		return interactionFlowModel;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ContextDimension createContextDimension() {
  		ContextDimensionImpl contextDimension = new ContextDimensionImpl();
  		return contextDimension;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public IFMLModel createIFMLModel() {
  		IFMLModelImpl ifmlModel = new IFMLModelImpl();
  		return ifmlModel;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ModuleDefinition createModuleDefinition() {
  		ModuleDefinitionImpl moduleDefinition = new ModuleDefinitionImpl();
  		return moduleDefinition;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public BooleanExpression createBooleanExpression() {
  		BooleanExpressionImpl booleanExpression = new BooleanExpressionImpl();
  		return booleanExpression;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public IFMLAction createIFMLAction() {
  		IFMLActionImpl ifmlAction = new IFMLActionImpl();
  		return ifmlAction;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public NavigationFlow createNavigationFlow() {
  		NavigationFlowImpl navigationFlow = new NavigationFlowImpl();
  		return navigationFlow;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ParameterBindingGroup createParameterBindingGroup() {
  		ParameterBindingGroupImpl parameterBindingGroup = new ParameterBindingGroupImpl();
  		return parameterBindingGroup;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public Constraint createConstraint() {
  		ConstraintImpl constraint = new ConstraintImpl();
  		return constraint;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ViewComponent createViewComponent() {
  		ViewComponentImpl viewComponent = new ViewComponentImpl();
  		return viewComponent;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public IFMLParameter createIFMLParameter() {
  		IFMLParameterImpl ifmlParameter = new IFMLParameterImpl();
  		return ifmlParameter;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public DataBinding createDataBinding() {
  		DataBindingImpl dataBinding = new DataBindingImpl();
  		return dataBinding;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ConditionalExpression createConditionalExpression() {
  		ConditionalExpressionImpl conditionalExpression = new ConditionalExpressionImpl();
  		return conditionalExpression;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public Context createContext() {
  		ContextImpl context = new ContextImpl();
  		return context;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public VisualizationAttribute createVisualizationAttribute() {
  		VisualizationAttributeImpl visualizationAttribute = new VisualizationAttributeImpl();
  		return visualizationAttribute;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public Event createEvent() {
  		EventImpl event = new EventImpl();
  		return event;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ViewElementEvent createViewElementEvent() {
  		ViewElementEventImpl viewElementEvent = new ViewElementEventImpl();
  		return viewElementEvent;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public Annotation createAnnotation() {
  		AnnotationImpl annotation = new AnnotationImpl();
  		return annotation;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ModulePackage createModulePackage() {
  		ModulePackageImpl modulePackage = new ModulePackageImpl();
  		return modulePackage;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ModularizationElement createModularizationElement() {
  		ModularizationElementImpl modularizationElement = new ModularizationElementImpl();
  		return modularizationElement;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public IFMLModule createIFMLModule() {
  		IFMLModuleImpl ifmlModule = new IFMLModuleImpl();
  		return ifmlModule;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public IFMLPort createIFMLPort() {
  		IFMLPortImpl ifmlPort = new IFMLPortImpl();
  		return ifmlPort;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public CatchingEvent createCatchingEvent() {
  		CatchingEventImpl catchingEvent = new CatchingEventImpl();
  		return catchingEvent;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ThrowingEvent createThrowingEvent() {
  		ThrowingEventImpl throwingEvent = new ThrowingEventImpl();
  		return throwingEvent;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public BPMNActivityConcept createBPMNActivityConcept() {
  		BPMNActivityConceptImpl bpmnActivityConcept = new BPMNActivityConceptImpl();
  		return bpmnActivityConcept;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ContextVariable createContextVariable() {
  		ContextVariableImpl contextVariable = new ContextVariableImpl();
  		return contextVariable;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public SimpleContextVariable createSimpleContextVariable() {
  		SimpleContextVariableImpl simpleContextVariable = new SimpleContextVariableImpl();
  		return simpleContextVariable;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public DataContextVariable createDataContextVariable() {
  		DataContextVariableImpl dataContextVariable = new DataContextVariableImpl();
  		return dataContextVariable;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public DomainConcept createDomainConcept() {
  		DomainConceptImpl domainConcept = new DomainConceptImpl();
  		return domainConcept;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public FeatureConcept createFeatureConcept() {
  		FeatureConceptImpl featureConcept = new FeatureConceptImpl();
  		return featureConcept;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public BehaviorConcept createBehaviorConcept() {
  		BehaviorConceptImpl behaviorConcept = new BehaviorConceptImpl();
  		return behaviorConcept;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public BehavioralFeatureConcept createBehavioralFeatureConcept() {
  		BehavioralFeatureConceptImpl behavioralFeatureConcept = new BehavioralFeatureConceptImpl();
  		return behavioralFeatureConcept;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public UMLBehavior createUMLBehavior() {
  		UMLBehaviorImpl umlBehavior = new UMLBehaviorImpl();
  		return umlBehavior;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public UMLBehavioralFeature createUMLBehavioralFeature() {
  		UMLBehavioralFeatureImpl umlBehavioralFeature = new UMLBehavioralFeatureImpl();
  		return umlBehavioralFeature;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public UMLDomainConcept createUMLDomainConcept() {
  		UMLDomainConceptImpl umlDomainConcept = new UMLDomainConceptImpl();
  		return umlDomainConcept;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public UMLStructuralFeature createUMLStructuralFeature() {
  		UMLStructuralFeatureImpl umlStructuralFeature = new UMLStructuralFeatureImpl();
  		return umlStructuralFeature;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public ActivityConcept createActivityConcept() {
  		ActivityConceptImpl activityConcept = new ActivityConceptImpl();
  		return activityConcept;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public DomainElement createDomainElement() {
  		DomainElementImpl domainElement = new DomainElementImpl();
  		return domainElement;
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @generated
  	 */
  	public CorePackage getCorePackage() {
  		return (CorePackage)getEPackage();
  	}
  
  	/**
  	 * <!-- begin-user-doc -->
  	 * <!-- end-user-doc -->
  	 * @deprecated
  	 * @generated
  	 */
  	@Deprecated
  	public static CorePackage getPackage() {
  		return CorePackage.eINSTANCE;
  	}
  
  } //CoreFactoryImpl
  