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