    001    /**
    002     * <copyright>
    003     * </copyright>
    004     *
    005     * $Id$
    006     */
    007    package com.hammurapi.eventbus.snapshot.impl;
    008
    009    import com.hammurapi.eventbus.snapshot.CompositeEvent;
    010    import com.hammurapi.eventbus.snapshot.Derivation;
    011    import com.hammurapi.eventbus.snapshot.Event;
    012    import com.hammurapi.eventbus.snapshot.Extractor;
    013    import com.hammurapi.eventbus.snapshot.Handler;
    014    import com.hammurapi.eventbus.snapshot.JoinEntry;
    015    import com.hammurapi.eventbus.snapshot.JoinInput;
    016    import com.hammurapi.eventbus.snapshot.JoinInputCollector;
    017    import com.hammurapi.eventbus.snapshot.JoinNode;
    018    import com.hammurapi.eventbus.snapshot.Predicate;
    019    import com.hammurapi.eventbus.snapshot.PredicateNode;
    020    import com.hammurapi.eventbus.snapshot.PredicateNodeOutput;
    021    import com.hammurapi.eventbus.snapshot.Snapshot;
    022    import com.hammurapi.eventbus.snapshot.SnapshotElement;
    023    import com.hammurapi.eventbus.snapshot.SnapshotFactory;
    024    import com.hammurapi.eventbus.snapshot.SnapshotPackage;
    025
    026    import org.eclipse.emf.ecore.EAttribute;
    027    import org.eclipse.emf.ecore.EClass;
    028    import org.eclipse.emf.ecore.EPackage;
    029    import org.eclipse.emf.ecore.EReference;
    030
    031    import org.eclipse.emf.ecore.impl.EPackageImpl;
    032
    033    /**
    034     * <!-- begin-user-doc -->
    035     * An implementation of the model <b>Package</b>.
    036     * <!-- end-user-doc -->
    037     * @generated
    038     */
    039    public class SnapshotPackageImpl extends EPackageImpl implements SnapshotPackage {
    040            /**
    041             * <!-- begin-user-doc -->
    042             * <!-- end-user-doc -->
    043             * @generated
    044             */
    045            private EClass snapshotEClass = null;
    046
    047            /**
    048             * <!-- begin-user-doc -->
    049             * <!-- end-user-doc -->
    050             * @generated
    051             */
    052            private EClass snapshotElementEClass = null;
    053
    054            /**
    055             * <!-- begin-user-doc -->
    056             * <!-- end-user-doc -->
    057             * @generated
    058             */
    059            private EClass handlerEClass = null;
    060
    061            /**
    062             * <!-- begin-user-doc -->
    063             * <!-- end-user-doc -->
    064             * @generated
    065             */
    066            private EClass derivationEClass = null;
    067
    068            /**
    069             * <!-- begin-user-doc -->
    070             * <!-- end-user-doc -->
    071             * @generated
    072             */
    073            private EClass eventEClass = null;
    074
    075            /**
    076             * <!-- begin-user-doc -->
    077             * <!-- end-user-doc -->
    078             * @generated
    079             */
    080            private EClass predicateNodeEClass = null;
    081
    082            /**
    083             * <!-- begin-user-doc -->
    084             * <!-- end-user-doc -->
    085             * @generated
    086             */
    087            private EClass predicateNodeOutputEClass = null;
    088
    089            /**
    090             * <!-- begin-user-doc -->
    091             * <!-- end-user-doc -->
    092             * @generated
    093             */
    094            private EClass joinInputEClass = null;
    095
    096            /**
    097             * <!-- begin-user-doc -->
    098             * <!-- end-user-doc -->
    099             * @generated
    100             */
    101            private EClass joinNodeEClass = null;
    102
    103            /**
    104             * <!-- begin-user-doc -->
    105             * <!-- end-user-doc -->
    106             * @generated
    107             */
    108            private EClass joinInputCollectorEClass = null;
    109
    110            /**
    111             * <!-- begin-user-doc -->
    112             * <!-- end-user-doc -->
    113             * @generated
    114             */
    115            private EClass joinEntryEClass = null;
    116
    117            /**
    118             * <!-- begin-user-doc -->
    119             * <!-- end-user-doc -->
    120             * @generated
    121             */
    122            private EClass extractorEClass = null;
    123
    124            /**
    125             * <!-- begin-user-doc -->
    126             * <!-- end-user-doc -->
    127             * @generated
    128             */
    129            private EClass predicateEClass = null;
    130
    131            /**
    132             * <!-- begin-user-doc -->
    133             * <!-- end-user-doc -->
    134             * @generated
    135             */
    136            private EClass compositeEventEClass = null;
    137
    138            /**
    139             * Creates an instance of the model <b>Package</b>, registered with
    140             * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
    141             * package URI value.
    142             * <p>Note: the correct way to create the package is via the static
    143             * factory method {@link #init init()}, which also performs
    144             * initialization of the package, or returns the registered package,
    145             * if one already exists.
    146             * <!-- begin-user-doc -->
    147             * <!-- end-user-doc -->
    148             * @see org.eclipse.emf.ecore.EPackage.Registry
    149             * @see com.hammurapi.eventbus.snapshot.SnapshotPackage#eNS_URI
    150             * @see #init()
    151             * @generated
    152             */
    153            private SnapshotPackageImpl() {
    154                    super(eNS_URI, SnapshotFactory.eINSTANCE);
    155            }
    156
    157            /**
    158             * <!-- begin-user-doc -->
    159             * <!-- end-user-doc -->
    160             * @generated
    161             */
    162            private static boolean isInited = false;
    163
    164            /**
    165             * Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
    166             *
    167             * <p>This method is used to initialize {@link SnapshotPackage#eINSTANCE} when that field is accessed.
    168             * Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
    169             * <!-- begin-user-doc -->
    170             * <!-- end-user-doc -->
    171             * @see #eNS_URI
    172             * @see #createPackageContents()
    173             * @see #initializePackageContents()
    174             * @generated
    175             */
    176            public static SnapshotPackage init() {
    177                    if (isInited) return (SnapshotPackage)EPackage.Registry.INSTANCE.getEPackage(SnapshotPackage.eNS_URI);
    178
    179                    // Obtain or create and register package
    180                    SnapshotPackageImpl theSnapshotPackage = (SnapshotPackageImpl)(EPackage.Registry.INSTANCE.get(eNS_URI) instanceof SnapshotPackageImpl ? EPackage.Registry.INSTANCE.get(eNS_URI) : new SnapshotPackageImpl());
    181
    182                    isInited = true;
    183
    184                    // Create package meta-data objects
    185                    theSnapshotPackage.createPackageContents();
    186
    187                    // Initialize created meta-data
    188                    theSnapshotPackage.initializePackageContents();
    189
    190                    // Mark meta-data to indicate it can't be changed
    191                    theSnapshotPackage.freeze();
    192
    193
    194                    // Update the registry and return the package
    195                    EPackage.Registry.INSTANCE.put(SnapshotPackage.eNS_URI, theSnapshotPackage);
    196                    return theSnapshotPackage;
    197            }
    198
    199            /**
    200             * <!-- begin-user-doc -->
    201             * <!-- end-user-doc -->
    202             * @generated
    203             */
    204            public EClass getSnapshot() {
    205                    return snapshotEClass;
    206            }
    207
    208            /**
    209             * <!-- begin-user-doc -->
    210             * <!-- end-user-doc -->
    211             * @generated
    212             */
    213            public EAttribute getSnapshot_Timestamp() {
    214                    return (EAttribute)snapshotEClass.getEStructuralFeatures().get(0);
    215            }
    216
    217            /**
    218             * <!-- begin-user-doc -->
    219             * <!-- end-user-doc -->
    220             * @generated
    221             */
    222            public EReference getSnapshot_Elements() {
    223                    return (EReference)snapshotEClass.getEStructuralFeatures().get(1);
    224            }
    225
    226            /**
    227             * <!-- begin-user-doc -->
    228             * <!-- end-user-doc -->
    229             * @generated
    230             */
    231            public EAttribute getSnapshot_JvmId() {
    232                    return (EAttribute)snapshotEClass.getEStructuralFeatures().get(2);
    233            }
    234
    235            /**
    236             * <!-- begin-user-doc -->
    237             * <!-- end-user-doc -->
    238             * @generated
    239             */
    240            public EClass getSnapshotElement() {
    241                    return snapshotElementEClass;
    242            }
    243
    244            /**
    245             * <!-- begin-user-doc -->
    246             * <!-- end-user-doc -->
    247             * @generated
    248             */
    249            public EAttribute getSnapshotElement_Id() {
    250                    return (EAttribute)snapshotElementEClass.getEStructuralFeatures().get(0);
    251            }
    252
    253            /**
    254             * <!-- begin-user-doc -->
    255             * <!-- end-user-doc -->
    256             * @generated
    257             */
    258            public EAttribute getSnapshotElement_Name() {
    259                    return (EAttribute)snapshotElementEClass.getEStructuralFeatures().get(1);
    260            }
    261
    262            /**
    263             * <!-- begin-user-doc -->
    264             * <!-- end-user-doc -->
    265             * @generated
    266             */
    267            public EAttribute getSnapshotElement_Details() {
    268                    return (EAttribute)snapshotElementEClass.getEStructuralFeatures().get(2);
    269            }
    270
    271            /**
    272             * <!-- begin-user-doc -->
    273             * <!-- end-user-doc -->
    274             * @generated
    275             */
    276            public EReference getSnapshotElement_Snapshot() {
    277                    return (EReference)snapshotElementEClass.getEStructuralFeatures().get(3);
    278            }
    279
    280            /**
    281             * <!-- begin-user-doc -->
    282             * <!-- end-user-doc -->
    283             * @generated
    284             */
    285            public EClass getHandler() {
    286                    return handlerEClass;
    287            }
    288
    289            /**
    290             * <!-- begin-user-doc -->
    291             * <!-- end-user-doc -->
    292             * @generated
    293             */
    294            public EReference getHandler_JoinNode() {
    295                    return (EReference)handlerEClass.getEStructuralFeatures().get(0);
    296            }
    297
    298            /**
    299             * <!-- begin-user-doc -->
    300             * <!-- end-user-doc -->
    301             * @generated
    302             */
    303            public EClass getDerivation() {
    304                    return derivationEClass;
    305            }
    306
    307            /**
    308             * <!-- begin-user-doc -->
    309             * <!-- end-user-doc -->
    310             * @generated
    311             */
    312            public EReference getDerivation_Handler() {
    313                    return (EReference)derivationEClass.getEStructuralFeatures().get(0);
    314            }
    315
    316            /**
    317             * <!-- begin-user-doc -->
    318             * <!-- end-user-doc -->
    319             * @generated
    320             */
    321            public EReference getDerivation_Inputs() {
    322                    return (EReference)derivationEClass.getEStructuralFeatures().get(1);
    323            }
    324
    325            /**
    326             * <!-- begin-user-doc -->
    327             * <!-- end-user-doc -->
    328             * @generated
    329             */
    330            public EClass getEvent() {
    331                    return eventEClass;
    332            }
    333
    334            /**
    335             * <!-- begin-user-doc -->
    336             * <!-- end-user-doc -->
    337             * @generated
    338             */
    339            public EReference getEvent_Derivations() {
    340                    return (EReference)eventEClass.getEStructuralFeatures().get(0);
    341            }
    342
    343            /**
    344             * <!-- begin-user-doc -->
    345             * <!-- end-user-doc -->
    346             * @generated
    347             */
    348            public EAttribute getEvent_PartRole() {
    349                    return (EAttribute)eventEClass.getEStructuralFeatures().get(1);
    350            }
    351
    352            /**
    353             * <!-- begin-user-doc -->
    354             * <!-- end-user-doc -->
    355             * @generated
    356             */
    357            public EAttribute getEvent_DirectPost() {
    358                    return (EAttribute)eventEClass.getEStructuralFeatures().get(2);
    359            }
    360
    361            /**
    362             * <!-- begin-user-doc -->
    363             * <!-- end-user-doc -->
    364             * @generated
    365             */
    366            public EClass getPredicateNode() {
    367                    return predicateNodeEClass;
    368            }
    369
    370            /**
    371             * <!-- begin-user-doc -->
    372             * <!-- end-user-doc -->
    373             * @generated
    374             */
    375            public EReference getPredicateNode_TrueOutputs() {
    376                    return (EReference)predicateNodeEClass.getEStructuralFeatures().get(0);
    377            }
    378
    379            /**
    380             * <!-- begin-user-doc -->
    381             * <!-- end-user-doc -->
    382             * @generated
    383             */
    384            public EReference getPredicateNode_FalseOutputs() {
    385                    return (EReference)predicateNodeEClass.getEStructuralFeatures().get(1);
    386            }
    387
    388            /**
    389             * <!-- begin-user-doc -->
    390             * <!-- end-user-doc -->
    391             * @generated
    392             */
    393            public EReference getPredicateNode_TrueChildren() {
    394                    return (EReference)predicateNodeEClass.getEStructuralFeatures().get(2);
    395            }
    396
    397            /**
    398             * <!-- begin-user-doc -->
    399             * <!-- end-user-doc -->
    400             * @generated
    401             */
    402            public EReference getPredicateNode_FalseChildren() {
    403                    return (EReference)predicateNodeEClass.getEStructuralFeatures().get(3);
    404            }
    405
    406            /**
    407             * <!-- begin-user-doc -->
    408             * <!-- end-user-doc -->
    409             * @generated
    410             */
    411            public EAttribute getPredicateNode_IsRoot() {
    412                    return (EAttribute)predicateNodeEClass.getEStructuralFeatures().get(4);
    413            }
    414
    415            /**
    416             * <!-- begin-user-doc -->
    417             * <!-- end-user-doc -->
    418             * @generated
    419             */
    420            public EReference getPredicateNode_Predicate() {
    421                    return (EReference)predicateNodeEClass.getEStructuralFeatures().get(5);
    422            }
    423
    424            /**
    425             * <!-- begin-user-doc -->
    426             * <!-- end-user-doc -->
    427             * @generated
    428             */
    429            public EClass getPredicateNodeOutput() {
    430                    return predicateNodeOutputEClass;
    431            }
    432
    433            /**
    434             * <!-- begin-user-doc -->
    435             * <!-- end-user-doc -->
    436             * @generated
    437             */
    438            public EClass getJoinInput() {
    439                    return joinInputEClass;
    440            }
    441
    442            /**
    443             * <!-- begin-user-doc -->
    444             * <!-- end-user-doc -->
    445             * @generated
    446             */
    447            public EAttribute getJoinInput_Index() {
    448                    return (EAttribute)joinInputEClass.getEStructuralFeatures().get(0);
    449            }
    450
    451            /**
    452             * <!-- begin-user-doc -->
    453             * <!-- end-user-doc -->
    454             * @generated
    455             */
    456            public EReference getJoinInput_JoinNode() {
    457                    return (EReference)joinInputEClass.getEStructuralFeatures().get(1);
    458            }
    459
    460            /**
    461             * <!-- begin-user-doc -->
    462             * <!-- end-user-doc -->
    463             * @generated
    464             */
    465            public EClass getJoinNode() {
    466                    return joinNodeEClass;
    467            }
    468
    469            /**
    470             * <!-- begin-user-doc -->
    471             * <!-- end-user-doc -->
    472             * @generated
    473             */
    474            public EReference getJoinNode_Collectors() {
    475                    return (EReference)joinNodeEClass.getEStructuralFeatures().get(0);
    476            }
    477
    478            /**
    479             * <!-- begin-user-doc -->
    480             * <!-- end-user-doc -->
    481             * @generated
    482             */
    483            public EAttribute getJoinNode_OutputIndices() {
    484                    return (EAttribute)joinNodeEClass.getEStructuralFeatures().get(1);
    485            }
    486
    487            /**
    488             * <!-- begin-user-doc -->
    489             * <!-- end-user-doc -->
    490             * @generated
    491             */
    492            public EReference getJoinNode_Handler() {
    493                    return (EReference)joinNodeEClass.getEStructuralFeatures().get(2);
    494            }
    495
    496            /**
    497             * <!-- begin-user-doc -->
    498             * <!-- end-user-doc -->
    499             * @generated
    500             */
    501            public EReference getJoinNode_Next() {
    502                    return (EReference)joinNodeEClass.getEStructuralFeatures().get(3);
    503            }
    504
    505            /**
    506             * <!-- begin-user-doc -->
    507             * <!-- end-user-doc -->
    508             * @generated
    509             */
    510            public EReference getJoinNode_Predicate() {
    511                    return (EReference)joinNodeEClass.getEStructuralFeatures().get(4);
    512            }
    513
    514            /**
    515             * <!-- begin-user-doc -->
    516             * <!-- end-user-doc -->
    517             * @generated
    518             */
    519            public EReference getJoinNode_Prev() {
    520                    return (EReference)joinNodeEClass.getEStructuralFeatures().get(5);
    521            }
    522
    523            /**
    524             * <!-- begin-user-doc -->
    525             * <!-- end-user-doc -->
    526             * @generated
    527             */
    528            public EReference getJoinNode_JoinInputs() {
    529                    return (EReference)joinNodeEClass.getEStructuralFeatures().get(6);
    530            }
    531
    532            /**
    533             * <!-- begin-user-doc -->
    534             * <!-- end-user-doc -->
    535             * @generated
    536             */
    537            public EClass getJoinInputCollector() {
    538                    return joinInputCollectorEClass;
    539            }
    540
    541            /**
    542             * <!-- begin-user-doc -->
    543             * <!-- end-user-doc -->
    544             * @generated
    545             */
    546            public EAttribute getJoinInputCollector_Indices() {
    547                    return (EAttribute)joinInputCollectorEClass.getEStructuralFeatures().get(0);
    548            }
    549
    550            /**
    551             * <!-- begin-user-doc -->
    552             * <!-- end-user-doc -->
    553             * @generated
    554             */
    555            public EReference getJoinInputCollector_JoinEntries() {
    556                    return (EReference)joinInputCollectorEClass.getEStructuralFeatures().get(1);
    557            }
    558
    559            /**
    560             * <!-- begin-user-doc -->
    561             * <!-- end-user-doc -->
    562             * @generated
    563             */
    564            public EClass getJoinEntry() {
    565                    return joinEntryEClass;
    566            }
    567
    568            /**
    569             * <!-- begin-user-doc -->
    570             * <!-- end-user-doc -->
    571             * @generated
    572             */
    573            public EReference getJoinEntry_Events() {
    574                    return (EReference)joinEntryEClass.getEStructuralFeatures().get(0);
    575            }
    576
    577            /**
    578             * <!-- begin-user-doc -->
    579             * <!-- end-user-doc -->
    580             * @generated
    581             */
    582            public EClass getExtractor() {
    583                    return extractorEClass;
    584            }
    585
    586            /**
    587             * <!-- begin-user-doc -->
    588             * <!-- end-user-doc -->
    589             * @generated
    590             */
    591            public EAttribute getExtractor_Role() {
    592                    return (EAttribute)extractorEClass.getEStructuralFeatures().get(0);
    593            }
    594
    595            /**
    596             * <!-- begin-user-doc -->
    597             * <!-- end-user-doc -->
    598             * @generated
    599             */
    600            public EReference getExtractor_Parts() {
    601                    return (EReference)extractorEClass.getEStructuralFeatures().get(1);
    602            }
    603
    604            /**
    605             * <!-- begin-user-doc -->
    606             * <!-- end-user-doc -->
    607             * @generated
    608             */
    609            public EAttribute getExtractor_ParameterIndices() {
    610                    return (EAttribute)extractorEClass.getEStructuralFeatures().get(2);
    611            }
    612
    613            /**
    614             * <!-- begin-user-doc -->
    615             * <!-- end-user-doc -->
    616             * @generated
    617             */
    618            public EAttribute getExtractor_Cost() {
    619                    return (EAttribute)extractorEClass.getEStructuralFeatures().get(3);
    620            }
    621
    622            /**
    623             * <!-- begin-user-doc -->
    624             * <!-- end-user-doc -->
    625             * @generated
    626             */
    627            public EClass getPredicate() {
    628                    return predicateEClass;
    629            }
    630
    631            /**
    632             * <!-- begin-user-doc -->
    633             * <!-- end-user-doc -->
    634             * @generated
    635             */
    636            public EClass getCompositeEvent() {
    637                    return compositeEventEClass;
    638            }
    639
    640            /**
    641             * <!-- begin-user-doc -->
    642             * <!-- end-user-doc -->
    643             * @generated
    644             */
    645            public EReference getCompositeEvent_Parts() {
    646                    return (EReference)compositeEventEClass.getEStructuralFeatures().get(0);
    647            }
    648
    649            /**
    650             * <!-- begin-user-doc -->
    651             * <!-- end-user-doc -->
    652             * @generated
    653             */
    654            public SnapshotFactory getSnapshotFactory() {
    655                    return (SnapshotFactory)getEFactoryInstance();
    656            }
    657
    658            /**
    659             * <!-- begin-user-doc -->
    660             * <!-- end-user-doc -->
    661             * @generated
    662             */
    663            private boolean isCreated = false;
    664
    665            /**
    666             * Creates the meta-model objects for the package.  This method is
    667             * guarded to have no affect on any invocation but its first.
    668             * <!-- begin-user-doc -->
    669             * <!-- end-user-doc -->
    670             * @generated
    671             */
    672            public void createPackageContents() {
    673                    if (isCreated) return;
    674                    isCreated = true;
    675
    676                    // Create classes and their features
    677                    snapshotEClass = createEClass(SNAPSHOT);
    678                    createEAttribute(snapshotEClass, SNAPSHOT__TIMESTAMP);
    679                    createEReference(snapshotEClass, SNAPSHOT__ELEMENTS);
    680                    createEAttribute(snapshotEClass, SNAPSHOT__JVM_ID);
    681
    682                    snapshotElementEClass = createEClass(SNAPSHOT_ELEMENT);
    683                    createEAttribute(snapshotElementEClass, SNAPSHOT_ELEMENT__ID);
    684                    createEAttribute(snapshotElementEClass, SNAPSHOT_ELEMENT__NAME);
    685                    createEAttribute(snapshotElementEClass, SNAPSHOT_ELEMENT__DETAILS);
    686                    createEReference(snapshotElementEClass, SNAPSHOT_ELEMENT__SNAPSHOT);
    687
    688                    handlerEClass = createEClass(HANDLER);
    689                    createEReference(handlerEClass, HANDLER__JOIN_NODE);
    690
    691                    derivationEClass = createEClass(DERIVATION);
    692                    createEReference(derivationEClass, DERIVATION__HANDLER);
    693                    createEReference(derivationEClass, DERIVATION__INPUTS);
    694
    695                    eventEClass = createEClass(EVENT);
    696                    createEReference(eventEClass, EVENT__DERIVATIONS);
    697                    createEAttribute(eventEClass, EVENT__PART_ROLE);
    698                    createEAttribute(eventEClass, EVENT__DIRECT_POST);
    699
    700                    predicateNodeEClass = createEClass(PREDICATE_NODE);
    701                    createEReference(predicateNodeEClass, PREDICATE_NODE__TRUE_OUTPUTS);
    702                    createEReference(predicateNodeEClass, PREDICATE_NODE__FALSE_OUTPUTS);
    703                    createEReference(predicateNodeEClass, PREDICATE_NODE__TRUE_CHILDREN);
    704                    createEReference(predicateNodeEClass, PREDICATE_NODE__FALSE_CHILDREN);
    705                    createEAttribute(predicateNodeEClass, PREDICATE_NODE__IS_ROOT);
    706                    createEReference(predicateNodeEClass, PREDICATE_NODE__PREDICATE);
    707
    708                    predicateNodeOutputEClass = createEClass(PREDICATE_NODE_OUTPUT);
    709
    710                    joinInputEClass = createEClass(JOIN_INPUT);
    711                    createEAttribute(joinInputEClass, JOIN_INPUT__INDEX);
    712                    createEReference(joinInputEClass, JOIN_INPUT__JOIN_NODE);
    713
    714                    joinNodeEClass = createEClass(JOIN_NODE);
    715                    createEReference(joinNodeEClass, JOIN_NODE__COLLECTORS);
    716                    createEAttribute(joinNodeEClass, JOIN_NODE__OUTPUT_INDICES);
    717                    createEReference(joinNodeEClass, JOIN_NODE__HANDLER);
    718                    createEReference(joinNodeEClass, JOIN_NODE__NEXT);
    719                    createEReference(joinNodeEClass, JOIN_NODE__PREDICATE);
    720                    createEReference(joinNodeEClass, JOIN_NODE__PREV);
    721                    createEReference(joinNodeEClass, JOIN_NODE__JOIN_INPUTS);
    722
    723                    joinInputCollectorEClass = createEClass(JOIN_INPUT_COLLECTOR);
    724                    createEAttribute(joinInputCollectorEClass, JOIN_INPUT_COLLECTOR__INDICES);
    725                    createEReference(joinInputCollectorEClass, JOIN_INPUT_COLLECTOR__JOIN_ENTRIES);
    726
    727                    joinEntryEClass = createEClass(JOIN_ENTRY);
    728                    createEReference(joinEntryEClass, JOIN_ENTRY__EVENTS);
    729
    730                    extractorEClass = createEClass(EXTRACTOR);
    731                    createEAttribute(extractorEClass, EXTRACTOR__ROLE);
    732                    createEReference(extractorEClass, EXTRACTOR__PARTS);
    733                    createEAttribute(extractorEClass, EXTRACTOR__PARAMETER_INDICES);
    734                    createEAttribute(extractorEClass, EXTRACTOR__COST);
    735
    736                    predicateEClass = createEClass(PREDICATE);
    737
    738                    compositeEventEClass = createEClass(COMPOSITE_EVENT);
    739                    createEReference(compositeEventEClass, COMPOSITE_EVENT__PARTS);
    740            }
    741
    742            /**
    743             * <!-- begin-user-doc -->
    744             * <!-- end-user-doc -->
    745             * @generated
    746             */
    747            private boolean isInitialized = false;
    748
    749            /**
    750             * Complete the initialization of the package and its meta-model.  This
    751             * method is guarded to have no affect on any invocation but its first.
    752             * <!-- begin-user-doc -->
    753             * <!-- end-user-doc -->
    754             * @generated
    755             */
    756            public void initializePackageContents() {
    757                    if (isInitialized) return;
    758                    isInitialized = true;
    759
    760                    // Initialize package
    761                    setName(eNAME);
    762                    setNsPrefix(eNS_PREFIX);
    763                    setNsURI(eNS_URI);
    764
    765                    // Create type parameters
    766
    767                    // Set bounds for type parameters
    768
    769                    // Add supertypes to classes
    770                    handlerEClass.getESuperTypes().add(this.getPredicateNodeOutput());
    771                    eventEClass.getESuperTypes().add(this.getSnapshotElement());
    772                    predicateNodeEClass.getESuperTypes().add(this.getSnapshotElement());
    773                    predicateNodeOutputEClass.getESuperTypes().add(this.getSnapshotElement());
    774                    joinInputEClass.getESuperTypes().add(this.getPredicateNodeOutput());
    775                    joinNodeEClass.getESuperTypes().add(this.getSnapshotElement());
    776                    extractorEClass.getESuperTypes().add(this.getSnapshotElement());
    777                    predicateEClass.getESuperTypes().add(this.getExtractor());
    778                    compositeEventEClass.getESuperTypes().add(this.getEvent());
    779
    780                    // Initialize classes and features; add operations and parameters
    781                    initEClass(snapshotEClass, Snapshot.class, "Snapshot", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    782                    initEAttribute(getSnapshot_Timestamp(), ecorePackage.getEDate(), "timestamp", null, 0, 1, Snapshot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    783                    initEReference(getSnapshot_Elements(), this.getSnapshotElement(), this.getSnapshotElement_Snapshot(), "elements", null, 0, -1, Snapshot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    784                    initEAttribute(getSnapshot_JvmId(), ecorePackage.getEString(), "jvmId", null, 0, 1, Snapshot.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    785
    786                    initEClass(snapshotElementEClass, SnapshotElement.class, "SnapshotElement", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    787                    initEAttribute(getSnapshotElement_Id(), ecorePackage.getEString(), "id", null, 0, 1, SnapshotElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    788                    initEAttribute(getSnapshotElement_Name(), ecorePackage.getEString(), "name", null, 0, 1, SnapshotElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    789                    initEAttribute(getSnapshotElement_Details(), ecorePackage.getEString(), "details", null, 0, 1, SnapshotElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    790                    initEReference(getSnapshotElement_Snapshot(), this.getSnapshot(), this.getSnapshot_Elements(), "snapshot", null, 0, 1, SnapshotElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    791
    792                    initEClass(handlerEClass, Handler.class, "Handler", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    793                    initEReference(getHandler_JoinNode(), this.getJoinNode(), this.getJoinNode_Handler(), "joinNode", null, 0, 1, Handler.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    794
    795                    initEClass(derivationEClass, Derivation.class, "Derivation", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    796                    initEReference(getDerivation_Handler(), this.getHandler(), null, "handler", null, 1, 1, Derivation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    797                    initEReference(getDerivation_Inputs(), this.getEvent(), null, "inputs", null, 1, -1, Derivation.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    798
    799                    initEClass(eventEClass, Event.class, "Event", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    800                    initEReference(getEvent_Derivations(), this.getDerivation(), null, "derivations", null, 0, -1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    801                    initEAttribute(getEvent_PartRole(), ecorePackage.getEString(), "partRole", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    802                    initEAttribute(getEvent_DirectPost(), ecorePackage.getEBoolean(), "directPost", null, 0, 1, Event.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    803
    804                    initEClass(predicateNodeEClass, PredicateNode.class, "PredicateNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    805                    initEReference(getPredicateNode_TrueOutputs(), this.getPredicateNodeOutput(), null, "trueOutputs", null, 0, -1, PredicateNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    806                    initEReference(getPredicateNode_FalseOutputs(), this.getPredicateNodeOutput(), null, "falseOutputs", null, 0, -1, PredicateNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    807                    initEReference(getPredicateNode_TrueChildren(), this.getPredicateNode(), null, "trueChildren", null, 0, -1, PredicateNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    808                    initEReference(getPredicateNode_FalseChildren(), this.getPredicateNode(), null, "falseChildren", null, 0, -1, PredicateNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    809                    initEAttribute(getPredicateNode_IsRoot(), ecorePackage.getEBoolean(), "isRoot", null, 0, 1, PredicateNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    810                    initEReference(getPredicateNode_Predicate(), this.getPredicate(), null, "predicate", null, 1, 1, PredicateNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    811
    812                    initEClass(predicateNodeOutputEClass, PredicateNodeOutput.class, "PredicateNodeOutput", IS_ABSTRACT, IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    813
    814                    initEClass(joinInputEClass, JoinInput.class, "JoinInput", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    815                    initEAttribute(getJoinInput_Index(), ecorePackage.getEInt(), "index", null, 0, 1, JoinInput.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    816                    initEReference(getJoinInput_JoinNode(), this.getJoinNode(), this.getJoinNode_JoinInputs(), "joinNode", null, 1, 1, JoinInput.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    817
    818                    initEClass(joinNodeEClass, JoinNode.class, "JoinNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    819                    initEReference(getJoinNode_Collectors(), this.getJoinInputCollector(), null, "collectors", null, 2, -1, JoinNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    820                    initEAttribute(getJoinNode_OutputIndices(), ecorePackage.getEInt(), "outputIndices", null, 0, -1, JoinNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    821                    initEReference(getJoinNode_Handler(), this.getHandler(), this.getHandler_JoinNode(), "handler", null, 0, 1, JoinNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    822                    initEReference(getJoinNode_Next(), this.getJoinNode(), this.getJoinNode_Prev(), "next", null, 0, 1, JoinNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    823                    initEReference(getJoinNode_Predicate(), this.getPredicate(), null, "predicate", null, 0, 1, JoinNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    824                    initEReference(getJoinNode_Prev(), this.getJoinNode(), this.getJoinNode_Next(), "prev", null, 0, -1, JoinNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    825                    initEReference(getJoinNode_JoinInputs(), this.getJoinInput(), this.getJoinInput_JoinNode(), "joinInputs", null, 0, -1, JoinNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    826
    827                    initEClass(joinInputCollectorEClass, JoinInputCollector.class, "JoinInputCollector", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    828                    initEAttribute(getJoinInputCollector_Indices(), ecorePackage.getEInt(), "indices", null, 1, -1, JoinInputCollector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    829                    initEReference(getJoinInputCollector_JoinEntries(), this.getJoinEntry(), null, "joinEntries", null, 0, -1, JoinInputCollector.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    830
    831                    initEClass(joinEntryEClass, JoinEntry.class, "JoinEntry", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    832                    initEReference(getJoinEntry_Events(), this.getEvent(), null, "events", null, 1, -1, JoinEntry.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    833
    834                    initEClass(extractorEClass, Extractor.class, "Extractor", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    835                    initEAttribute(getExtractor_Role(), ecorePackage.getEString(), "role", null, 0, 1, Extractor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    836                    initEReference(getExtractor_Parts(), this.getExtractor(), null, "parts", null, 0, -1, Extractor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    837                    initEAttribute(getExtractor_ParameterIndices(), ecorePackage.getEInt(), "parameterIndices", null, 0, -1, Extractor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    838                    initEAttribute(getExtractor_Cost(), ecorePackage.getEDoubleObject(), "cost", null, 0, 1, Extractor.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    839
    840                    initEClass(predicateEClass, Predicate.class, "Predicate", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    841
    842                    initEClass(compositeEventEClass, CompositeEvent.class, "CompositeEvent", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
    843                    initEReference(getCompositeEvent_Parts(), this.getEvent(), null, "parts", null, 0, -1, CompositeEvent.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
    844
    845                    // Create resource
    846                    createResource(eNS_URI);
    847            }
    848
    849    } //SnapshotPackageImpl