/**
*/
package epc.impl;
import epc.EPCConnection;
import epc.EPCDiagramElement;
import epc.EPCFlowNode;
import epc.EPCLogicGate;
import epc.EPCModel;
import epc.EPCObject;
import epc.EpcFactory;
import epc.EpcPackage;
import epc.Event;
import epc.EventType;
import epc.FlowConnection;
import epc.Function;
import epc.JoinLogicGate;
import epc.LogicGateType;
import epc.Page;
import epc.Resource;
import epc.ResourceInputConnection;
import epc.ResourceOutputConnection;
import epc.SplitLogicGate;
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 uuid.UuidPackage;
import uuid.impl.UuidPackageImpl;
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Package</b>.
* <!-- end-user-doc -->
* @generated
*/
public class EpcPackageImpl extends EPackageImpl implements EpcPackage {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass epcObjectEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass epcModelEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass pageEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass epcFlowNodeEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass flowConnectionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass epcLogicGateEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass joinLogicGateEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass splitLogicGateEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass functionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass eventEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass resourceEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass epcDiagramElementEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass resourceInputConnectionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass resourceOutputConnectionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass epcConnectionEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EEnum eventTypeEEnum = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EEnum logicGateTypeEEnum = null;
/**
* Creates an instance of the model <b>Package</b>, registered with
* {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
* package URI value.
* <p>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.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see org.eclipse.emf.ecore.EPackage.Registry
* @see epc.EpcPackage#eNS_URI
* @see #init()
* @generated
*/
private EpcPackageImpl() {
super(eNS_URI, EpcFactory.eINSTANCE);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private static boolean isInited = false;
/**
* Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
*
* <p>This method is used to initialize {@link EpcPackage#eINSTANCE} when that field is accessed.
* Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #eNS_URI
* @see #createPackageContents()
* @see #initializePackageContents()
* @generated
*/
public static EpcPackage init() {
if (isInited) return (EpcPackage)EPackage.Registry.INSTANCE.getEPackage(EpcPackage.eNS_URI);
// Obtain or create and register package
EpcPackageImpl theEpcPackage = (EpcPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof EpcPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new EpcPackageImpl());
isInited = true;
// Obtain or create and register interdependencies
UuidPackageImpl theUuidPackage = (UuidPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(UuidPackage.eNS_URI) instanceof UuidPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(UuidPackage.eNS_URI) : UuidPackage.eINSTANCE);
// Create package meta-data objects
theEpcPackage.createPackageContents();
theUuidPackage.createPackageContents();
// Initialize created meta-data
theEpcPackage.initializePackageContents();
theUuidPackage.initializePackageContents();
// Mark meta-data to indicate it can't be changed
theEpcPackage.freeze();
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(EpcPackage.eNS_URI, theEpcPackage);
return theEpcPackage;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getEPCObject() {
return epcObjectEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getEPCModel() {
return epcModelEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getEPCModel_Pages() {
return (EReference)epcModelEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getEPCModel_Elements() {
return (EReference)epcModelEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getEPCModel_Connections() {
return (EReference)epcModelEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getPage() {
return pageEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getPage_Elements() {
return (EReference)pageEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getPage_Connections() {
return (EReference)pageEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getEPCFlowNode() {
return epcFlowNodeEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getEPCFlowNode_Incoming() {
return (EReference)epcFlowNodeEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getEPCFlowNode_Outgoing() {
return (EReference)epcFlowNodeEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getFlowConnection() {
return flowConnectionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getFlowConnection_Source() {
return (EReference)flowConnectionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getFlowConnection_Target() {
return (EReference)flowConnectionEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getEPCLogicGate() {
return epcLogicGateEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getEPCLogicGate_GateType() {
return (EAttribute)epcLogicGateEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getJoinLogicGate() {
return joinLogicGateEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getSplitLogicGate() {
return splitLogicGateEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getFunction() {
return functionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getFunction_OutputResources() {
return (EReference)functionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getFunction_InputResources() {
return (EReference)functionEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getEvent() {
return eventEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getEvent_EventType() {
return (EAttribute)eventEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getResource() {
return resourceEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getResource_ConsumingFunction() {
return (EReference)resourceEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getResource_CreatingFunction() {
return (EReference)resourceEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getEPCDiagramElement() {
return epcDiagramElementEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getResourceInputConnection() {
return resourceInputConnectionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getResourceInputConnection_Source() {
return (EReference)resourceInputConnectionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getResourceInputConnection_Target() {
return (EReference)resourceInputConnectionEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getResourceOutputConnection() {
return resourceOutputConnectionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getResourceOutputConnection_Source() {
return (EReference)resourceOutputConnectionEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getResourceOutputConnection_Target() {
return (EReference)resourceOutputConnectionEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getEPCConnection() {
return epcConnectionEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EEnum getEventType() {
return eventTypeEEnum;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EEnum getLogicGateType() {
return logicGateTypeEEnum;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EpcFactory getEpcFactory() {
return (EpcFactory)getEFactoryInstance();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @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.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void createPackageContents() {
if (isCreated) return;
isCreated = true;
// Create classes and their features
epcObjectEClass = createEClass(EPC_OBJECT);
epcModelEClass = createEClass(EPC_MODEL);
createEReference(epcModelEClass, EPC_MODEL__PAGES);
createEReference(epcModelEClass, EPC_MODEL__ELEMENTS);
createEReference(epcModelEClass, EPC_MODEL__CONNECTIONS);
pageEClass = createEClass(PAGE);
createEReference(pageEClass, PAGE__ELEMENTS);
createEReference(pageEClass, PAGE__CONNECTIONS);
epcFlowNodeEClass = createEClass(EPC_FLOW_NODE);
createEReference(epcFlowNodeEClass, EPC_FLOW_NODE__INCOMING);
createEReference(epcFlowNodeEClass, EPC_FLOW_NODE__OUTGOING);
flowConnectionEClass = createEClass(FLOW_CONNECTION);
createEReference(flowConnectionEClass, FLOW_CONNECTION__SOURCE);
createEReference(flowConnectionEClass, FLOW_CONNECTION__TARGET);
epcLogicGateEClass = createEClass(EPC_LOGIC_GATE);
createEAttribute(epcLogicGateEClass, EPC_LOGIC_GATE__GATE_TYPE);
joinLogicGateEClass = createEClass(JOIN_LOGIC_GATE);
splitLogicGateEClass = createEClass(SPLIT_LOGIC_GATE);
functionEClass = createEClass(FUNCTION);
createEReference(functionEClass, FUNCTION__OUTPUT_RESOURCES);
createEReference(functionEClass, FUNCTION__INPUT_RESOURCES);
eventEClass = createEClass(EVENT);
createEAttribute(eventEClass, EVENT__EVENT_TYPE);
resourceEClass = createEClass(RESOURCE);
createEReference(resourceEClass, RESOURCE__CONSUMING_FUNCTION);
createEReference(resourceEClass, RESOURCE__CREATING_FUNCTION);
epcDiagramElementEClass = createEClass(EPC_DIAGRAM_ELEMENT);
resourceInputConnectionEClass = createEClass(RESOURCE_INPUT_CONNECTION);
createEReference(resourceInputConnectionEClass, RESOURCE_INPUT_CONNECTION__SOURCE);
createEReference(resourceInputConnectionEClass, RESOURCE_INPUT_CONNECTION__TARGET);
resourceOutputConnectionEClass = createEClass(RESOURCE_OUTPUT_CONNECTION);
createEReference(resourceOutputConnectionEClass, RESOURCE_OUTPUT_CONNECTION__SOURCE);
createEReference(resourceOutputConnectionEClass, RESOURCE_OUTPUT_CONNECTION__TARGET);
epcConnectionEClass = createEClass(EPC_CONNECTION);
// Create enums
eventTypeEEnum = createEEnum(EVENT_TYPE);
logicGateTypeEEnum = createEEnum(LOGIC_GATE_TYPE);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @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.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void initializePackageContents() {
if (isInitialized) return;
isInitialized = true;
// Initialize package
setName(eNAME);
setNsPrefix(eNS_PREFIX);
setNsURI(eNS_URI);
// Obtain other dependent packages
UuidPackage theUuidPackage = (UuidPackage)EPackage.Registry.INSTANCE.getEPackage(UuidPackage.eNS_URI);
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
epcObjectEClass.getESuperTypes().add(theUuidPackage.getReferenceable());
epcObjectEClass.getESuperTypes().add(theUuidPackage.getNameable());
epcModelEClass.getESuperTypes().add(this.getEPCObject());
pageEClass.getESuperTypes().add(this.getEPCObject());
epcFlowNodeEClass.getESuperTypes().add(this.getEPCDiagramElement());
flowConnectionEClass.getESuperTypes().add(this.getEPCConnection());
epcLogicGateEClass.getESuperTypes().add(this.getEPCFlowNode());
joinLogicGateEClass.getESuperTypes().add(this.getEPCLogicGate());
splitLogicGateEClass.getESuperTypes().add(this.getEPCLogicGate());
functionEClass.getESuperTypes().add(this.getEPCFlowNode());
eventEClass.getESuperTypes().add(this.getEPCFlowNode());
resourceEClass.getESuperTypes().add(this.getEPCDiagramElement());
epcDiagramElementEClass.getESuperTypes().add(this.getEPCObject());
resourceInputConnectionEClass.getESuperTypes().add(this.getEPCConnection());
resourceOutputConnectionEClass.getESuperTypes().add(this.getEPCConnection());
epcConnectionEClass.getESuperTypes().add(this.getEPCDiagramElement());
// Initialize classes, features, and operations; add parameters
initEClass(epcObjectEClass, EPCObject.class, "EPCObject", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(epcModelEClass, EPCModel.class, "EPCModel", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getEPCModel_Pages(), this.getPage(), null, "pages", null, 0, -1, EPCModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getEPCModel_Elements(), this.getEPCDiagramElement(), null, "elements", null, 0, -1, EPCModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getEPCModel_Connections(), this.getEPCConnection(), null, "connections", null, 0, -1, EPCModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(pageEClass, Page.class, "Page", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getPage_Elements(), this.getEPCDiagramElement(), null, "elements", null, 0, -1, Page.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getPage_Connections(), this.getFlowConnection(), null, "connections", null, 0, -1, Page.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(epcFlowNodeEClass, EPCFlowNode.class, "EPCFlowNode", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getEPCFlowNode_Incoming(), this.getFlowConnection(), this.getFlowConnection_Target(), "incoming", null, 0, -1, EPCFlowNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getEPCFlowNode_Outgoing(), this.getFlowConnection(), this.getFlowConnection_Source(), "outgoing", null, 0, -1, EPCFlowNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(flowConnectionEClass, FlowConnection.class, "FlowConnection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getFlowConnection_Source(), this.getEPCFlowNode(), this.getEPCFlowNode_Outgoing(), "source", null, 0, 1, FlowConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getFlowConnection_Target(), this.getEPCFlowNode(), this.getEPCFlowNode_Incoming(), "target", null, 0, 1, FlowConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(epcLogicGateEClass, EPCLogicGate.class, "EPCLogicGate", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getEPCLogicGate_GateType(), this.getLogicGateType(), "gateType", null, 1, 1, EPCLogicGate.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(joinLogicGateEClass, JoinLogicGate.class, "JoinLogicGate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(splitLogicGateEClass, SplitLogicGate.class, "SplitLogicGate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(functionEClass, Function.class, "Function", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getFunction_OutputResources(), this.getResourceOutputConnection(), this.getResourceOutputConnection_Source(), "outputResources", null, 0, -1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getFunction_InputResources(), this.getResourceInputConnection(), this.getResourceInputConnection_Target(), "inputResources", null, 0, -1, Function.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(eventEClass, Event.class, "Event", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getEvent_EventType(), this.getEventType(), "eventType", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(resourceEClass, Resource.class, "Resource", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getResource_ConsumingFunction(), this.getResourceInputConnection(), this.getResourceInputConnection_Source(), "consumingFunction", null, 0, 1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getResource_CreatingFunction(), this.getResourceOutputConnection(), this.getResourceOutputConnection_Target(), "creatingFunction", null, 0, 1, Resource.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(epcDiagramElementEClass, EPCDiagramElement.class, "EPCDiagramElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(resourceInputConnectionEClass, ResourceInputConnection.class, "ResourceInputConnection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getResourceInputConnection_Source(), this.getResource(), this.getResource_ConsumingFunction(), "source", null, 0, 1, ResourceInputConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getResourceInputConnection_Target(), this.getFunction(), this.getFunction_InputResources(), "target", null, 0, 1, ResourceInputConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(resourceOutputConnectionEClass, ResourceOutputConnection.class, "ResourceOutputConnection", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getResourceOutputConnection_Source(), this.getFunction(), this.getFunction_OutputResources(), "source", null, 0, 1, ResourceOutputConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getResourceOutputConnection_Target(), this.getResource(), this.getResource_CreatingFunction(), "target", null, 0, 1, ResourceOutputConnection.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(epcConnectionEClass, EPCConnection.class, "EPCConnection", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
// Initialize enums and add enum literals
initEEnum(eventTypeEEnum, EventType.class, "EventType");
addEEnumLiteral(eventTypeEEnum, EventType.START);
addEEnumLiteral(eventTypeEEnum, EventType.END);
addEEnumLiteral(eventTypeEEnum, EventType.UNDEFINED);
initEEnum(logicGateTypeEEnum, LogicGateType.class, "LogicGateType");
addEEnumLiteral(logicGateTypeEEnum, LogicGateType.AND);
addEEnumLiteral(logicGateTypeEEnum, LogicGateType.OR);
addEEnumLiteral(logicGateTypeEEnum, LogicGateType.XOR);
// Create resource
createResource(eNS_URI);
}
} //EpcPackageImpl