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