001 /** 002 * <copyright> 003 * </copyright> 004 * 005 * $Id$ 006 */ 007 package com.hammurapi.review.impl; 008 009 import com.hammurapi.config.Named; 010 import com.hammurapi.config.Factory; 011 import java.util.Collection; 012 013 import org.eclipse.emf.common.notify.Notification; 014 import org.eclipse.emf.common.notify.NotificationChain; 015 import org.eclipse.emf.common.util.EList; 016 import org.eclipse.emf.ecore.EClass; 017 import org.eclipse.emf.ecore.InternalEObject; 018 import org.eclipse.emf.ecore.impl.ENotificationImpl; 019 import org.eclipse.emf.ecore.util.EObjectContainmentEList; 020 import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; 021 import org.eclipse.emf.ecore.util.EObjectResolvingEList; 022 import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; 023 import org.eclipse.emf.ecore.util.InternalEList; 024 025 import com.hammurapi.config.impl.NamedObjectDefinitionImpl; 026 import com.hammurapi.review.Inspector; 027 import com.hammurapi.review.InspectorCategory; 028 import com.hammurapi.review.InspectorSet; 029 import com.hammurapi.review.ReviewPackage; 030 import com.hammurapi.review.ToolVersion; 031 032 /** 033 * <!-- begin-user-doc --> 034 * An implementation of the model object '<em><b>Inspector Set</b></em>'. 035 * <!-- end-user-doc --> 036 * <p> 037 * The following features are implemented: 038 * <ul> 039 * <li>{@link com.hammurapi.review.impl.InspectorSetImpl#getLanguageModules <em>Language Modules</em>}</li> 040 * <li>{@link com.hammurapi.review.impl.InspectorSetImpl#getEnforcedBy <em>Enforced By</em>}</li> 041 * <li>{@link com.hammurapi.review.impl.InspectorSetImpl#getInspectors <em>Inspectors</em>}</li> 042 * <li>{@link com.hammurapi.review.impl.InspectorSetImpl#getCategories <em>Categories</em>}</li> 043 * <li>{@link com.hammurapi.review.impl.InspectorSetImpl#getBase <em>Base</em>}</li> 044 * <li>{@link com.hammurapi.review.impl.InspectorSetImpl#getVersion <em>Version</em>}</li> 045 * <li>{@link com.hammurapi.review.impl.InspectorSetImpl#getIncludedInspectors <em>Included Inspectors</em>}</li> 046 * </ul> 047 * </p> 048 * 049 * @generated 050 */ 051 public class InspectorSetImpl extends NamedObjectDefinitionImpl implements InspectorSet { 052 /** 053 * The cached value of the '{@link #getLanguageModules() <em>Language Modules</em>}' reference list. 054 * <!-- begin-user-doc --> 055 * <!-- end-user-doc --> 056 * @see #getLanguageModules() 057 * @generated 058 * @ordered 059 */ 060 protected EList<Named> languageModules; 061 062 /** 063 * The cached value of the '{@link #getEnforcedBy() <em>Enforced By</em>}' reference list. 064 * <!-- begin-user-doc --> 065 * <!-- end-user-doc --> 066 * @see #getEnforcedBy() 067 * @generated 068 * @ordered 069 */ 070 protected EList<ToolVersion> enforcedBy; 071 072 /** 073 * The cached value of the '{@link #getInspectors() <em>Inspectors</em>}' containment reference list. 074 * <!-- begin-user-doc --> 075 * <!-- end-user-doc --> 076 * @see #getInspectors() 077 * @generated 078 * @ordered 079 */ 080 protected EList<Inspector> inspectors; 081 082 /** 083 * The cached value of the '{@link #getCategories() <em>Categories</em>}' containment reference list. 084 * <!-- begin-user-doc --> 085 * <!-- end-user-doc --> 086 * @see #getCategories() 087 * @generated 088 * @ordered 089 */ 090 protected EList<InspectorCategory> categories; 091 092 /** 093 * The cached value of the '{@link #getBase() <em>Base</em>}' reference list. 094 * <!-- begin-user-doc --> 095 * <!-- end-user-doc --> 096 * @see #getBase() 097 * @generated 098 * @ordered 099 */ 100 protected EList<InspectorSet> base; 101 102 /** 103 * The default value of the '{@link #getVersion() <em>Version</em>}' attribute. 104 * <!-- begin-user-doc --> 105 * <!-- end-user-doc --> 106 * @see #getVersion() 107 * @generated 108 * @ordered 109 */ 110 protected static final String VERSION_EDEFAULT = null; 111 112 /** 113 * The cached value of the '{@link #getVersion() <em>Version</em>}' attribute. 114 * <!-- begin-user-doc --> 115 * <!-- end-user-doc --> 116 * @see #getVersion() 117 * @generated 118 * @ordered 119 */ 120 protected String version = VERSION_EDEFAULT; 121 122 /** 123 * The cached value of the '{@link #getIncludedInspectors() <em>Included Inspectors</em>}' reference list. 124 * <!-- begin-user-doc --> 125 * <!-- end-user-doc --> 126 * @see #getIncludedInspectors() 127 * @generated 128 * @ordered 129 */ 130 protected EList<Inspector> includedInspectors; 131 132 /** 133 * <!-- begin-user-doc --> 134 * <!-- end-user-doc --> 135 * @generated 136 */ 137 protected InspectorSetImpl() { 138 super(); 139 } 140 141 /** 142 * <!-- begin-user-doc --> 143 * <!-- end-user-doc --> 144 * @generated 145 */ 146 @Override 147 protected EClass eStaticClass() { 148 return ReviewPackage.Literals.INSPECTOR_SET; 149 } 150 151 /** 152 * <!-- begin-user-doc --> 153 * <!-- end-user-doc --> 154 * @generated 155 */ 156 public EList<Named> getLanguageModules() { 157 if (languageModules == null) { 158 languageModules = new EObjectResolvingEList<Named>(Named.class, this, ReviewPackage.INSPECTOR_SET__LANGUAGE_MODULES); 159 } 160 return languageModules; 161 } 162 163 /** 164 * <!-- begin-user-doc --> 165 * <!-- end-user-doc --> 166 * @generated 167 */ 168 public EList<ToolVersion> getEnforcedBy() { 169 if (enforcedBy == null) { 170 enforcedBy = new EObjectWithInverseResolvingEList.ManyInverse<ToolVersion>(ToolVersion.class, this, ReviewPackage.INSPECTOR_SET__ENFORCED_BY, ReviewPackage.TOOL_VERSION__ENFORCES); 171 } 172 return enforcedBy; 173 } 174 175 /** 176 * <!-- begin-user-doc --> 177 * <!-- end-user-doc --> 178 * @generated 179 */ 180 public EList<Inspector> getInspectors() { 181 if (inspectors == null) { 182 inspectors = new EObjectContainmentWithInverseEList<Inspector>(Inspector.class, this, ReviewPackage.INSPECTOR_SET__INSPECTORS, ReviewPackage.INSPECTOR__INSPECTOR_SET); 183 } 184 return inspectors; 185 } 186 187 /** 188 * <!-- begin-user-doc --> 189 * <!-- end-user-doc --> 190 * @generated 191 */ 192 public EList<InspectorCategory> getCategories() { 193 if (categories == null) { 194 categories = new EObjectContainmentEList<InspectorCategory>(InspectorCategory.class, this, ReviewPackage.INSPECTOR_SET__CATEGORIES); 195 } 196 return categories; 197 } 198 199 /** 200 * <!-- begin-user-doc --> 201 * <!-- end-user-doc --> 202 * @generated 203 */ 204 public EList<InspectorSet> getBase() { 205 if (base == null) { 206 base = new EObjectResolvingEList<InspectorSet>(InspectorSet.class, this, ReviewPackage.INSPECTOR_SET__BASE); 207 } 208 return base; 209 } 210 211 /** 212 * <!-- begin-user-doc --> 213 * <!-- end-user-doc --> 214 * @generated 215 */ 216 public String getVersion() { 217 return version; 218 } 219 220 /** 221 * <!-- begin-user-doc --> 222 * <!-- end-user-doc --> 223 * @generated 224 */ 225 public void setVersion(String newVersion) { 226 String oldVersion = version; 227 version = newVersion; 228 if (eNotificationRequired()) 229 eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.INSPECTOR_SET__VERSION, oldVersion, version)); 230 } 231 232 /** 233 * <!-- begin-user-doc --> 234 * <!-- end-user-doc --> 235 * @generated 236 */ 237 public EList<Inspector> getIncludedInspectors() { 238 if (includedInspectors == null) { 239 includedInspectors = new EObjectResolvingEList<Inspector>(Inspector.class, this, ReviewPackage.INSPECTOR_SET__INCLUDED_INSPECTORS); 240 } 241 return includedInspectors; 242 } 243 244 /** 245 * <!-- begin-user-doc --> 246 * <!-- end-user-doc --> 247 * @generated 248 */ 249 @SuppressWarnings("unchecked") 250 @Override 251 public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { 252 switch (featureID) { 253 case ReviewPackage.INSPECTOR_SET__ENFORCED_BY: 254 return ((InternalEList<InternalEObject>)(InternalEList<?>)getEnforcedBy()).basicAdd(otherEnd, msgs); 255 case ReviewPackage.INSPECTOR_SET__INSPECTORS: 256 return ((InternalEList<InternalEObject>)(InternalEList<?>)getInspectors()).basicAdd(otherEnd, msgs); 257 } 258 return super.eInverseAdd(otherEnd, featureID, msgs); 259 } 260 261 /** 262 * <!-- begin-user-doc --> 263 * <!-- end-user-doc --> 264 * @generated 265 */ 266 @Override 267 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) { 268 switch (featureID) { 269 case ReviewPackage.INSPECTOR_SET__ENFORCED_BY: 270 return ((InternalEList<?>)getEnforcedBy()).basicRemove(otherEnd, msgs); 271 case ReviewPackage.INSPECTOR_SET__INSPECTORS: 272 return ((InternalEList<?>)getInspectors()).basicRemove(otherEnd, msgs); 273 case ReviewPackage.INSPECTOR_SET__CATEGORIES: 274 return ((InternalEList<?>)getCategories()).basicRemove(otherEnd, msgs); 275 } 276 return super.eInverseRemove(otherEnd, featureID, msgs); 277 } 278 279 /** 280 * <!-- begin-user-doc --> 281 * <!-- end-user-doc --> 282 * @generated 283 */ 284 @Override 285 public Object eGet(int featureID, boolean resolve, boolean coreType) { 286 switch (featureID) { 287 case ReviewPackage.INSPECTOR_SET__LANGUAGE_MODULES: 288 return getLanguageModules(); 289 case ReviewPackage.INSPECTOR_SET__ENFORCED_BY: 290 return getEnforcedBy(); 291 case ReviewPackage.INSPECTOR_SET__INSPECTORS: 292 return getInspectors(); 293 case ReviewPackage.INSPECTOR_SET__CATEGORIES: 294 return getCategories(); 295 case ReviewPackage.INSPECTOR_SET__BASE: 296 return getBase(); 297 case ReviewPackage.INSPECTOR_SET__VERSION: 298 return getVersion(); 299 case ReviewPackage.INSPECTOR_SET__INCLUDED_INSPECTORS: 300 return getIncludedInspectors(); 301 } 302 return super.eGet(featureID, resolve, coreType); 303 } 304 305 /** 306 * <!-- begin-user-doc --> 307 * <!-- end-user-doc --> 308 * @generated 309 */ 310 @SuppressWarnings("unchecked") 311 @Override 312 public void eSet(int featureID, Object newValue) { 313 switch (featureID) { 314 case ReviewPackage.INSPECTOR_SET__LANGUAGE_MODULES: 315 getLanguageModules().clear(); 316 getLanguageModules().addAll((Collection<? extends Named>)newValue); 317 return; 318 case ReviewPackage.INSPECTOR_SET__ENFORCED_BY: 319 getEnforcedBy().clear(); 320 getEnforcedBy().addAll((Collection<? extends ToolVersion>)newValue); 321 return; 322 case ReviewPackage.INSPECTOR_SET__INSPECTORS: 323 getInspectors().clear(); 324 getInspectors().addAll((Collection<? extends Inspector>)newValue); 325 return; 326 case ReviewPackage.INSPECTOR_SET__CATEGORIES: 327 getCategories().clear(); 328 getCategories().addAll((Collection<? extends InspectorCategory>)newValue); 329 return; 330 case ReviewPackage.INSPECTOR_SET__BASE: 331 getBase().clear(); 332 getBase().addAll((Collection<? extends InspectorSet>)newValue); 333 return; 334 case ReviewPackage.INSPECTOR_SET__VERSION: 335 setVersion((String)newValue); 336 return; 337 case ReviewPackage.INSPECTOR_SET__INCLUDED_INSPECTORS: 338 getIncludedInspectors().clear(); 339 getIncludedInspectors().addAll((Collection<? extends Inspector>)newValue); 340 return; 341 } 342 super.eSet(featureID, newValue); 343 } 344 345 /** 346 * <!-- begin-user-doc --> 347 * <!-- end-user-doc --> 348 * @generated 349 */ 350 @Override 351 public void eUnset(int featureID) { 352 switch (featureID) { 353 case ReviewPackage.INSPECTOR_SET__LANGUAGE_MODULES: 354 getLanguageModules().clear(); 355 return; 356 case ReviewPackage.INSPECTOR_SET__ENFORCED_BY: 357 getEnforcedBy().clear(); 358 return; 359 case ReviewPackage.INSPECTOR_SET__INSPECTORS: 360 getInspectors().clear(); 361 return; 362 case ReviewPackage.INSPECTOR_SET__CATEGORIES: 363 getCategories().clear(); 364 return; 365 case ReviewPackage.INSPECTOR_SET__BASE: 366 getBase().clear(); 367 return; 368 case ReviewPackage.INSPECTOR_SET__VERSION: 369 setVersion(VERSION_EDEFAULT); 370 return; 371 case ReviewPackage.INSPECTOR_SET__INCLUDED_INSPECTORS: 372 getIncludedInspectors().clear(); 373 return; 374 } 375 super.eUnset(featureID); 376 } 377 378 /** 379 * <!-- begin-user-doc --> 380 * <!-- end-user-doc --> 381 * @generated 382 */ 383 @Override 384 public boolean eIsSet(int featureID) { 385 switch (featureID) { 386 case ReviewPackage.INSPECTOR_SET__LANGUAGE_MODULES: 387 return languageModules != null && !languageModules.isEmpty(); 388 case ReviewPackage.INSPECTOR_SET__ENFORCED_BY: 389 return enforcedBy != null && !enforcedBy.isEmpty(); 390 case ReviewPackage.INSPECTOR_SET__INSPECTORS: 391 return inspectors != null && !inspectors.isEmpty(); 392 case ReviewPackage.INSPECTOR_SET__CATEGORIES: 393 return categories != null && !categories.isEmpty(); 394 case ReviewPackage.INSPECTOR_SET__BASE: 395 return base != null && !base.isEmpty(); 396 case ReviewPackage.INSPECTOR_SET__VERSION: 397 return VERSION_EDEFAULT == null ? version != null : !VERSION_EDEFAULT.equals(version); 398 case ReviewPackage.INSPECTOR_SET__INCLUDED_INSPECTORS: 399 return includedInspectors != null && !includedInspectors.isEmpty(); 400 } 401 return super.eIsSet(featureID); 402 } 403 404 /** 405 * <!-- begin-user-doc --> 406 * <!-- end-user-doc --> 407 * @generated 408 */ 409 @Override 410 public String toString() { 411 if (eIsProxy()) return super.toString(); 412 413 StringBuffer result = new StringBuffer(super.toString()); 414 result.append(" (version: "); 415 result.append(version); 416 result.append(')'); 417 return result.toString(); 418 } 419 420 } //InspectorSetImpl