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