    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.Event;
    011    import com.hammurapi.eventbus.snapshot.SnapshotPackage;
    012
    013    import java.util.Collection;
    014    import org.eclipse.emf.common.notify.Notification;
    015    import org.eclipse.emf.common.notify.NotificationChain;
    016
    017    import org.eclipse.emf.common.util.EList;
    018    import org.eclipse.emf.ecore.EClass;
    019    import org.eclipse.emf.ecore.InternalEObject;
    020
    021    import org.eclipse.emf.ecore.util.EObjectContainmentEList;
    022    import org.eclipse.emf.ecore.util.InternalEList;
    023    import org.eclipse.emf.ecore.impl.ENotificationImpl;
    024
    025    /**
    026     * <!-- begin-user-doc -->
    027     * An implementation of the model object '<em><b>Composite Event</b></em>'.
    028     * <!-- end-user-doc -->
    029     * <p>
    030     * The following features are implemented:
    031     * <ul>
    032     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.CompositeEventImpl#getParts <em>Parts</em>}</li>
    033     * </ul>
    034     * </p>
    035     *
    036     * @generated
    037     */
    038    public class CompositeEventImpl extends EventImpl implements CompositeEvent {
    039            /**
    040             * The cached value of the '{@link #getParts() <em>Parts</em>}' containment reference list.
    041             * <!-- begin-user-doc -->
    042             * <!-- end-user-doc -->
    043             * @see #getParts()
    044             * @generated
    045             * @ordered
    046             */
    047            protected EList<Event> parts;
    048
    049            /**
    050             * <!-- begin-user-doc -->
    051             * <!-- end-user-doc -->
    052             * @generated
    053             */
    054            protected CompositeEventImpl() {
    055                    super();
    056            }
    057
    058            /**
    059             * <!-- begin-user-doc -->
    060             * <!-- end-user-doc -->
    061             * @generated
    062             */
    063            @Override
    064            protected EClass eStaticClass() {
    065                    return SnapshotPackage.Literals.COMPOSITE_EVENT;
    066            }
    067
    068            /**
    069             * <!-- begin-user-doc -->
    070             * <!-- end-user-doc -->
    071             * @generated
    072             */
    073            public EList<Event> getParts() {
    074                    if (parts == null) {
    075                            parts = new EObjectContainmentEList<Event>(Event.class, this, SnapshotPackage.COMPOSITE_EVENT__PARTS);
    076                    }
    077                    return parts;
    078            }
    079
    080            /**
    081             * <!-- begin-user-doc -->
    082             * <!-- end-user-doc -->
    083             * @generated
    084             */
    085            @Override
    086            public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
    087                    switch (featureID) {
    088                            case SnapshotPackage.COMPOSITE_EVENT__PARTS:
    089                                    return ((InternalEList<?>)getParts()).basicRemove(otherEnd, msgs);
    090                    }
    091                    return super.eInverseRemove(otherEnd, featureID, msgs);
    092            }
    093
    094            /**
    095             * <!-- begin-user-doc -->
    096             * <!-- end-user-doc -->
    097             * @generated
    098             */
    099            @Override
    100            public Object eGet(int featureID, boolean resolve, boolean coreType) {
    101                    switch (featureID) {
    102                            case SnapshotPackage.COMPOSITE_EVENT__PARTS:
    103                                    return getParts();
    104                    }
    105                    return super.eGet(featureID, resolve, coreType);
    106            }
    107
    108            /**
    109             * <!-- begin-user-doc -->
    110             * <!-- end-user-doc -->
    111             * @generated
    112             */
    113            @SuppressWarnings("unchecked")
    114            @Override
    115            public void eSet(int featureID, Object newValue) {
    116                    switch (featureID) {
    117                            case SnapshotPackage.COMPOSITE_EVENT__PARTS:
    118                                    getParts().clear();
    119                                    getParts().addAll((Collection<? extends Event>)newValue);
    120                                    return;
    121                    }
    122                    super.eSet(featureID, newValue);
    123            }
    124
    125            /**
    126             * <!-- begin-user-doc -->
    127             * <!-- end-user-doc -->
    128             * @generated
    129             */
    130            @Override
    131            public void eUnset(int featureID) {
    132                    switch (featureID) {
    133                            case SnapshotPackage.COMPOSITE_EVENT__PARTS:
    134                                    getParts().clear();
    135                                    return;
    136                    }
    137                    super.eUnset(featureID);
    138            }
    139
    140            /**
    141             * <!-- begin-user-doc -->
    142             * <!-- end-user-doc -->
    143             * @generated
    144             */
    145            @Override
    146            public boolean eIsSet(int featureID) {
    147                    switch (featureID) {
    148                            case SnapshotPackage.COMPOSITE_EVENT__PARTS:
    149                                    return parts != null && !parts.isEmpty();
    150                    }
    151                    return super.eIsSet(featureID);
    152            }
    153
    154    } //CompositeEventImpl