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