/**
*/
package hu.bme.mit.incquery.cep.metamodels.cep.impl;
import hu.bme.mit.incquery.cep.metamodels.cep.AtomicEventPattern;
import hu.bme.mit.incquery.cep.metamodels.cep.CepFactory;
import hu.bme.mit.incquery.cep.metamodels.cep.CepPackage;
import hu.bme.mit.incquery.cep.metamodels.cep.ComplexEventPattern;
import hu.bme.mit.incquery.cep.metamodels.cep.ComplexOperator;
import hu.bme.mit.incquery.cep.metamodels.cep.Event;
import hu.bme.mit.incquery.cep.metamodels.cep.EventPattern;
import hu.bme.mit.incquery.cep.metamodels.cep.GlobalTimewindow;
import hu.bme.mit.incquery.cep.metamodels.cep.IEventSource;
import hu.bme.mit.incquery.cep.metamodels.cep.PartialTimewindow;
import hu.bme.mit.incquery.cep.metamodels.cep.Timewindow;
import hu.bme.mit.incquery.cep.metamodels.internalsm.InternalsmPackage;
import hu.bme.mit.incquery.cep.metamodels.internalsm.impl.InternalsmPackageImpl;
import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EOperation;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;
import org.eclipse.emf.ecore.impl.EPackageImpl;
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Package</b>.
* <!-- end-user-doc -->
* @generated
*/
public class CepPackageImpl extends EPackageImpl implements CepPackage {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass eventPatternEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass atomicEventPatternEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass complexEventPatternEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass eventEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass iEventSourceEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass timewindowEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass partialTimewindowEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EClass globalTimewindowEClass = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EEnum complexOperatorEEnum = 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 hu.bme.mit.incquery.cep.metamodels.cep.CepPackage#eNS_URI
* @see #init()
* @generated
*/
private CepPackageImpl() {
super(eNS_URI, CepFactory.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 CepPackage#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 CepPackage init() {
if (isInited) return (CepPackage)EPackage.Registry.INSTANCE.getEPackage(CepPackage.eNS_URI);
// Obtain or create and register package
CepPackageImpl theCepPackage = (CepPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof CepPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new CepPackageImpl());
isInited = true;
// Obtain or create and register interdependencies
InternalsmPackageImpl theInternalsmPackage = (InternalsmPackageImpl)(EPackage.Registry.INSTANCE.getEPackage(InternalsmPackage.eNS_URI) instanceof InternalsmPackageImpl ? EPackage.Registry.INSTANCE.getEPackage(InternalsmPackage.eNS_URI) : InternalsmPackage.eINSTANCE);
// Create package meta-data objects
theCepPackage.createPackageContents();
theInternalsmPackage.createPackageContents();
// Initialize created meta-data
theCepPackage.initializePackageContents();
theInternalsmPackage.initializePackageContents();
// Mark meta-data to indicate it can't be changed
theCepPackage.freeze();
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(CepPackage.eNS_URI, theCepPackage);
return theCepPackage;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getEventPattern() {
return eventPatternEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getEventPattern_StateMachine() {
return (EReference)eventPatternEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getEventPattern_Id() {
return (EAttribute)eventPatternEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getEventPattern_HoldingTime() {
return (EAttribute)eventPatternEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getEventPattern_Priority() {
return (EAttribute)eventPatternEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getAtomicEventPattern() {
return atomicEventPatternEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getAtomicEventPattern_Type() {
return (EAttribute)atomicEventPatternEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getComplexEventPattern() {
return complexEventPatternEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getComplexEventPattern_Operator() {
return (EAttribute)complexEventPatternEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getComplexEventPattern_GlobalTimewindow() {
return (EReference)complexEventPatternEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getComplexEventPattern_CompositionEvents() {
return (EReference)complexEventPatternEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getComplexEventPattern_PartialTimeWindows() {
return (EReference)complexEventPatternEClass.getEStructuralFeatures().get(3);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getEvent() {
return eventEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getEvent_Type() {
return (EAttribute)eventEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getEvent_Timestamp() {
return (EAttribute)eventEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getEvent_EventSource() {
return (EReference)eventEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getIEventSource() {
return iEventSourceEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getTimewindow() {
return timewindowEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EAttribute getTimewindow_Length() {
return (EAttribute)timewindowEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getPartialTimewindow() {
return partialTimewindowEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getPartialTimewindow_StopEvent() {
return (EReference)partialTimewindowEClass.getEStructuralFeatures().get(0);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getPartialTimewindow_CheckEvents() {
return (EReference)partialTimewindowEClass.getEStructuralFeatures().get(1);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EReference getPartialTimewindow_StartEvent() {
return (EReference)partialTimewindowEClass.getEStructuralFeatures().get(2);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EClass getGlobalTimewindow() {
return globalTimewindowEClass;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EEnum getComplexOperator() {
return complexOperatorEEnum;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public CepFactory getCepFactory() {
return (CepFactory)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
eventPatternEClass = createEClass(EVENT_PATTERN);
createEReference(eventPatternEClass, EVENT_PATTERN__STATE_MACHINE);
createEAttribute(eventPatternEClass, EVENT_PATTERN__ID);
createEAttribute(eventPatternEClass, EVENT_PATTERN__HOLDING_TIME);
createEAttribute(eventPatternEClass, EVENT_PATTERN__PRIORITY);
atomicEventPatternEClass = createEClass(ATOMIC_EVENT_PATTERN);
createEAttribute(atomicEventPatternEClass, ATOMIC_EVENT_PATTERN__TYPE);
complexEventPatternEClass = createEClass(COMPLEX_EVENT_PATTERN);
createEAttribute(complexEventPatternEClass, COMPLEX_EVENT_PATTERN__OPERATOR);
createEReference(complexEventPatternEClass, COMPLEX_EVENT_PATTERN__GLOBAL_TIMEWINDOW);
createEReference(complexEventPatternEClass, COMPLEX_EVENT_PATTERN__COMPOSITION_EVENTS);
createEReference(complexEventPatternEClass, COMPLEX_EVENT_PATTERN__PARTIAL_TIME_WINDOWS);
eventEClass = createEClass(EVENT);
createEAttribute(eventEClass, EVENT__TYPE);
createEAttribute(eventEClass, EVENT__TIMESTAMP);
createEReference(eventEClass, EVENT__EVENT_SOURCE);
iEventSourceEClass = createEClass(IEVENT_SOURCE);
timewindowEClass = createEClass(TIMEWINDOW);
createEAttribute(timewindowEClass, TIMEWINDOW__LENGTH);
partialTimewindowEClass = createEClass(PARTIAL_TIMEWINDOW);
createEReference(partialTimewindowEClass, PARTIAL_TIMEWINDOW__STOP_EVENT);
createEReference(partialTimewindowEClass, PARTIAL_TIMEWINDOW__CHECK_EVENTS);
createEReference(partialTimewindowEClass, PARTIAL_TIMEWINDOW__START_EVENT);
globalTimewindowEClass = createEClass(GLOBAL_TIMEWINDOW);
// Create enums
complexOperatorEEnum = createEEnum(COMPLEX_OPERATOR);
}
/**
* <!-- 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
InternalsmPackage theInternalsmPackage = (InternalsmPackage)EPackage.Registry.INSTANCE.getEPackage(InternalsmPackage.eNS_URI);
// Create type parameters
// Set bounds for type parameters
// Add supertypes to classes
atomicEventPatternEClass.getESuperTypes().add(this.getEventPattern());
complexEventPatternEClass.getESuperTypes().add(this.getEventPattern());
partialTimewindowEClass.getESuperTypes().add(this.getTimewindow());
globalTimewindowEClass.getESuperTypes().add(this.getTimewindow());
// Initialize classes and features; add operations and parameters
initEClass(eventPatternEClass, EventPattern.class, "EventPattern", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getEventPattern_StateMachine(), theInternalsmPackage.getStateMachine(), theInternalsmPackage.getStateMachine_EventPattern(), "stateMachine", null, 0, 1, EventPattern.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getEventPattern_Id(), ecorePackage.getEString(), "id", null, 0, 1, EventPattern.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getEventPattern_HoldingTime(), ecorePackage.getELong(), "holdingTime", null, 0, 1, EventPattern.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getEventPattern_Priority(), ecorePackage.getEInt(), "priority", null, 0, 1, EventPattern.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(atomicEventPatternEClass, AtomicEventPattern.class, "AtomicEventPattern", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getAtomicEventPattern_Type(), ecorePackage.getEString(), "type", null, 1, 1, AtomicEventPattern.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(complexEventPatternEClass, ComplexEventPattern.class, "ComplexEventPattern", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getComplexEventPattern_Operator(), this.getComplexOperator(), "operator", null, 1, 1, ComplexEventPattern.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getComplexEventPattern_GlobalTimewindow(), this.getGlobalTimewindow(), null, "globalTimewindow", null, 0, 1, ComplexEventPattern.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getComplexEventPattern_CompositionEvents(), this.getEventPattern(), null, "compositionEvents", null, 0, -1, ComplexEventPattern.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getComplexEventPattern_PartialTimeWindows(), this.getPartialTimewindow(), null, "partialTimeWindows", null, 0, -1, ComplexEventPattern.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
EOperation op = addEOperation(complexEventPatternEClass, null, "addCompositionEventPattern", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getEventPattern(), "compositionEventPattern", 1, 1, IS_UNIQUE, IS_ORDERED);
op = addEOperation(complexEventPatternEClass, ecorePackage.getEBoolean(), "evaluateParameterBindigs", 1, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, this.getEvent(), "event", 1, 1, IS_UNIQUE, IS_ORDERED);
initEClass(eventEClass, Event.class, "Event", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getEvent_Type(), ecorePackage.getEString(), "type", null, 1, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getEvent_Timestamp(), ecorePackage.getELong(), "timestamp", null, 1, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getEvent_EventSource(), this.getIEventSource(), null, "eventSource", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(iEventSourceEClass, IEventSource.class, "IEventSource", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(timewindowEClass, Timewindow.class, "Timewindow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getTimewindow_Length(), ecorePackage.getELong(), "length", null, 1, 1, Timewindow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(partialTimewindowEClass, PartialTimewindow.class, "PartialTimewindow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getPartialTimewindow_StopEvent(), this.getEventPattern(), null, "stopEvent", null, 1, 1, PartialTimewindow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getPartialTimewindow_CheckEvents(), this.getEventPattern(), null, "checkEvents", null, 0, -1, PartialTimewindow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getPartialTimewindow_StartEvent(), this.getEventPattern(), null, "startEvent", null, 1, 1, PartialTimewindow.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(globalTimewindowEClass, GlobalTimewindow.class, "GlobalTimewindow", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
// Initialize enums and add enum literals
initEEnum(complexOperatorEEnum, ComplexOperator.class, "ComplexOperator");
addEEnumLiteral(complexOperatorEEnum, ComplexOperator.ORDERED);
addEEnumLiteral(complexOperatorEEnum, ComplexOperator.ORDERED_T);
addEEnumLiteral(complexOperatorEEnum, ComplexOperator.UNORDERED);
addEEnumLiteral(complexOperatorEEnum, ComplexOperator.UNORDERED_T);
// Create resource
createResource(eNS_URI);
}
} //CepPackageImpl