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