001    /**
002     * <copyright>
003     * </copyright>
004     *
005     * $Id$
006     */
007    package com.hammurapi.review.impl;
008    
009    import com.hammurapi.party.PartyPackage;
010    import com.hammurapi.party.Role;
011    import com.hammurapi.review.Inspector;
012    import java.util.Collection;
013    import java.util.concurrent.atomic.AtomicInteger;
014    
015    import org.eclipse.emf.common.notify.Notification;
016    import org.eclipse.emf.common.notify.NotificationChain;
017    import org.eclipse.emf.common.util.EList;
018    import org.eclipse.emf.ecore.EClass;
019    import org.eclipse.emf.ecore.InternalEObject;
020    import org.eclipse.emf.ecore.impl.ENotificationImpl;
021    import org.eclipse.emf.ecore.impl.EObjectImpl;
022    import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
023    import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
024    import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
025    import org.eclipse.emf.ecore.util.EcoreUtil;
026    import org.eclipse.emf.ecore.util.InternalEList;
027    
028    import com.hammurapi.review.InspectorCategory;
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 Category</b></em>'.
035     * <!-- end-user-doc -->
036     * <p>
037     * The following features are implemented:
038     * <ul>
039     *   <li>{@link com.hammurapi.review.impl.InspectorCategoryImpl#getRoles <em>Roles</em>}</li>
040     *   <li>{@link com.hammurapi.review.impl.InspectorCategoryImpl#getUid <em>Uid</em>}</li>
041     *   <li>{@link com.hammurapi.review.impl.InspectorCategoryImpl#getName <em>Name</em>}</li>
042     *   <li>{@link com.hammurapi.review.impl.InspectorCategoryImpl#getDescription <em>Description</em>}</li>
043     *   <li>{@link com.hammurapi.review.impl.InspectorCategoryImpl#getReferences <em>References</em>}</li>
044     *   <li>{@link com.hammurapi.review.impl.InspectorCategoryImpl#getHomePage <em>Home Page</em>}</li>
045     *   <li>{@link com.hammurapi.review.impl.InspectorCategoryImpl#getSubCategory <em>Sub Category</em>}</li>
046     *   <li>{@link com.hammurapi.review.impl.InspectorCategoryImpl#getParentCategory <em>Parent Category</em>}</li>
047     *   <li>{@link com.hammurapi.review.impl.InspectorCategoryImpl#getExternalParent <em>External Parent</em>}</li>
048     *   <li>{@link com.hammurapi.review.impl.InspectorCategoryImpl#getGovernedBy <em>Governed By</em>}</li>
049     *   <li>{@link com.hammurapi.review.impl.InspectorCategoryImpl#getInspectors <em>Inspectors</em>}</li>
050     * </ul>
051     * </p>
052     *
053     * @generated
054     */
055    public class InspectorCategoryImpl extends EObjectImpl implements InspectorCategory {
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 #getSubCategory() <em>Sub Category</em>}' containment reference list.
158             * <!-- begin-user-doc -->
159             * <!-- end-user-doc -->
160             * @see #getSubCategory()
161             * @generated
162             * @ordered
163             */
164            protected EList<InspectorCategory> subCategory;
165    
166            /**
167             * The cached value of the '{@link #getExternalParent() <em>External Parent</em>}' reference.
168             * <!-- begin-user-doc -->
169             * <!-- end-user-doc -->
170             * @see #getExternalParent()
171             * @generated
172             * @ordered
173             */
174            protected InspectorCategory externalParent;
175    
176            /**
177             * The cached value of the '{@link #getGovernedBy() <em>Governed By</em>}' reference list.
178             * <!-- begin-user-doc -->
179             * <!-- end-user-doc -->
180             * @see #getGovernedBy()
181             * @generated
182             * @ordered
183             */
184            protected EList<ToolVersion> governedBy;
185    
186            /**
187             * The cached value of the '{@link #getInspectors() <em>Inspectors</em>}' reference list.
188             * <!-- begin-user-doc -->
189             * <!-- end-user-doc -->
190             * @see #getInspectors()
191             * @generated
192             * @ordered
193             */
194            protected EList<Inspector> inspectors;
195    
196            private static AtomicInteger counter = new AtomicInteger();
197            
198            /**
199             * <!-- begin-user-doc -->
200             * <!-- end-user-doc -->
201             * @generated NOT
202             */
203            protected InspectorCategoryImpl() {
204                    super();
205                    if (getUid()==null) {
206                            setUid("CAT-"+Integer.toString(counter.incrementAndGet(), Character.MAX_RADIX)+"-"+Long.toString(System.currentTimeMillis(), Character.MAX_RADIX));
207                    }
208            }
209    
210            /**
211             * <!-- begin-user-doc -->
212             * <!-- end-user-doc -->
213             * @generated
214             */
215            @Override
216            protected EClass eStaticClass() {
217                    return ReviewPackage.Literals.INSPECTOR_CATEGORY;
218            }
219    
220            /**
221             * <!-- begin-user-doc -->
222             * <!-- end-user-doc -->
223             * @generated
224             */
225            public EList<Role> getRoles() {
226                    if (roles == null) {
227                            roles = new EObjectContainmentWithInverseEList<Role>(Role.class, this, ReviewPackage.INSPECTOR_CATEGORY__ROLES, PartyPackage.ROLE__OWNER);
228                    }
229                    return roles;
230            }
231    
232            /**
233             * <!-- begin-user-doc -->
234             * <!-- end-user-doc -->
235             * @generated
236             */
237            public String getUid() {
238                    return uid;
239            }
240    
241            /**
242             * <!-- begin-user-doc -->
243             * <!-- end-user-doc -->
244             * @generated
245             */
246            public void setUid(String newUid) {
247                    String oldUid = uid;
248                    uid = newUid;
249                    if (eNotificationRequired())
250                            eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.INSPECTOR_CATEGORY__UID, oldUid, uid));
251            }
252    
253            /**
254             * <!-- begin-user-doc -->
255             * <!-- end-user-doc -->
256             * @generated
257             */
258            public String getName() {
259                    return name;
260            }
261    
262            /**
263             * <!-- begin-user-doc -->
264             * <!-- end-user-doc -->
265             * @generated
266             */
267            public void setName(String newName) {
268                    String oldName = name;
269                    name = newName;
270                    if (eNotificationRequired())
271                            eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.INSPECTOR_CATEGORY__NAME, oldName, name));
272            }
273    
274            /**
275             * <!-- begin-user-doc -->
276             * <!-- end-user-doc -->
277             * @generated
278             */
279            public String getDescription() {
280                    return description;
281            }
282    
283            /**
284             * <!-- begin-user-doc -->
285             * <!-- end-user-doc -->
286             * @generated
287             */
288            public void setDescription(String newDescription) {
289                    String oldDescription = description;
290                    description = newDescription;
291                    if (eNotificationRequired())
292                            eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.INSPECTOR_CATEGORY__DESCRIPTION, oldDescription, description));
293            }
294    
295            /**
296             * <!-- begin-user-doc -->
297             * <!-- end-user-doc -->
298             * @generated
299             */
300            public EList<String> getReferences() {
301                    if (references == null) {
302                            references = new EDataTypeUniqueEList<String>(String.class, this, ReviewPackage.INSPECTOR_CATEGORY__REFERENCES);
303                    }
304                    return references;
305            }
306    
307            /**
308             * <!-- begin-user-doc -->
309             * <!-- end-user-doc -->
310             * @generated
311             */
312            public String getHomePage() {
313                    return homePage;
314            }
315    
316            /**
317             * <!-- begin-user-doc -->
318             * <!-- end-user-doc -->
319             * @generated
320             */
321            public void setHomePage(String newHomePage) {
322                    String oldHomePage = homePage;
323                    homePage = newHomePage;
324                    if (eNotificationRequired())
325                            eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.INSPECTOR_CATEGORY__HOME_PAGE, oldHomePage, homePage));
326            }
327    
328            /**
329             * <!-- begin-user-doc -->
330             * <!-- end-user-doc -->
331             * @generated
332             */
333            public EList<InspectorCategory> getSubCategory() {
334                    if (subCategory == null) {
335                            subCategory = new EObjectContainmentWithInverseEList<InspectorCategory>(InspectorCategory.class, this, ReviewPackage.INSPECTOR_CATEGORY__SUB_CATEGORY, ReviewPackage.INSPECTOR_CATEGORY__PARENT_CATEGORY);
336                    }
337                    return subCategory;
338            }
339    
340            /**
341             * <!-- begin-user-doc -->
342             * <!-- end-user-doc -->
343             * @generated
344             */
345            public InspectorCategory getParentCategory() {
346                    if (eContainerFeatureID() != ReviewPackage.INSPECTOR_CATEGORY__PARENT_CATEGORY) return null;
347                    return (InspectorCategory)eContainer();
348            }
349    
350            /**
351             * <!-- begin-user-doc -->
352             * <!-- end-user-doc -->
353             * @generated
354             */
355            public NotificationChain basicSetParentCategory(InspectorCategory newParentCategory, NotificationChain msgs) {
356                    msgs = eBasicSetContainer((InternalEObject)newParentCategory, ReviewPackage.INSPECTOR_CATEGORY__PARENT_CATEGORY, msgs);
357                    return msgs;
358            }
359    
360            /**
361             * <!-- begin-user-doc -->
362             * <!-- end-user-doc -->
363             * @generated
364             */
365            public void setParentCategory(InspectorCategory newParentCategory) {
366                    if (newParentCategory != eInternalContainer() || (eContainerFeatureID() != ReviewPackage.INSPECTOR_CATEGORY__PARENT_CATEGORY && newParentCategory != null)) {
367                            if (EcoreUtil.isAncestor(this, newParentCategory))
368                                    throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
369                            NotificationChain msgs = null;
370                            if (eInternalContainer() != null)
371                                    msgs = eBasicRemoveFromContainer(msgs);
372                            if (newParentCategory != null)
373                                    msgs = ((InternalEObject)newParentCategory).eInverseAdd(this, ReviewPackage.INSPECTOR_CATEGORY__SUB_CATEGORY, InspectorCategory.class, msgs);
374                            msgs = basicSetParentCategory(newParentCategory, msgs);
375                            if (msgs != null) msgs.dispatch();
376                    }
377                    else if (eNotificationRequired())
378                            eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.INSPECTOR_CATEGORY__PARENT_CATEGORY, newParentCategory, newParentCategory));
379            }
380    
381            /**
382             * <!-- begin-user-doc -->
383             * <!-- end-user-doc -->
384             * @generated
385             */
386            public InspectorCategory getExternalParent() {
387                    if (externalParent != null && externalParent.eIsProxy()) {
388                            InternalEObject oldExternalParent = (InternalEObject)externalParent;
389                            externalParent = (InspectorCategory)eResolveProxy(oldExternalParent);
390                            if (externalParent != oldExternalParent) {
391                                    if (eNotificationRequired())
392                                            eNotify(new ENotificationImpl(this, Notification.RESOLVE, ReviewPackage.INSPECTOR_CATEGORY__EXTERNAL_PARENT, oldExternalParent, externalParent));
393                            }
394                    }
395                    return externalParent;
396            }
397    
398            /**
399             * <!-- begin-user-doc -->
400             * <!-- end-user-doc -->
401             * @generated
402             */
403            public InspectorCategory basicGetExternalParent() {
404                    return externalParent;
405            }
406    
407            /**
408             * <!-- begin-user-doc -->
409             * <!-- end-user-doc -->
410             * @generated
411             */
412            public void setExternalParent(InspectorCategory newExternalParent) {
413                    InspectorCategory oldExternalParent = externalParent;
414                    externalParent = newExternalParent;
415                    if (eNotificationRequired())
416                            eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.INSPECTOR_CATEGORY__EXTERNAL_PARENT, oldExternalParent, externalParent));
417            }
418    
419            /**
420             * <!-- begin-user-doc -->
421             * <!-- end-user-doc -->
422             * @generated
423             */
424            public EList<ToolVersion> getGovernedBy() {
425                    if (governedBy == null) {
426                            governedBy = new EObjectWithInverseResolvingEList.ManyInverse<ToolVersion>(ToolVersion.class, this, ReviewPackage.INSPECTOR_CATEGORY__GOVERNED_BY, ReviewPackage.TOOL_VERSION__GOVERNS);
427                    }
428                    return governedBy;
429            }
430    
431            /**
432             * <!-- begin-user-doc -->
433             * <!-- end-user-doc -->
434             * @generated
435             */
436            public EList<Inspector> getInspectors() {
437                    if (inspectors == null) {
438                            inspectors = new EObjectWithInverseResolvingEList<Inspector>(Inspector.class, this, ReviewPackage.INSPECTOR_CATEGORY__INSPECTORS, ReviewPackage.INSPECTOR__CATEGORY);
439                    }
440                    return inspectors;
441            }
442    
443            /**
444             * <!-- begin-user-doc -->
445             * <!-- end-user-doc -->
446             * @generated NOT
447             */
448            public String getPath() {
449                    if (getParentCategory()==null) {
450                            if (getExternalParent()==null) {
451                                    return getName();
452                            }
453                            return getExternalParent().getPath()+"/"+getName();
454                    }
455                    return getParentCategory().getPath()+"/"+getName();
456            }
457    
458            /**
459             * <!-- begin-user-doc -->
460             * <!-- end-user-doc -->
461             * @generated
462             */
463            @SuppressWarnings("unchecked")
464            @Override
465            public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
466                    switch (featureID) {
467                            case ReviewPackage.INSPECTOR_CATEGORY__ROLES:
468                                    return ((InternalEList<InternalEObject>)(InternalEList<?>)getRoles()).basicAdd(otherEnd, msgs);
469                            case ReviewPackage.INSPECTOR_CATEGORY__SUB_CATEGORY:
470                                    return ((InternalEList<InternalEObject>)(InternalEList<?>)getSubCategory()).basicAdd(otherEnd, msgs);
471                            case ReviewPackage.INSPECTOR_CATEGORY__PARENT_CATEGORY:
472                                    if (eInternalContainer() != null)
473                                            msgs = eBasicRemoveFromContainer(msgs);
474                                    return basicSetParentCategory((InspectorCategory)otherEnd, msgs);
475                            case ReviewPackage.INSPECTOR_CATEGORY__GOVERNED_BY:
476                                    return ((InternalEList<InternalEObject>)(InternalEList<?>)getGovernedBy()).basicAdd(otherEnd, msgs);
477                            case ReviewPackage.INSPECTOR_CATEGORY__INSPECTORS:
478                                    return ((InternalEList<InternalEObject>)(InternalEList<?>)getInspectors()).basicAdd(otherEnd, msgs);
479                    }
480                    return super.eInverseAdd(otherEnd, featureID, msgs);
481            }
482    
483            /**
484             * <!-- begin-user-doc -->
485             * <!-- end-user-doc -->
486             * @generated
487             */
488            @Override
489            public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
490                    switch (featureID) {
491                            case ReviewPackage.INSPECTOR_CATEGORY__ROLES:
492                                    return ((InternalEList<?>)getRoles()).basicRemove(otherEnd, msgs);
493                            case ReviewPackage.INSPECTOR_CATEGORY__SUB_CATEGORY:
494                                    return ((InternalEList<?>)getSubCategory()).basicRemove(otherEnd, msgs);
495                            case ReviewPackage.INSPECTOR_CATEGORY__PARENT_CATEGORY:
496                                    return basicSetParentCategory(null, msgs);
497                            case ReviewPackage.INSPECTOR_CATEGORY__GOVERNED_BY:
498                                    return ((InternalEList<?>)getGovernedBy()).basicRemove(otherEnd, msgs);
499                            case ReviewPackage.INSPECTOR_CATEGORY__INSPECTORS:
500                                    return ((InternalEList<?>)getInspectors()).basicRemove(otherEnd, msgs);
501                    }
502                    return super.eInverseRemove(otherEnd, featureID, msgs);
503            }
504    
505            /**
506             * <!-- begin-user-doc -->
507             * <!-- end-user-doc -->
508             * @generated
509             */
510            @Override
511            public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
512                    switch (eContainerFeatureID()) {
513                            case ReviewPackage.INSPECTOR_CATEGORY__PARENT_CATEGORY:
514                                    return eInternalContainer().eInverseRemove(this, ReviewPackage.INSPECTOR_CATEGORY__SUB_CATEGORY, InspectorCategory.class, msgs);
515                    }
516                    return super.eBasicRemoveFromContainerFeature(msgs);
517            }
518    
519            /**
520             * <!-- begin-user-doc -->
521             * <!-- end-user-doc -->
522             * @generated
523             */
524            @Override
525            public Object eGet(int featureID, boolean resolve, boolean coreType) {
526                    switch (featureID) {
527                            case ReviewPackage.INSPECTOR_CATEGORY__ROLES:
528                                    return getRoles();
529                            case ReviewPackage.INSPECTOR_CATEGORY__UID:
530                                    return getUid();
531                            case ReviewPackage.INSPECTOR_CATEGORY__NAME:
532                                    return getName();
533                            case ReviewPackage.INSPECTOR_CATEGORY__DESCRIPTION:
534                                    return getDescription();
535                            case ReviewPackage.INSPECTOR_CATEGORY__REFERENCES:
536                                    return getReferences();
537                            case ReviewPackage.INSPECTOR_CATEGORY__HOME_PAGE:
538                                    return getHomePage();
539                            case ReviewPackage.INSPECTOR_CATEGORY__SUB_CATEGORY:
540                                    return getSubCategory();
541                            case ReviewPackage.INSPECTOR_CATEGORY__PARENT_CATEGORY:
542                                    return getParentCategory();
543                            case ReviewPackage.INSPECTOR_CATEGORY__EXTERNAL_PARENT:
544                                    if (resolve) return getExternalParent();
545                                    return basicGetExternalParent();
546                            case ReviewPackage.INSPECTOR_CATEGORY__GOVERNED_BY:
547                                    return getGovernedBy();
548                            case ReviewPackage.INSPECTOR_CATEGORY__INSPECTORS:
549                                    return getInspectors();
550                    }
551                    return super.eGet(featureID, resolve, coreType);
552            }
553    
554            /**
555             * <!-- begin-user-doc -->
556             * <!-- end-user-doc -->
557             * @generated
558             */
559            @SuppressWarnings("unchecked")
560            @Override
561            public void eSet(int featureID, Object newValue) {
562                    switch (featureID) {
563                            case ReviewPackage.INSPECTOR_CATEGORY__ROLES:
564                                    getRoles().clear();
565                                    getRoles().addAll((Collection<? extends Role>)newValue);
566                                    return;
567                            case ReviewPackage.INSPECTOR_CATEGORY__UID:
568                                    setUid((String)newValue);
569                                    return;
570                            case ReviewPackage.INSPECTOR_CATEGORY__NAME:
571                                    setName((String)newValue);
572                                    return;
573                            case ReviewPackage.INSPECTOR_CATEGORY__DESCRIPTION:
574                                    setDescription((String)newValue);
575                                    return;
576                            case ReviewPackage.INSPECTOR_CATEGORY__REFERENCES:
577                                    getReferences().clear();
578                                    getReferences().addAll((Collection<? extends String>)newValue);
579                                    return;
580                            case ReviewPackage.INSPECTOR_CATEGORY__HOME_PAGE:
581                                    setHomePage((String)newValue);
582                                    return;
583                            case ReviewPackage.INSPECTOR_CATEGORY__SUB_CATEGORY:
584                                    getSubCategory().clear();
585                                    getSubCategory().addAll((Collection<? extends InspectorCategory>)newValue);
586                                    return;
587                            case ReviewPackage.INSPECTOR_CATEGORY__PARENT_CATEGORY:
588                                    setParentCategory((InspectorCategory)newValue);
589                                    return;
590                            case ReviewPackage.INSPECTOR_CATEGORY__EXTERNAL_PARENT:
591                                    setExternalParent((InspectorCategory)newValue);
592                                    return;
593                            case ReviewPackage.INSPECTOR_CATEGORY__GOVERNED_BY:
594                                    getGovernedBy().clear();
595                                    getGovernedBy().addAll((Collection<? extends ToolVersion>)newValue);
596                                    return;
597                            case ReviewPackage.INSPECTOR_CATEGORY__INSPECTORS:
598                                    getInspectors().clear();
599                                    getInspectors().addAll((Collection<? extends Inspector>)newValue);
600                                    return;
601                    }
602                    super.eSet(featureID, newValue);
603            }
604    
605            /**
606             * <!-- begin-user-doc -->
607             * <!-- end-user-doc -->
608             * @generated
609             */
610            @Override
611            public void eUnset(int featureID) {
612                    switch (featureID) {
613                            case ReviewPackage.INSPECTOR_CATEGORY__ROLES:
614                                    getRoles().clear();
615                                    return;
616                            case ReviewPackage.INSPECTOR_CATEGORY__UID:
617                                    setUid(UID_EDEFAULT);
618                                    return;
619                            case ReviewPackage.INSPECTOR_CATEGORY__NAME:
620                                    setName(NAME_EDEFAULT);
621                                    return;
622                            case ReviewPackage.INSPECTOR_CATEGORY__DESCRIPTION:
623                                    setDescription(DESCRIPTION_EDEFAULT);
624                                    return;
625                            case ReviewPackage.INSPECTOR_CATEGORY__REFERENCES:
626                                    getReferences().clear();
627                                    return;
628                            case ReviewPackage.INSPECTOR_CATEGORY__HOME_PAGE:
629                                    setHomePage(HOME_PAGE_EDEFAULT);
630                                    return;
631                            case ReviewPackage.INSPECTOR_CATEGORY__SUB_CATEGORY:
632                                    getSubCategory().clear();
633                                    return;
634                            case ReviewPackage.INSPECTOR_CATEGORY__PARENT_CATEGORY:
635                                    setParentCategory((InspectorCategory)null);
636                                    return;
637                            case ReviewPackage.INSPECTOR_CATEGORY__EXTERNAL_PARENT:
638                                    setExternalParent((InspectorCategory)null);
639                                    return;
640                            case ReviewPackage.INSPECTOR_CATEGORY__GOVERNED_BY:
641                                    getGovernedBy().clear();
642                                    return;
643                            case ReviewPackage.INSPECTOR_CATEGORY__INSPECTORS:
644                                    getInspectors().clear();
645                                    return;
646                    }
647                    super.eUnset(featureID);
648            }
649    
650            /**
651             * <!-- begin-user-doc -->
652             * <!-- end-user-doc -->
653             * @generated
654             */
655            @Override
656            public boolean eIsSet(int featureID) {
657                    switch (featureID) {
658                            case ReviewPackage.INSPECTOR_CATEGORY__ROLES:
659                                    return roles != null && !roles.isEmpty();
660                            case ReviewPackage.INSPECTOR_CATEGORY__UID:
661                                    return UID_EDEFAULT == null ? uid != null : !UID_EDEFAULT.equals(uid);
662                            case ReviewPackage.INSPECTOR_CATEGORY__NAME:
663                                    return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
664                            case ReviewPackage.INSPECTOR_CATEGORY__DESCRIPTION:
665                                    return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
666                            case ReviewPackage.INSPECTOR_CATEGORY__REFERENCES:
667                                    return references != null && !references.isEmpty();
668                            case ReviewPackage.INSPECTOR_CATEGORY__HOME_PAGE:
669                                    return HOME_PAGE_EDEFAULT == null ? homePage != null : !HOME_PAGE_EDEFAULT.equals(homePage);
670                            case ReviewPackage.INSPECTOR_CATEGORY__SUB_CATEGORY:
671                                    return subCategory != null && !subCategory.isEmpty();
672                            case ReviewPackage.INSPECTOR_CATEGORY__PARENT_CATEGORY:
673                                    return getParentCategory() != null;
674                            case ReviewPackage.INSPECTOR_CATEGORY__EXTERNAL_PARENT:
675                                    return externalParent != null;
676                            case ReviewPackage.INSPECTOR_CATEGORY__GOVERNED_BY:
677                                    return governedBy != null && !governedBy.isEmpty();
678                            case ReviewPackage.INSPECTOR_CATEGORY__INSPECTORS:
679                                    return inspectors != null && !inspectors.isEmpty();
680                    }
681                    return super.eIsSet(featureID);
682            }
683    
684            /**
685             * <!-- begin-user-doc -->
686             * <!-- end-user-doc -->
687             * @generated
688             */
689            @Override
690            public String toString() {
691                    if (eIsProxy()) return super.toString();
692    
693                    StringBuffer result = new StringBuffer(super.toString());
694                    result.append(" (uid: ");
695                    result.append(uid);
696                    result.append(", name: ");
697                    result.append(name);
698                    result.append(", description: ");
699                    result.append(description);
700                    result.append(", references: ");
701                    result.append(references);
702                    result.append(", homePage: ");
703                    result.append(homePage);
704                    result.append(')');
705                    return result.toString();
706            }
707    
708    } //InspectorCategoryImpl