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