    001    /**
    002     * <copyright>
    003     * </copyright>
    004     *
    005     * $Id$
    006     */
    007    package com.hammurapi.eventbus.snapshot.impl;
    008
    009    import com.hammurapi.eventbus.snapshot.Snapshot;
    010    import com.hammurapi.eventbus.snapshot.SnapshotElement;
    011    import com.hammurapi.eventbus.snapshot.SnapshotPackage;
    012
    013    import java.util.Collection;
    014    import java.util.Date;
    015
    016    import org.eclipse.emf.common.notify.Notification;
    017    import org.eclipse.emf.common.notify.NotificationChain;
    018
    019    import org.eclipse.emf.common.util.EList;
    020
    021    import org.eclipse.emf.ecore.EClass;
    022    import org.eclipse.emf.ecore.InternalEObject;
    023
    024    import org.eclipse.emf.ecore.impl.ENotificationImpl;
    025    import org.eclipse.emf.ecore.impl.EObjectImpl;
    026
    027    import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
    028    import org.eclipse.emf.ecore.util.EObjectContainmentEList;
    029    import org.eclipse.emf.ecore.util.InternalEList;
    030
    031    /**
    032     * <!-- begin-user-doc -->
    033     * An implementation of the model object '<em><b>Snapshot</b></em>'.
    034     * <!-- end-user-doc -->
    035     * <p>
    036     * The following features are implemented:
    037     * <ul>
    038     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.SnapshotImpl#getTimestamp <em>Timestamp</em>}</li>
    039     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.SnapshotImpl#getElements <em>Elements</em>}</li>
    040     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.SnapshotImpl#getJvmId <em>Jvm Id</em>}</li>
    041     * </ul>
    042     * </p>
    043     *
    044     * @generated
    045     */
    046    public class SnapshotImpl extends EObjectImpl implements Snapshot {
    047            /**
    048             * The default value of the '{@link #getTimestamp() <em>Timestamp</em>}' attribute.
    049             * <!-- begin-user-doc -->
    050             * <!-- end-user-doc -->
    051             * @see #getTimestamp()
    052             * @generated
    053             * @ordered
    054             */
    055            protected static final Date TIMESTAMP_EDEFAULT = null;
    056
    057            /**
    058             * The cached value of the '{@link #getTimestamp() <em>Timestamp</em>}' attribute.
    059             * <!-- begin-user-doc -->
    060             * <!-- end-user-doc -->
    061             * @see #getTimestamp()
    062             * @generated
    063             * @ordered
    064             */
    065            protected Date timestamp = TIMESTAMP_EDEFAULT;
    066
    067            /**
    068             * The cached value of the '{@link #getElements() <em>Elements</em>}' containment reference list.
    069             * <!-- begin-user-doc -->
    070             * <!-- end-user-doc -->
    071             * @see #getElements()
    072             * @generated
    073             * @ordered
    074             */
    075            protected EList<SnapshotElement> elements;
    076
    077            /**
    078             * The default value of the '{@link #getJvmId() <em>Jvm Id</em>}' attribute.
    079             * <!-- begin-user-doc -->
    080             * <!-- end-user-doc -->
    081             * @see #getJvmId()
    082             * @generated
    083             * @ordered
    084             */
    085            protected static final String JVM_ID_EDEFAULT = null;
    086
    087            /**
    088             * The cached value of the '{@link #getJvmId() <em>Jvm Id</em>}' attribute.
    089             * <!-- begin-user-doc -->
    090             * <!-- end-user-doc -->
    091             * @see #getJvmId()
    092             * @generated
    093             * @ordered
    094             */
    095            protected String jvmId = JVM_ID_EDEFAULT;
    096
    097            /**
    098             * <!-- begin-user-doc -->
    099             * <!-- end-user-doc -->
    100             * @generated
    101             */
    102            protected SnapshotImpl() {
    103                    super();
    104            }
    105
    106            /**
    107             * <!-- begin-user-doc -->
    108             * <!-- end-user-doc -->
    109             * @generated
    110             */
    111            @Override
    112            protected EClass eStaticClass() {
    113                    return SnapshotPackage.Literals.SNAPSHOT;
    114            }
    115
    116            /**
    117             * <!-- begin-user-doc -->
    118             * <!-- end-user-doc -->
    119             * @generated
    120             */
    121            public Date getTimestamp() {
    122                    return timestamp;
    123            }
    124
    125            /**
    126             * <!-- begin-user-doc -->
    127             * <!-- end-user-doc -->
    128             * @generated
    129             */
    130            public void setTimestamp(Date newTimestamp) {
    131                    Date oldTimestamp = timestamp;
    132                    timestamp = newTimestamp;
    133                    if (eNotificationRequired())
    134                            eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.SNAPSHOT__TIMESTAMP, oldTimestamp, timestamp));
    135            }
    136
    137            /**
    138             * <!-- begin-user-doc -->
    139             * <!-- end-user-doc -->
    140             * @generated
    141             */
    142            public EList<SnapshotElement> getElements() {
    143                    if (elements == null) {
    144                            elements = new EObjectContainmentWithInverseEList<SnapshotElement>(SnapshotElement.class, this, SnapshotPackage.SNAPSHOT__ELEMENTS, SnapshotPackage.SNAPSHOT_ELEMENT__SNAPSHOT);
    145                    }
    146                    return elements;
    147            }
    148
    149            /**
    150             * <!-- begin-user-doc -->
    151             * <!-- end-user-doc -->
    152             * @generated
    153             */
    154            public String getJvmId() {
    155                    return jvmId;
    156            }
    157
    158            /**
    159             * <!-- begin-user-doc -->
    160             * <!-- end-user-doc -->
    161             * @generated
    162             */
    163            public void setJvmId(String newJvmId) {
    164                    String oldJvmId = jvmId;
    165                    jvmId = newJvmId;
    166                    if (eNotificationRequired())
    167                            eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.SNAPSHOT__JVM_ID, oldJvmId, jvmId));
    168            }
    169
    170            /**
    171             * <!-- begin-user-doc -->
    172             * <!-- end-user-doc -->
    173             * @generated
    174             */
    175            @SuppressWarnings("unchecked")
    176            @Override
    177            public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
    178                    switch (featureID) {
    179                            case SnapshotPackage.SNAPSHOT__ELEMENTS:
    180                                    return ((InternalEList<InternalEObject>)(InternalEList<?>)getElements()).basicAdd(otherEnd, msgs);
    181                    }
    182                    return super.eInverseAdd(otherEnd, featureID, msgs);
    183            }
    184
    185            /**
    186             * <!-- begin-user-doc -->
    187             * <!-- end-user-doc -->
    188             * @generated
    189             */
    190            @Override
    191            public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
    192                    switch (featureID) {
    193                            case SnapshotPackage.SNAPSHOT__ELEMENTS:
    194                                    return ((InternalEList<?>)getElements()).basicRemove(otherEnd, msgs);
    195                    }
    196                    return super.eInverseRemove(otherEnd, featureID, msgs);
    197            }
    198
    199            /**
    200             * <!-- begin-user-doc -->
    201             * <!-- end-user-doc -->
    202             * @generated
    203             */
    204            @Override
    205            public Object eGet(int featureID, boolean resolve, boolean coreType) {
    206                    switch (featureID) {
    207                            case SnapshotPackage.SNAPSHOT__TIMESTAMP:
    208                                    return getTimestamp();
    209                            case SnapshotPackage.SNAPSHOT__ELEMENTS:
    210                                    return getElements();
    211                            case SnapshotPackage.SNAPSHOT__JVM_ID:
    212                                    return getJvmId();
    213                    }
    214                    return super.eGet(featureID, resolve, coreType);
    215            }
    216
    217            /**
    218             * <!-- begin-user-doc -->
    219             * <!-- end-user-doc -->
    220             * @generated
    221             */
    222            @SuppressWarnings("unchecked")
    223            @Override
    224            public void eSet(int featureID, Object newValue) {
    225                    switch (featureID) {
    226                            case SnapshotPackage.SNAPSHOT__TIMESTAMP:
    227                                    setTimestamp((Date)newValue);
    228                                    return;
    229                            case SnapshotPackage.SNAPSHOT__ELEMENTS:
    230                                    getElements().clear();
    231                                    getElements().addAll((Collection<? extends SnapshotElement>)newValue);
    232                                    return;
    233                            case SnapshotPackage.SNAPSHOT__JVM_ID:
    234                                    setJvmId((String)newValue);
    235                                    return;
    236                    }
    237                    super.eSet(featureID, newValue);
    238            }
    239
    240            /**
    241             * <!-- begin-user-doc -->
    242             * <!-- end-user-doc -->
    243             * @generated
    244             */
    245            @Override
    246            public void eUnset(int featureID) {
    247                    switch (featureID) {
    248                            case SnapshotPackage.SNAPSHOT__TIMESTAMP:
    249                                    setTimestamp(TIMESTAMP_EDEFAULT);
    250                                    return;
    251                            case SnapshotPackage.SNAPSHOT__ELEMENTS:
    252                                    getElements().clear();
    253                                    return;
    254                            case SnapshotPackage.SNAPSHOT__JVM_ID:
    255                                    setJvmId(JVM_ID_EDEFAULT);
    256                                    return;
    257                    }
    258                    super.eUnset(featureID);
    259            }
    260
    261            /**
    262             * <!-- begin-user-doc -->
    263             * <!-- end-user-doc -->
    264             * @generated
    265             */
    266            @Override
    267            public boolean eIsSet(int featureID) {
    268                    switch (featureID) {
    269                            case SnapshotPackage.SNAPSHOT__TIMESTAMP:
    270                                    return TIMESTAMP_EDEFAULT == null ? timestamp != null : !TIMESTAMP_EDEFAULT.equals(timestamp);
    271                            case SnapshotPackage.SNAPSHOT__ELEMENTS:
    272                                    return elements != null && !elements.isEmpty();
    273                            case SnapshotPackage.SNAPSHOT__JVM_ID:
    274                                    return JVM_ID_EDEFAULT == null ? jvmId != null : !JVM_ID_EDEFAULT.equals(jvmId);
    275                    }
    276                    return super.eIsSet(featureID);
    277            }
    278
    279            /**
    280             * <!-- begin-user-doc -->
    281             * <!-- end-user-doc -->
    282             * @generated
    283             */
    284            @Override
    285            public String toString() {
    286                    if (eIsProxy()) return super.toString();
    287
    288                    StringBuffer result = new StringBuffer(super.toString());
    289                    result.append(" (timestamp: ");
    290                    result.append(timestamp);
    291                    result.append(", jvmId: ");
    292                    result.append(jvmId);
    293                    result.append(')');
    294                    return result.toString();
    295            }
    296
    297    } //SnapshotImpl