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