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