001 /**
002 * <copyright>
003 * </copyright>
004 *
005 * $Id$
006 */
007 package com.hammurapi.review.impl;
008
009 import com.hammurapi.party.Identity;
010
011 import com.hammurapi.party.PartyPackage;
012 import com.hammurapi.party.Role;
013 import com.hammurapi.review.ReviewPackage;
014 import com.hammurapi.review.Tool;
015 import com.hammurapi.review.ToolVersion;
016
017 import java.util.Collection;
018 import java.util.concurrent.atomic.AtomicInteger;
019
020 import org.eclipse.emf.common.notify.Notification;
021 import org.eclipse.emf.common.notify.NotificationChain;
022
023 import org.eclipse.emf.common.util.EList;
024
025 import org.eclipse.emf.ecore.EClass;
026 import org.eclipse.emf.ecore.InternalEObject;
027
028 import org.eclipse.emf.ecore.impl.ENotificationImpl;
029 import org.eclipse.emf.ecore.impl.EObjectImpl;
030 import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
031 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
032 import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
033 import org.eclipse.emf.ecore.util.InternalEList;
034
035 /**
036 * <!-- begin-user-doc -->
037 * An implementation of the model object '<em><b>Tool</b></em>'.
038 * <!-- end-user-doc -->
039 * <p>
040 * The following features are implemented:
041 * <ul>
042 * <li>{@link com.hammurapi.review.impl.ToolImpl#getRoles <em>Roles</em>}</li>
043 * <li>{@link com.hammurapi.review.impl.ToolImpl#getUid <em>Uid</em>}</li>
044 * <li>{@link com.hammurapi.review.impl.ToolImpl#getName <em>Name</em>}</li>
045 * <li>{@link com.hammurapi.review.impl.ToolImpl#getDescription <em>Description</em>}</li>
046 * <li>{@link com.hammurapi.review.impl.ToolImpl#getReferences <em>References</em>}</li>
047 * <li>{@link com.hammurapi.review.impl.ToolImpl#getHomePage <em>Home Page</em>}</li>
048 * <li>{@link com.hammurapi.review.impl.ToolImpl#getIdentity <em>Identity</em>}</li>
049 * <li>{@link com.hammurapi.review.impl.ToolImpl#getVersions <em>Versions</em>}</li>
050 * </ul>
051 * </p>
052 *
053 * @generated
054 */
055 public class ToolImpl extends EObjectImpl implements Tool {
056 /**
057 * The cached value of the '{@link #getRoles() <em>Roles</em>}' containment reference list.
058 * <!-- begin-user-doc -->
059 * <!-- end-user-doc -->
060 * @see #getRoles()
061 * @generated
062 * @ordered
063 */
064 protected EList<Role> roles;
065
066 /**
067 * The default value of the '{@link #getUid() <em>Uid</em>}' attribute.
068 * <!-- begin-user-doc -->
069 * <!-- end-user-doc -->
070 * @see #getUid()
071 * @generated
072 * @ordered
073 */
074 protected static final String UID_EDEFAULT = null;
075
076 /**
077 * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute.
078 * <!-- begin-user-doc -->
079 * <!-- end-user-doc -->
080 * @see #getUid()
081 * @generated
082 * @ordered
083 */
084 protected String uid = UID_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 #getDescription() <em>Description</em>}' attribute.
108 * <!-- begin-user-doc -->
109 * <!-- end-user-doc -->
110 * @see #getDescription()
111 * @generated
112 * @ordered
113 */
114 protected static final String DESCRIPTION_EDEFAULT = null;
115
116 /**
117 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
118 * <!-- begin-user-doc -->
119 * <!-- end-user-doc -->
120 * @see #getDescription()
121 * @generated
122 * @ordered
123 */
124 protected String description = DESCRIPTION_EDEFAULT;
125
126 /**
127 * The cached value of the '{@link #getReferences() <em>References</em>}' attribute list.
128 * <!-- begin-user-doc -->
129 * <!-- end-user-doc -->
130 * @see #getReferences()
131 * @generated
132 * @ordered
133 */
134 protected EList<String> references;
135
136 /**
137 * The default value of the '{@link #getHomePage() <em>Home Page</em>}' attribute.
138 * <!-- begin-user-doc -->
139 * <!-- end-user-doc -->
140 * @see #getHomePage()
141 * @generated
142 * @ordered
143 */
144 protected static final String HOME_PAGE_EDEFAULT = null;
145
146 /**
147 * The cached value of the '{@link #getHomePage() <em>Home Page</em>}' attribute.
148 * <!-- begin-user-doc -->
149 * <!-- end-user-doc -->
150 * @see #getHomePage()
151 * @generated
152 * @ordered
153 */
154 protected String homePage = HOME_PAGE_EDEFAULT;
155
156 /**
157 * The cached value of the '{@link #getIdentity() <em>Identity</em>}' containment reference list.
158 * <!-- begin-user-doc -->
159 * <!-- end-user-doc -->
160 * @see #getIdentity()
161 * @generated
162 * @ordered
163 */
164 protected EList<Identity> identity;
165
166 /**
167 * The cached value of the '{@link #getVersions() <em>Versions</em>}' containment reference list.
168 * <!-- begin-user-doc -->
169 * <!-- end-user-doc -->
170 * @see #getVersions()
171 * @generated
172 * @ordered
173 */
174 protected EList<ToolVersion> versions;
175
176 private static AtomicInteger counter = new AtomicInteger();
177
178 /**
179 * <!-- begin-user-doc -->
180 * <!-- end-user-doc -->
181 * @generated NOT
182 */
183 protected ToolImpl() {
184 super();
185 if (getUid()==null) {
186 setUid("TOOL-"+Integer.toString(counter.incrementAndGet(), Character.MAX_RADIX)+"-"+Long.toString(System.currentTimeMillis(), Character.MAX_RADIX));
187 }
188 }
189
190 /**
191 * <!-- begin-user-doc -->
192 * <!-- end-user-doc -->
193 * @generated
194 */
195 @Override
196 protected EClass eStaticClass() {
197 return ReviewPackage.Literals.TOOL;
198 }
199
200 /**
201 * <!-- begin-user-doc -->
202 * <!-- end-user-doc -->
203 * @generated
204 */
205 public EList<Role> getRoles() {
206 if (roles == null) {
207 roles = new EObjectContainmentWithInverseEList<Role>(Role.class, this, ReviewPackage.TOOL__ROLES, PartyPackage.ROLE__OWNER);
208 }
209 return roles;
210 }
211
212 /**
213 * <!-- begin-user-doc -->
214 * <!-- end-user-doc -->
215 * @generated
216 */
217 public String getUid() {
218 return uid;
219 }
220
221 /**
222 * <!-- begin-user-doc -->
223 * <!-- end-user-doc -->
224 * @generated
225 */
226 public void setUid(String newUid) {
227 String oldUid = uid;
228 uid = newUid;
229 if (eNotificationRequired())
230 eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.TOOL__UID, oldUid, uid));
231 }
232
233 /**
234 * <!-- begin-user-doc -->
235 * <!-- end-user-doc -->
236 * @generated
237 */
238 public String getName() {
239 return name;
240 }
241
242 /**
243 * <!-- begin-user-doc -->
244 * <!-- end-user-doc -->
245 * @generated
246 */
247 public void setName(String newName) {
248 String oldName = name;
249 name = newName;
250 if (eNotificationRequired())
251 eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.TOOL__NAME, oldName, name));
252 }
253
254 /**
255 * <!-- begin-user-doc -->
256 * <!-- end-user-doc -->
257 * @generated
258 */
259 public String getDescription() {
260 return description;
261 }
262
263 /**
264 * <!-- begin-user-doc -->
265 * <!-- end-user-doc -->
266 * @generated
267 */
268 public void setDescription(String newDescription) {
269 String oldDescription = description;
270 description = newDescription;
271 if (eNotificationRequired())
272 eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.TOOL__DESCRIPTION, oldDescription, description));
273 }
274
275 /**
276 * <!-- begin-user-doc -->
277 * <!-- end-user-doc -->
278 * @generated
279 */
280 public EList<String> getReferences() {
281 if (references == null) {
282 references = new EDataTypeUniqueEList<String>(String.class, this, ReviewPackage.TOOL__REFERENCES);
283 }
284 return references;
285 }
286
287 /**
288 * <!-- begin-user-doc -->
289 * <!-- end-user-doc -->
290 * @generated
291 */
292 public String getHomePage() {
293 return homePage;
294 }
295
296 /**
297 * <!-- begin-user-doc -->
298 * <!-- end-user-doc -->
299 * @generated
300 */
301 public void setHomePage(String newHomePage) {
302 String oldHomePage = homePage;
303 homePage = newHomePage;
304 if (eNotificationRequired())
305 eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.TOOL__HOME_PAGE, oldHomePage, homePage));
306 }
307
308 /**
309 * <!-- begin-user-doc -->
310 * <!-- end-user-doc -->
311 * @generated
312 */
313 public EList<Identity> getIdentity() {
314 if (identity == null) {
315 identity = new EObjectContainmentEList<Identity>(Identity.class, this, ReviewPackage.TOOL__IDENTITY);
316 }
317 return identity;
318 }
319
320 /**
321 * <!-- begin-user-doc -->
322 * <!-- end-user-doc -->
323 * @generated
324 */
325 public EList<ToolVersion> getVersions() {
326 if (versions == null) {
327 versions = new EObjectContainmentWithInverseEList<ToolVersion>(ToolVersion.class, this, ReviewPackage.TOOL__VERSIONS, ReviewPackage.TOOL_VERSION__TOOL);
328 }
329 return versions;
330 }
331
332 /**
333 * <!-- begin-user-doc -->
334 * <!-- end-user-doc -->
335 * @generated
336 */
337 @SuppressWarnings("unchecked")
338 @Override
339 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
340 switch (featureID) {
341 case ReviewPackage.TOOL__ROLES:
342 return ((InternalEList<InternalEObject>)(InternalEList<?>)getRoles()).basicAdd(otherEnd, msgs);
343 case ReviewPackage.TOOL__VERSIONS:
344 return ((InternalEList<InternalEObject>)(InternalEList<?>)getVersions()).basicAdd(otherEnd, msgs);
345 }
346 return super.eInverseAdd(otherEnd, featureID, msgs);
347 }
348
349 /**
350 * <!-- begin-user-doc -->
351 * <!-- end-user-doc -->
352 * @generated
353 */
354 @Override
355 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
356 switch (featureID) {
357 case ReviewPackage.TOOL__ROLES:
358 return ((InternalEList<?>)getRoles()).basicRemove(otherEnd, msgs);
359 case ReviewPackage.TOOL__IDENTITY:
360 return ((InternalEList<?>)getIdentity()).basicRemove(otherEnd, msgs);
361 case ReviewPackage.TOOL__VERSIONS:
362 return ((InternalEList<?>)getVersions()).basicRemove(otherEnd, msgs);
363 }
364 return super.eInverseRemove(otherEnd, featureID, msgs);
365 }
366
367 /**
368 * <!-- begin-user-doc -->
369 * <!-- end-user-doc -->
370 * @generated
371 */
372 @Override
373 public Object eGet(int featureID, boolean resolve, boolean coreType) {
374 switch (featureID) {
375 case ReviewPackage.TOOL__ROLES:
376 return getRoles();
377 case ReviewPackage.TOOL__UID:
378 return getUid();
379 case ReviewPackage.TOOL__NAME:
380 return getName();
381 case ReviewPackage.TOOL__DESCRIPTION:
382 return getDescription();
383 case ReviewPackage.TOOL__REFERENCES:
384 return getReferences();
385 case ReviewPackage.TOOL__HOME_PAGE:
386 return getHomePage();
387 case ReviewPackage.TOOL__IDENTITY:
388 return getIdentity();
389 case ReviewPackage.TOOL__VERSIONS:
390 return getVersions();
391 }
392 return super.eGet(featureID, resolve, coreType);
393 }
394
395 /**
396 * <!-- begin-user-doc -->
397 * <!-- end-user-doc -->
398 * @generated
399 */
400 @SuppressWarnings("unchecked")
401 @Override
402 public void eSet(int featureID, Object newValue) {
403 switch (featureID) {
404 case ReviewPackage.TOOL__ROLES:
405 getRoles().clear();
406 getRoles().addAll((Collection<? extends Role>)newValue);
407 return;
408 case ReviewPackage.TOOL__UID:
409 setUid((String)newValue);
410 return;
411 case ReviewPackage.TOOL__NAME:
412 setName((String)newValue);
413 return;
414 case ReviewPackage.TOOL__DESCRIPTION:
415 setDescription((String)newValue);
416 return;
417 case ReviewPackage.TOOL__REFERENCES:
418 getReferences().clear();
419 getReferences().addAll((Collection<? extends String>)newValue);
420 return;
421 case ReviewPackage.TOOL__HOME_PAGE:
422 setHomePage((String)newValue);
423 return;
424 case ReviewPackage.TOOL__IDENTITY:
425 getIdentity().clear();
426 getIdentity().addAll((Collection<? extends Identity>)newValue);
427 return;
428 case ReviewPackage.TOOL__VERSIONS:
429 getVersions().clear();
430 getVersions().addAll((Collection<? extends ToolVersion>)newValue);
431 return;
432 }
433 super.eSet(featureID, newValue);
434 }
435
436 /**
437 * <!-- begin-user-doc -->
438 * <!-- end-user-doc -->
439 * @generated
440 */
441 @Override
442 public void eUnset(int featureID) {
443 switch (featureID) {
444 case ReviewPackage.TOOL__ROLES:
445 getRoles().clear();
446 return;
447 case ReviewPackage.TOOL__UID:
448 setUid(UID_EDEFAULT);
449 return;
450 case ReviewPackage.TOOL__NAME:
451 setName(NAME_EDEFAULT);
452 return;
453 case ReviewPackage.TOOL__DESCRIPTION:
454 setDescription(DESCRIPTION_EDEFAULT);
455 return;
456 case ReviewPackage.TOOL__REFERENCES:
457 getReferences().clear();
458 return;
459 case ReviewPackage.TOOL__HOME_PAGE:
460 setHomePage(HOME_PAGE_EDEFAULT);
461 return;
462 case ReviewPackage.TOOL__IDENTITY:
463 getIdentity().clear();
464 return;
465 case ReviewPackage.TOOL__VERSIONS:
466 getVersions().clear();
467 return;
468 }
469 super.eUnset(featureID);
470 }
471
472 /**
473 * <!-- begin-user-doc -->
474 * <!-- end-user-doc -->
475 * @generated
476 */
477 @Override
478 public boolean eIsSet(int featureID) {
479 switch (featureID) {
480 case ReviewPackage.TOOL__ROLES:
481 return roles != null && !roles.isEmpty();
482 case ReviewPackage.TOOL__UID:
483 return UID_EDEFAULT == null ? uid != null : !UID_EDEFAULT.equals(uid);
484 case ReviewPackage.TOOL__NAME:
485 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
486 case ReviewPackage.TOOL__DESCRIPTION:
487 return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
488 case ReviewPackage.TOOL__REFERENCES:
489 return references != null && !references.isEmpty();
490 case ReviewPackage.TOOL__HOME_PAGE:
491 return HOME_PAGE_EDEFAULT == null ? homePage != null : !HOME_PAGE_EDEFAULT.equals(homePage);
492 case ReviewPackage.TOOL__IDENTITY:
493 return identity != null && !identity.isEmpty();
494 case ReviewPackage.TOOL__VERSIONS:
495 return versions != null && !versions.isEmpty();
496 }
497 return super.eIsSet(featureID);
498 }
499
500 /**
501 * <!-- begin-user-doc -->
502 * <!-- end-user-doc -->
503 * @generated
504 */
505 @Override
506 public String toString() {
507 if (eIsProxy()) return super.toString();
508
509 StringBuffer result = new StringBuffer(super.toString());
510 result.append(" (uid: ");
511 result.append(uid);
512 result.append(", name: ");
513 result.append(name);
514 result.append(", description: ");
515 result.append(description);
516 result.append(", references: ");
517 result.append(references);
518 result.append(", homePage: ");
519 result.append(homePage);
520 result.append(')');
521 return result.toString();
522 }
523
524 } //ToolImpl