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