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