    001    /**
    002     * <copyright>
    003     * </copyright>
    004     *
    005     * $Id$
    006     */
    007    package com.hammurapi.eventbus.snapshot.impl;
    008
    009    import com.hammurapi.eventbus.snapshot.Derivation;
    010    import com.hammurapi.eventbus.snapshot.Event;
    011    import com.hammurapi.eventbus.snapshot.Snapshot;
    012    import com.hammurapi.eventbus.snapshot.SnapshotPackage;
    013
    014    import java.util.Collection;
    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.EObjectContainmentEList;
    028    import org.eclipse.emf.ecore.util.EcoreUtil;
    029    import org.eclipse.emf.ecore.util.InternalEList;
    030
    031    /**
    032     * <!-- begin-user-doc -->
    033     * An implementation of the model object '<em><b>Event</b></em>'.
    034     * <!-- end-user-doc -->
    035     * <p>
    036     * The following features are implemented:
    037     * <ul>
    038     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.EventImpl#getId <em>Id</em>}</li>
    039     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.EventImpl#getName <em>Name</em>}</li>
    040     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.EventImpl#getDetails <em>Details</em>}</li>
    041     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.EventImpl#getSnapshot <em>Snapshot</em>}</li>
    042     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.EventImpl#getDerivations <em>Derivations</em>}</li>
    043     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.EventImpl#getPartRole <em>Part Role</em>}</li>
    044     *   <li>{@link com.hammurapi.eventbus.snapshot.impl.EventImpl#isDirectPost <em>Direct Post</em>}</li>
    045     * </ul>
    046     * </p>
    047     *
    048     * @generated
    049     */
    050    public class EventImpl extends EObjectImpl implements Event {
    051            /**
    052             * The default value of the '{@link #getId() <em>Id</em>}' attribute.
    053             * <!-- begin-user-doc -->
    054             * <!-- end-user-doc -->
    055             * @see #getId()
    056             * @generated
    057             * @ordered
    058             */
    059            protected static final String ID_EDEFAULT = null;
    060
    061            /**
    062             * The cached value of the '{@link #getId() <em>Id</em>}' attribute.
    063             * <!-- begin-user-doc -->
    064             * <!-- end-user-doc -->
    065             * @see #getId()
    066             * @generated
    067             * @ordered
    068             */
    069            protected String id = ID_EDEFAULT;
    070
    071            /**
    072             * The default value of the '{@link #getName() <em>Name</em>}' attribute.
    073             * <!-- begin-user-doc -->
    074             * <!-- end-user-doc -->
    075             * @see #getName()
    076             * @generated
    077             * @ordered
    078             */
    079            protected static final String NAME_EDEFAULT = null;
    080
    081            /**
    082             * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
    083             * <!-- begin-user-doc -->
    084             * <!-- end-user-doc -->
    085             * @see #getName()
    086             * @generated
    087             * @ordered
    088             */
    089            protected String name = NAME_EDEFAULT;
    090
    091            /**
    092             * The default value of the '{@link #getDetails() <em>Details</em>}' attribute.
    093             * <!-- begin-user-doc -->
    094             * <!-- end-user-doc -->
    095             * @see #getDetails()
    096             * @generated
    097             * @ordered
    098             */
    099            protected static final String DETAILS_EDEFAULT = null;
    100
    101            /**
    102             * The cached value of the '{@link #getDetails() <em>Details</em>}' attribute.
    103             * <!-- begin-user-doc -->
    104             * <!-- end-user-doc -->
    105             * @see #getDetails()
    106             * @generated
    107             * @ordered
    108             */
    109            protected String details = DETAILS_EDEFAULT;
    110
    111            /**
    112             * The cached value of the '{@link #getDerivations() <em>Derivations</em>}' containment reference list.
    113             * <!-- begin-user-doc -->
    114             * <!-- end-user-doc -->
    115             * @see #getDerivations()
    116             * @generated
    117             * @ordered
    118             */
    119            protected EList<Derivation> derivations;
    120
    121            /**
    122             * The default value of the '{@link #getPartRole() <em>Part Role</em>}' attribute.
    123             * <!-- begin-user-doc -->
    124             * <!-- end-user-doc -->
    125             * @see #getPartRole()
    126             * @generated
    127             * @ordered
    128             */
    129            protected static final String PART_ROLE_EDEFAULT = null;
    130
    131            /**
    132             * The cached value of the '{@link #getPartRole() <em>Part Role</em>}' attribute.
    133             * <!-- begin-user-doc -->
    134             * <!-- end-user-doc -->
    135             * @see #getPartRole()
    136             * @generated
    137             * @ordered
    138             */
    139            protected String partRole = PART_ROLE_EDEFAULT;
    140
    141            /**
    142             * The default value of the '{@link #isDirectPost() <em>Direct Post</em>}' attribute.
    143             * <!-- begin-user-doc -->
    144             * <!-- end-user-doc -->
    145             * @see #isDirectPost()
    146             * @generated
    147             * @ordered
    148             */
    149            protected static final boolean DIRECT_POST_EDEFAULT = false;
    150
    151            /**
    152             * The cached value of the '{@link #isDirectPost() <em>Direct Post</em>}' attribute.
    153             * <!-- begin-user-doc -->
    154             * <!-- end-user-doc -->
    155             * @see #isDirectPost()
    156             * @generated
    157             * @ordered
    158             */
    159            protected boolean directPost = DIRECT_POST_EDEFAULT;
    160
    161            /**
    162             * <!-- begin-user-doc -->
    163             * <!-- end-user-doc -->
    164             * @generated
    165             */
    166            protected EventImpl() {
    167                    super();
    168            }
    169
    170            /**
    171             * <!-- begin-user-doc -->
    172             * <!-- end-user-doc -->
    173             * @generated
    174             */
    175            @Override
    176            protected EClass eStaticClass() {
    177                    return SnapshotPackage.Literals.EVENT;
    178            }
    179
    180            /**
    181             * <!-- begin-user-doc -->
    182             * <!-- end-user-doc -->
    183             * @generated
    184             */
    185            public String getId() {
    186                    return id;
    187            }
    188
    189            /**
    190             * <!-- begin-user-doc -->
    191             * <!-- end-user-doc -->
    192             * @generated
    193             */
    194            public void setId(String newId) {
    195                    String oldId = id;
    196                    id = newId;
    197                    if (eNotificationRequired())
    198                            eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.EVENT__ID, oldId, id));
    199            }
    200
    201            /**
    202             * <!-- begin-user-doc -->
    203             * <!-- end-user-doc -->
    204             * @generated
    205             */
    206            public String getName() {
    207                    return name;
    208            }
    209
    210            /**
    211             * <!-- begin-user-doc -->
    212             * <!-- end-user-doc -->
    213             * @generated
    214             */
    215            public void setName(String newName) {
    216                    String oldName = name;
    217                    name = newName;
    218                    if (eNotificationRequired())
    219                            eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.EVENT__NAME, oldName, name));
    220            }
    221
    222            /**
    223             * <!-- begin-user-doc -->
    224             * <!-- end-user-doc -->
    225             * @generated
    226             */
    227            public String getDetails() {
    228                    return details;
    229            }
    230
    231            /**
    232             * <!-- begin-user-doc -->
    233             * <!-- end-user-doc -->
    234             * @generated
    235             */
    236            public void setDetails(String newDetails) {
    237                    String oldDetails = details;
    238                    details = newDetails;
    239                    if (eNotificationRequired())
    240                            eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.EVENT__DETAILS, oldDetails, details));
    241            }
    242
    243            /**
    244             * <!-- begin-user-doc -->
    245             * <!-- end-user-doc -->
    246             * @generated
    247             */
    248            public Snapshot getSnapshot() {
    249                    if (eContainerFeatureID() != SnapshotPackage.EVENT__SNAPSHOT) return null;
    250                    return (Snapshot)eContainer();
    251            }
    252
    253            /**
    254             * <!-- begin-user-doc -->
    255             * <!-- end-user-doc -->
    256             * @generated
    257             */
    258            public NotificationChain basicSetSnapshot(Snapshot newSnapshot, NotificationChain msgs) {
    259                    msgs = eBasicSetContainer((InternalEObject)newSnapshot, SnapshotPackage.EVENT__SNAPSHOT, msgs);
    260                    return msgs;
    261            }
    262
    263            /**
    264             * <!-- begin-user-doc -->
    265             * <!-- end-user-doc -->
    266             * @generated
    267             */
    268            public void setSnapshot(Snapshot newSnapshot) {
    269                    if (newSnapshot != eInternalContainer() || (eContainerFeatureID() != SnapshotPackage.EVENT__SNAPSHOT && newSnapshot != null)) {
    270                            if (EcoreUtil.isAncestor(this, newSnapshot))
    271                                    throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
    272                            NotificationChain msgs = null;
    273                            if (eInternalContainer() != null)
    274                                    msgs = eBasicRemoveFromContainer(msgs);
    275                            if (newSnapshot != null)
    276                                    msgs = ((InternalEObject)newSnapshot).eInverseAdd(this, SnapshotPackage.SNAPSHOT__ELEMENTS, Snapshot.class, msgs);
    277                            msgs = basicSetSnapshot(newSnapshot, msgs);
    278                            if (msgs != null) msgs.dispatch();
    279                    }
    280                    else if (eNotificationRequired())
    281                            eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.EVENT__SNAPSHOT, newSnapshot, newSnapshot));
    282            }
    283
    284            /**
    285             * <!-- begin-user-doc -->
    286             * <!-- end-user-doc -->
    287             * @generated
    288             */
    289            public EList<Derivation> getDerivations() {
    290                    if (derivations == null) {
    291                            derivations = new EObjectContainmentEList<Derivation>(Derivation.class, this, SnapshotPackage.EVENT__DERIVATIONS);
    292                    }
    293                    return derivations;
    294            }
    295
    296            /**
    297             * <!-- begin-user-doc -->
    298             * <!-- end-user-doc -->
    299             * @generated
    300             */
    301            public String getPartRole() {
    302                    return partRole;
    303            }
    304
    305            /**
    306             * <!-- begin-user-doc -->
    307             * <!-- end-user-doc -->
    308             * @generated
    309             */
    310            public void setPartRole(String newPartRole) {
    311                    String oldPartRole = partRole;
    312                    partRole = newPartRole;
    313                    if (eNotificationRequired())
    314                            eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.EVENT__PART_ROLE, oldPartRole, partRole));
    315            }
    316
    317            /**
    318             * <!-- begin-user-doc -->
    319             * <!-- end-user-doc -->
    320             * @generated
    321             */
    322            public boolean isDirectPost() {
    323                    return directPost;
    324            }
    325
    326            /**
    327             * <!-- begin-user-doc -->
    328             * <!-- end-user-doc -->
    329             * @generated
    330             */
    331            public void setDirectPost(boolean newDirectPost) {
    332                    boolean oldDirectPost = directPost;
    333                    directPost = newDirectPost;
    334                    if (eNotificationRequired())
    335                            eNotify(new ENotificationImpl(this, Notification.SET, SnapshotPackage.EVENT__DIRECT_POST, oldDirectPost, directPost));
    336            }
    337
    338            /**
    339             * <!-- begin-user-doc -->
    340             * <!-- end-user-doc -->
    341             * @generated
    342             */
    343            @Override
    344            public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
    345                    switch (featureID) {
    346                            case SnapshotPackage.EVENT__SNAPSHOT:
    347                                    if (eInternalContainer() != null)
    348                                            msgs = eBasicRemoveFromContainer(msgs);
    349                                    return basicSetSnapshot((Snapshot)otherEnd, msgs);
    350                    }
    351                    return super.eInverseAdd(otherEnd, featureID, msgs);
    352            }
    353
    354            /**
    355             * <!-- begin-user-doc -->
    356             * <!-- end-user-doc -->
    357             * @generated
    358             */
    359            @Override
    360            public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
    361                    switch (featureID) {
    362                            case SnapshotPackage.EVENT__SNAPSHOT:
    363                                    return basicSetSnapshot(null, msgs);
    364                            case SnapshotPackage.EVENT__DERIVATIONS:
    365                                    return ((InternalEList<?>)getDerivations()).basicRemove(otherEnd, msgs);
    366                    }
    367                    return super.eInverseRemove(otherEnd, featureID, msgs);
    368            }
    369
    370            /**
    371             * <!-- begin-user-doc -->
    372             * <!-- end-user-doc -->
    373             * @generated
    374             */
    375            @Override
    376            public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
    377                    switch (eContainerFeatureID()) {
    378                            case SnapshotPackage.EVENT__SNAPSHOT:
    379                                    return eInternalContainer().eInverseRemove(this, SnapshotPackage.SNAPSHOT__ELEMENTS, Snapshot.class, msgs);
    380                    }
    381                    return super.eBasicRemoveFromContainerFeature(msgs);
    382            }
    383
    384            /**
    385             * <!-- begin-user-doc -->
    386             * <!-- end-user-doc -->
    387             * @generated
    388             */
    389            @Override
    390            public Object eGet(int featureID, boolean resolve, boolean coreType) {
    391                    switch (featureID) {
    392                            case SnapshotPackage.EVENT__ID:
    393                                    return getId();
    394                            case SnapshotPackage.EVENT__NAME:
    395                                    return getName();
    396                            case SnapshotPackage.EVENT__DETAILS:
    397                                    return getDetails();
    398                            case SnapshotPackage.EVENT__SNAPSHOT:
    399                                    return getSnapshot();
    400                            case SnapshotPackage.EVENT__DERIVATIONS:
    401                                    return getDerivations();
    402                            case SnapshotPackage.EVENT__PART_ROLE:
    403                                    return getPartRole();
    404                            case SnapshotPackage.EVENT__DIRECT_POST:
    405                                    return isDirectPost();
    406                    }
    407                    return super.eGet(featureID, resolve, coreType);
    408            }
    409
    410            /**
    411             * <!-- begin-user-doc -->
    412             * <!-- end-user-doc -->
    413             * @generated
    414             */
    415            @SuppressWarnings("unchecked")
    416            @Override
    417            public void eSet(int featureID, Object newValue) {
    418                    switch (featureID) {
    419                            case SnapshotPackage.EVENT__ID:
    420                                    setId((String)newValue);
    421                                    return;
    422                            case SnapshotPackage.EVENT__NAME:
    423                                    setName((String)newValue);
    424                                    return;
    425                            case SnapshotPackage.EVENT__DETAILS:
    426                                    setDetails((String)newValue);
    427                                    return;
    428                            case SnapshotPackage.EVENT__SNAPSHOT:
    429                                    setSnapshot((Snapshot)newValue);
    430                                    return;
    431                            case SnapshotPackage.EVENT__DERIVATIONS:
    432                                    getDerivations().clear();
    433                                    getDerivations().addAll((Collection<? extends Derivation>)newValue);
    434                                    return;
    435                            case SnapshotPackage.EVENT__PART_ROLE:
    436                                    setPartRole((String)newValue);
    437                                    return;
    438                            case SnapshotPackage.EVENT__DIRECT_POST:
    439                                    setDirectPost((Boolean)newValue);
    440                                    return;
    441                    }
    442                    super.eSet(featureID, newValue);
    443            }
    444
    445            /**
    446             * <!-- begin-user-doc -->
    447             * <!-- end-user-doc -->
    448             * @generated
    449             */
    450            @Override
    451            public void eUnset(int featureID) {
    452                    switch (featureID) {
    453                            case SnapshotPackage.EVENT__ID:
    454                                    setId(ID_EDEFAULT);
    455                                    return;
    456                            case SnapshotPackage.EVENT__NAME:
    457                                    setName(NAME_EDEFAULT);
    458                                    return;
    459                            case SnapshotPackage.EVENT__DETAILS:
    460                                    setDetails(DETAILS_EDEFAULT);
    461                                    return;
    462                            case SnapshotPackage.EVENT__SNAPSHOT:
    463                                    setSnapshot((Snapshot)null);
    464                                    return;
    465                            case SnapshotPackage.EVENT__DERIVATIONS:
    466                                    getDerivations().clear();
    467                                    return;
    468                            case SnapshotPackage.EVENT__PART_ROLE:
    469                                    setPartRole(PART_ROLE_EDEFAULT);
    470                                    return;
    471                            case SnapshotPackage.EVENT__DIRECT_POST:
    472                                    setDirectPost(DIRECT_POST_EDEFAULT);
    473                                    return;
    474                    }
    475                    super.eUnset(featureID);
    476            }
    477
    478            /**
    479             * <!-- begin-user-doc -->
    480             * <!-- end-user-doc -->
    481             * @generated
    482             */
    483            @Override
    484            public boolean eIsSet(int featureID) {
    485                    switch (featureID) {
    486                            case SnapshotPackage.EVENT__ID:
    487                                    return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id);
    488                            case SnapshotPackage.EVENT__NAME:
    489                                    return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
    490                            case SnapshotPackage.EVENT__DETAILS:
    491                                    return DETAILS_EDEFAULT == null ? details != null : !DETAILS_EDEFAULT.equals(details);
    492                            case SnapshotPackage.EVENT__SNAPSHOT:
    493                                    return getSnapshot() != null;
    494                            case SnapshotPackage.EVENT__DERIVATIONS:
    495                                    return derivations != null && !derivations.isEmpty();
    496                            case SnapshotPackage.EVENT__PART_ROLE:
    497                                    return PART_ROLE_EDEFAULT == null ? partRole != null : !PART_ROLE_EDEFAULT.equals(partRole);
    498                            case SnapshotPackage.EVENT__DIRECT_POST:
    499                                    return directPost != DIRECT_POST_EDEFAULT;
    500                    }
    501                    return super.eIsSet(featureID);
    502            }
    503
    504            /**
    505             * <!-- begin-user-doc -->
    506             * <!-- end-user-doc -->
    507             * @generated
    508             */
    509            @Override
    510            public String toString() {
    511                    if (eIsProxy()) return super.toString();
    512
    513                    StringBuffer result = new StringBuffer(super.toString());
    514                    result.append(" (id: ");
    515                    result.append(id);
    516                    result.append(", name: ");
    517                    result.append(name);
    518                    result.append(", details: ");
    519                    result.append(details);
    520                    result.append(", partRole: ");
    521                    result.append(partRole);
    522                    result.append(", directPost: ");
    523                    result.append(directPost);
    524                    result.append(')');
    525                    return result.toString();
    526            }
    527
    528    } //EventImpl