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