001    /**
002     * <copyright>
003     * </copyright>
004     *
005     * $Id$
006     */
007    package com.hammurapi.review.impl;
008    
009    import com.hammurapi.party.impl.OrganizationImpl;
010    
011    import com.hammurapi.review.GovernanceDomain;
012    import com.hammurapi.review.InspectorCategory;
013    import com.hammurapi.review.ReviewPackage;
014    import com.hammurapi.review.Tool;
015    
016    import java.util.Collection;
017    
018    import org.eclipse.emf.common.notify.NotificationChain;
019    
020    import org.eclipse.emf.common.util.EList;
021    
022    import org.eclipse.emf.ecore.EClass;
023    import org.eclipse.emf.ecore.InternalEObject;
024    
025    import org.eclipse.emf.ecore.util.EObjectContainmentEList;
026    import org.eclipse.emf.ecore.util.InternalEList;
027    
028    /**
029     * <!-- begin-user-doc -->
030     * An implementation of the model object '<em><b>Governance Domain</b></em>'.
031     * <!-- end-user-doc -->
032     * <p>
033     * The following features are implemented:
034     * <ul>
035     *   <li>{@link com.hammurapi.review.impl.GovernanceDomainImpl#getCategories <em>Categories</em>}</li>
036     *   <li>{@link com.hammurapi.review.impl.GovernanceDomainImpl#getTools <em>Tools</em>}</li>
037     * </ul>
038     * </p>
039     *
040     * @generated
041     */
042    public class GovernanceDomainImpl extends OrganizationImpl implements GovernanceDomain {
043            /**
044             * The cached value of the '{@link #getCategories() <em>Categories</em>}' containment reference list.
045             * <!-- begin-user-doc -->
046             * <!-- end-user-doc -->
047             * @see #getCategories()
048             * @generated
049             * @ordered
050             */
051            protected EList<InspectorCategory> categories;
052    
053            /**
054             * The cached value of the '{@link #getTools() <em>Tools</em>}' containment reference list.
055             * <!-- begin-user-doc -->
056             * <!-- end-user-doc -->
057             * @see #getTools()
058             * @generated
059             * @ordered
060             */
061            protected EList<Tool> tools;
062    
063            /**
064             * <!-- begin-user-doc -->
065             * <!-- end-user-doc -->
066             * @generated
067             */
068            protected GovernanceDomainImpl() {
069                    super();
070            }
071    
072            /**
073             * <!-- begin-user-doc -->
074             * <!-- end-user-doc -->
075             * @generated
076             */
077            @Override
078            protected EClass eStaticClass() {
079                    return ReviewPackage.Literals.GOVERNANCE_DOMAIN;
080            }
081    
082            /**
083             * <!-- begin-user-doc -->
084             * <!-- end-user-doc -->
085             * @generated
086             */
087            public EList<InspectorCategory> getCategories() {
088                    if (categories == null) {
089                            categories = new EObjectContainmentEList<InspectorCategory>(InspectorCategory.class, this, ReviewPackage.GOVERNANCE_DOMAIN__CATEGORIES);
090                    }
091                    return categories;
092            }
093    
094            /**
095             * <!-- begin-user-doc -->
096             * <!-- end-user-doc -->
097             * @generated
098             */
099            public EList<Tool> getTools() {
100                    if (tools == null) {
101                            tools = new EObjectContainmentEList<Tool>(Tool.class, this, ReviewPackage.GOVERNANCE_DOMAIN__TOOLS);
102                    }
103                    return tools;
104            }
105    
106            /**
107             * <!-- begin-user-doc -->
108             * <!-- end-user-doc -->
109             * @generated
110             */
111            @Override
112            public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
113                    switch (featureID) {
114                            case ReviewPackage.GOVERNANCE_DOMAIN__CATEGORIES:
115                                    return ((InternalEList<?>)getCategories()).basicRemove(otherEnd, msgs);
116                            case ReviewPackage.GOVERNANCE_DOMAIN__TOOLS:
117                                    return ((InternalEList<?>)getTools()).basicRemove(otherEnd, msgs);
118                    }
119                    return super.eInverseRemove(otherEnd, featureID, msgs);
120            }
121    
122            /**
123             * <!-- begin-user-doc -->
124             * <!-- end-user-doc -->
125             * @generated
126             */
127            @Override
128            public Object eGet(int featureID, boolean resolve, boolean coreType) {
129                    switch (featureID) {
130                            case ReviewPackage.GOVERNANCE_DOMAIN__CATEGORIES:
131                                    return getCategories();
132                            case ReviewPackage.GOVERNANCE_DOMAIN__TOOLS:
133                                    return getTools();
134                    }
135                    return super.eGet(featureID, resolve, coreType);
136            }
137    
138            /**
139             * <!-- begin-user-doc -->
140             * <!-- end-user-doc -->
141             * @generated
142             */
143            @SuppressWarnings("unchecked")
144            @Override
145            public void eSet(int featureID, Object newValue) {
146                    switch (featureID) {
147                            case ReviewPackage.GOVERNANCE_DOMAIN__CATEGORIES:
148                                    getCategories().clear();
149                                    getCategories().addAll((Collection<? extends InspectorCategory>)newValue);
150                                    return;
151                            case ReviewPackage.GOVERNANCE_DOMAIN__TOOLS:
152                                    getTools().clear();
153                                    getTools().addAll((Collection<? extends Tool>)newValue);
154                                    return;
155                    }
156                    super.eSet(featureID, newValue);
157            }
158    
159            /**
160             * <!-- begin-user-doc -->
161             * <!-- end-user-doc -->
162             * @generated
163             */
164            @Override
165            public void eUnset(int featureID) {
166                    switch (featureID) {
167                            case ReviewPackage.GOVERNANCE_DOMAIN__CATEGORIES:
168                                    getCategories().clear();
169                                    return;
170                            case ReviewPackage.GOVERNANCE_DOMAIN__TOOLS:
171                                    getTools().clear();
172                                    return;
173                    }
174                    super.eUnset(featureID);
175            }
176    
177            /**
178             * <!-- begin-user-doc -->
179             * <!-- end-user-doc -->
180             * @generated
181             */
182            @Override
183            public boolean eIsSet(int featureID) {
184                    switch (featureID) {
185                            case ReviewPackage.GOVERNANCE_DOMAIN__CATEGORIES:
186                                    return categories != null && !categories.isEmpty();
187                            case ReviewPackage.GOVERNANCE_DOMAIN__TOOLS:
188                                    return tools != null && !tools.isEmpty();
189                    }
190                    return super.eIsSet(featureID);
191            }
192    
193    } //GovernanceDomainImpl