001 /** 002 * <copyright> 003 * </copyright> 004 * 005 * $Id$ 006 */ 007 package com.hammurapi.review.impl; 008 009 import org.eclipse.emf.common.notify.Notification; 010 import org.eclipse.emf.common.notify.NotificationChain; 011 import org.eclipse.emf.ecore.EClass; 012 import org.eclipse.emf.ecore.InternalEObject; 013 import org.eclipse.emf.ecore.impl.ENotificationImpl; 014 import org.eclipse.emf.ecore.impl.EObjectImpl; 015 import org.eclipse.emf.ecore.util.EcoreUtil; 016 017 import com.hammurapi.review.Inspector; 018 import com.hammurapi.review.LanguageElement; 019 import com.hammurapi.review.Observation; 020 import com.hammurapi.review.Report; 021 import com.hammurapi.review.ReviewPackage; 022 023 /** 024 * <!-- begin-user-doc --> 025 * An implementation of the model object '<em><b>Observation</b></em>'. 026 * <!-- end-user-doc --> 027 * <p> 028 * The following features are implemented: 029 * <ul> 030 * <li>{@link com.hammurapi.review.impl.ObservationImpl#getSource <em>Source</em>}</li> 031 * <li>{@link com.hammurapi.review.impl.ObservationImpl#getReport <em>Report</em>}</li> 032 * <li>{@link com.hammurapi.review.impl.ObservationImpl#getReportedBy <em>Reported By</em>}</li> 033 * </ul> 034 * </p> 035 * 036 * @generated 037 */ 038 public class ObservationImpl extends EObjectImpl implements Observation { 039 /** 040 * The cached value of the '{@link #getReport() <em>Report</em>}' reference. 041 * <!-- begin-user-doc --> 042 * <!-- end-user-doc --> 043 * @see #getReport() 044 * @generated 045 * @ordered 046 */ 047 protected Report report; 048 049 /** 050 * The cached value of the '{@link #getReportedBy() <em>Reported By</em>}' reference. 051 * <!-- begin-user-doc --> 052 * <!-- end-user-doc --> 053 * @see #getReportedBy() 054 * @generated 055 * @ordered 056 */ 057 protected Inspector reportedBy; 058 059 /** 060 * <!-- begin-user-doc --> 061 * <!-- end-user-doc --> 062 * @generated 063 */ 064 protected ObservationImpl() { 065 super(); 066 } 067 068 /** 069 * <!-- begin-user-doc --> 070 * <!-- end-user-doc --> 071 * @generated 072 */ 073 @Override 074 protected EClass eStaticClass() { 075 return ReviewPackage.Literals.OBSERVATION; 076 } 077 078 /** 079 * <!-- begin-user-doc --> 080 * <!-- end-user-doc --> 081 * @generated 082 */ 083 public LanguageElement getSource() { 084 if (eContainerFeatureID() != ReviewPackage.OBSERVATION__SOURCE) return null; 085 return (LanguageElement)eContainer(); 086 } 087 088 /** 089 * <!-- begin-user-doc --> 090 * <!-- end-user-doc --> 091 * @generated 092 */ 093 public NotificationChain basicSetSource(LanguageElement newSource, NotificationChain msgs) { 094 msgs = eBasicSetContainer((InternalEObject)newSource, ReviewPackage.OBSERVATION__SOURCE, msgs); 095 return msgs; 096 } 097 098 /** 099 * <!-- begin-user-doc --> 100 * <!-- end-user-doc --> 101 * @generated 102 */ 103 public void setSource(LanguageElement newSource) { 104 if (newSource != eInternalContainer() || (eContainerFeatureID() != ReviewPackage.OBSERVATION__SOURCE && newSource != null)) { 105 if (EcoreUtil.isAncestor(this, newSource)) 106 throw new IllegalArgumentException("Recursive containment not allowed for " + toString()); 107 NotificationChain msgs = null; 108 if (eInternalContainer() != null) 109 msgs = eBasicRemoveFromContainer(msgs); 110 if (newSource != null) 111 msgs = ((InternalEObject)newSource).eInverseAdd(this, ReviewPackage.LANGUAGE_ELEMENT__OBSERVATIONS, LanguageElement.class, msgs); 112 msgs = basicSetSource(newSource, msgs); 113 if (msgs != null) msgs.dispatch(); 114 } 115 else if (eNotificationRequired()) 116 eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.OBSERVATION__SOURCE, newSource, newSource)); 117 } 118 119 /** 120 * <!-- begin-user-doc --> 121 * <!-- end-user-doc --> 122 * @generated 123 */ 124 public Report getReport() { 125 if (report != null && report.eIsProxy()) { 126 InternalEObject oldReport = (InternalEObject)report; 127 report = (Report)eResolveProxy(oldReport); 128 if (report != oldReport) { 129 if (eNotificationRequired()) 130 eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReviewPackage.OBSERVATION__REPORT, oldReport, report)); 131 } 132 } 133 return report; 134 } 135 136 /** 137 * <!-- begin-user-doc --> 138 * <!-- end-user-doc --> 139 * @generated 140 */ 141 public Report basicGetReport() { 142 return report; 143 } 144 145 /** 146 * <!-- begin-user-doc --> 147 * <!-- end-user-doc --> 148 * @generated 149 */ 150 public NotificationChain basicSetReport(Report newReport, NotificationChain msgs) { 151 Report oldReport = report; 152 report = newReport; 153 if (eNotificationRequired()) { 154 ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, ReviewPackage.OBSERVATION__REPORT, oldReport, newReport); 155 if (msgs == null) msgs = notification; else msgs.add(notification); 156 } 157 return msgs; 158 } 159 160 /** 161 * <!-- begin-user-doc --> 162 * <!-- end-user-doc --> 163 * @generated 164 */ 165 public void setReport(Report newReport) { 166 if (newReport != report) { 167 NotificationChain msgs = null; 168 if (report != null) 169 msgs = ((InternalEObject)report).eInverseRemove(this, ReviewPackage.REPORT__OBSERVATIONS, Report.class, msgs); 170 if (newReport != null) 171 msgs = ((InternalEObject)newReport).eInverseAdd(this, ReviewPackage.REPORT__OBSERVATIONS, Report.class, msgs); 172 msgs = basicSetReport(newReport, msgs); 173 if (msgs != null) msgs.dispatch(); 174 } 175 else if (eNotificationRequired()) 176 eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.OBSERVATION__REPORT, newReport, newReport)); 177 } 178 179 /** 180 * <!-- begin-user-doc --> 181 * <!-- end-user-doc --> 182 * @generated 183 */ 184 public Inspector getReportedBy() { 185 if (reportedBy != null && reportedBy.eIsProxy()) { 186 InternalEObject oldReportedBy = (InternalEObject)reportedBy; 187 reportedBy = (Inspector)eResolveProxy(oldReportedBy); 188 if (reportedBy != oldReportedBy) { 189 if (eNotificationRequired()) 190 eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReviewPackage.OBSERVATION__REPORTED_BY, oldReportedBy, reportedBy)); 191 } 192 } 193 return reportedBy; 194 } 195 196 /** 197 * <!-- begin-user-doc --> 198 * <!-- end-user-doc --> 199 * @generated 200 */ 201 public Inspector basicGetReportedBy() { 202 return reportedBy; 203 } 204 205 /** 206 * <!-- begin-user-doc --> 207 * <!-- end-user-doc --> 208 * @generated 209 */ 210 public void setReportedBy(Inspector newReportedBy) { 211 Inspector oldReportedBy = reportedBy; 212 reportedBy = newReportedBy; 213 if (eNotificationRequired()) 214 eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.OBSERVATION__REPORTED_BY, oldReportedBy, reportedBy)); 215 } 216 217 /** 218 * <!-- begin-user-doc --> 219 * <!-- end-user-doc --> 220 * @generated 221 */ 222 @Override 223 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { 224 switch (featureID) { 225 case ReviewPackage.OBSERVATION__SOURCE: 226 if (eInternalContainer() != null) 227 msgs = eBasicRemoveFromContainer(msgs); 228 return basicSetSource((LanguageElement)otherEnd, msgs); 229 case ReviewPackage.OBSERVATION__REPORT: 230 if (report != null) 231 msgs = ((InternalEObject)report).eInverseRemove(this, ReviewPackage.REPORT__OBSERVATIONS, Report.class, msgs); 232 return basicSetReport((Report)otherEnd, msgs); 233 } 234 return super.eInverseAdd(otherEnd, featureID, msgs); 235 } 236 237 /** 238 * <!-- begin-user-doc --> 239 * <!-- end-user-doc --> 240 * @generated 241 */ 242 @Override 243 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { 244 switch (featureID) { 245 case ReviewPackage.OBSERVATION__SOURCE: 246 return basicSetSource(null, msgs); 247 case ReviewPackage.OBSERVATION__REPORT: 248 return basicSetReport(null, msgs); 249 } 250 return super.eInverseRemove(otherEnd, featureID, msgs); 251 } 252 253 /** 254 * <!-- begin-user-doc --> 255 * <!-- end-user-doc --> 256 * @generated 257 */ 258 @Override 259 public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) { 260 switch (eContainerFeatureID()) { 261 case ReviewPackage.OBSERVATION__SOURCE: 262 return eInternalContainer().eInverseRemove(this, ReviewPackage.LANGUAGE_ELEMENT__OBSERVATIONS, LanguageElement.class, msgs); 263 } 264 return super.eBasicRemoveFromContainerFeature(msgs); 265 } 266 267 /** 268 * <!-- begin-user-doc --> 269 * <!-- end-user-doc --> 270 * @generated 271 */ 272 @Override 273 public Object eGet(int featureID, boolean resolve, boolean coreType) { 274 switch (featureID) { 275 case ReviewPackage.OBSERVATION__SOURCE: 276 return getSource(); 277 case ReviewPackage.OBSERVATION__REPORT: 278 if (resolve) return getReport(); 279 return basicGetReport(); 280 case ReviewPackage.OBSERVATION__REPORTED_BY: 281 if (resolve) return getReportedBy(); 282 return basicGetReportedBy(); 283 } 284 return super.eGet(featureID, resolve, coreType); 285 } 286 287 /** 288 * <!-- begin-user-doc --> 289 * <!-- end-user-doc --> 290 * @generated 291 */ 292 @Override 293 public void eSet(int featureID, Object newValue) { 294 switch (featureID) { 295 case ReviewPackage.OBSERVATION__SOURCE: 296 setSource((LanguageElement)newValue); 297 return; 298 case ReviewPackage.OBSERVATION__REPORT: 299 setReport((Report)newValue); 300 return; 301 case ReviewPackage.OBSERVATION__REPORTED_BY: 302 setReportedBy((Inspector)newValue); 303 return; 304 } 305 super.eSet(featureID, newValue); 306 } 307 308 /** 309 * <!-- begin-user-doc --> 310 * <!-- end-user-doc --> 311 * @generated 312 */ 313 @Override 314 public void eUnset(int featureID) { 315 switch (featureID) { 316 case ReviewPackage.OBSERVATION__SOURCE: 317 setSource((LanguageElement)null); 318 return; 319 case ReviewPackage.OBSERVATION__REPORT: 320 setReport((Report)null); 321 return; 322 case ReviewPackage.OBSERVATION__REPORTED_BY: 323 setReportedBy((Inspector)null); 324 return; 325 } 326 super.eUnset(featureID); 327 } 328 329 /** 330 * <!-- begin-user-doc --> 331 * <!-- end-user-doc --> 332 * @generated 333 */ 334 @Override 335 public boolean eIsSet(int featureID) { 336 switch (featureID) { 337 case ReviewPackage.OBSERVATION__SOURCE: 338 return getSource() != null; 339 case ReviewPackage.OBSERVATION__REPORT: 340 return report != null; 341 case ReviewPackage.OBSERVATION__REPORTED_BY: 342 return reportedBy != null; 343 } 344 return super.eIsSet(featureID); 345 } 346 347 } //ObservationImpl