001    /**
002     * <copyright>
003     * </copyright>
004     *
005     * $Id$
006     */
007    package com.hammurapi.review.impl;
008    
009    import java.util.Collection;
010    
011    import org.eclipse.emf.common.notify.Notification;
012    import org.eclipse.emf.common.notify.NotificationChain;
013    import org.eclipse.emf.common.util.EList;
014    import org.eclipse.emf.ecore.EClass;
015    import org.eclipse.emf.ecore.InternalEObject;
016    import org.eclipse.emf.ecore.impl.ENotificationImpl;
017    import org.eclipse.emf.ecore.impl.EObjectImpl;
018    import org.eclipse.emf.ecore.util.EObjectContainmentEList;
019    import org.eclipse.emf.ecore.util.InternalEList;
020    
021    import com.hammurapi.review.Baseline;
022    import com.hammurapi.review.Repository;
023    import com.hammurapi.review.ReviewPackage;
024    
025    /**
026     * <!-- begin-user-doc -->
027     * An implementation of the model object '<em><b>Repository</b></em>'.
028     * <!-- end-user-doc -->
029     * <p>
030     * The following features are implemented:
031     * <ul>
032     *   <li>{@link com.hammurapi.review.impl.RepositoryImpl#getBaselines <em>Baselines</em>}</li>
033     *   <li>{@link com.hammurapi.review.impl.RepositoryImpl#getName <em>Name</em>}</li>
034     *   <li>{@link com.hammurapi.review.impl.RepositoryImpl#getDescription <em>Description</em>}</li>
035     * </ul>
036     * </p>
037     *
038     * @generated
039     */
040    public class RepositoryImpl extends EObjectImpl implements Repository {
041            /**
042             * The cached value of the '{@link #getBaselines() <em>Baselines</em>}' containment reference list.
043             * <!-- begin-user-doc -->
044             * <!-- end-user-doc -->
045             * @see #getBaselines()
046             * @generated
047             * @ordered
048             */
049            protected EList<Baseline> baselines;
050    
051            /**
052             * The default value of the '{@link #getName() <em>Name</em>}' attribute.
053             * <!-- begin-user-doc -->
054             * <!-- end-user-doc -->
055             * @see #getName()
056             * @generated
057             * @ordered
058             */
059            protected static final String NAME_EDEFAULT = null;
060    
061            /**
062             * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
063             * <!-- begin-user-doc -->
064             * <!-- end-user-doc -->
065             * @see #getName()
066             * @generated
067             * @ordered
068             */
069            protected String name = NAME_EDEFAULT;
070    
071            /**
072             * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
073             * <!-- begin-user-doc -->
074             * <!-- end-user-doc -->
075             * @see #getDescription()
076             * @generated
077             * @ordered
078             */
079            protected static final String DESCRIPTION_EDEFAULT = null;
080    
081            /**
082             * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
083             * <!-- begin-user-doc -->
084             * <!-- end-user-doc -->
085             * @see #getDescription()
086             * @generated
087             * @ordered
088             */
089            protected String description = DESCRIPTION_EDEFAULT;
090    
091            /**
092             * <!-- begin-user-doc -->
093             * <!-- end-user-doc -->
094             * @generated
095             */
096            protected RepositoryImpl() {
097                    super();
098            }
099    
100            /**
101             * <!-- begin-user-doc -->
102             * <!-- end-user-doc -->
103             * @generated
104             */
105            @Override
106            protected EClass eStaticClass() {
107                    return ReviewPackage.Literals.REPOSITORY;
108            }
109    
110            /**
111             * <!-- begin-user-doc -->
112             * <!-- end-user-doc -->
113             * @generated
114             */
115            public EList<Baseline> getBaselines() {
116                    if (baselines == null) {
117                            baselines = new EObjectContainmentEList<Baseline>(Baseline.class, this, ReviewPackage.REPOSITORY__BASELINES);
118                    }
119                    return baselines;
120            }
121    
122            /**
123             * <!-- begin-user-doc -->
124             * <!-- end-user-doc -->
125             * @generated
126             */
127            public String getName() {
128                    return name;
129            }
130    
131            /**
132             * <!-- begin-user-doc -->
133             * <!-- end-user-doc -->
134             * @generated
135             */
136            public void setName(String newName) {
137                    String oldName = name;
138                    name = newName;
139                    if (eNotificationRequired())
140                            eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.REPOSITORY__NAME, oldName, name));
141            }
142    
143            /**
144             * <!-- begin-user-doc -->
145             * <!-- end-user-doc -->
146             * @generated
147             */
148            public String getDescription() {
149                    return description;
150            }
151    
152            /**
153             * <!-- begin-user-doc -->
154             * <!-- end-user-doc -->
155             * @generated
156             */
157            public void setDescription(String newDescription) {
158                    String oldDescription = description;
159                    description = newDescription;
160                    if (eNotificationRequired())
161                            eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.REPOSITORY__DESCRIPTION, oldDescription, description));
162            }
163    
164            /**
165             * <!-- begin-user-doc -->
166             * <!-- end-user-doc -->
167             * @generated
168             */
169            @Override
170            public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
171                    switch (featureID) {
172                            case ReviewPackage.REPOSITORY__BASELINES:
173                                    return ((InternalEList<?>)getBaselines()).basicRemove(otherEnd, msgs);
174                    }
175                    return super.eInverseRemove(otherEnd, featureID, msgs);
176            }
177    
178            /**
179             * <!-- begin-user-doc -->
180             * <!-- end-user-doc -->
181             * @generated
182             */
183            @Override
184            public Object eGet(int featureID, boolean resolve, boolean coreType) {
185                    switch (featureID) {
186                            case ReviewPackage.REPOSITORY__BASELINES:
187                                    return getBaselines();
188                            case ReviewPackage.REPOSITORY__NAME:
189                                    return getName();
190                            case ReviewPackage.REPOSITORY__DESCRIPTION:
191                                    return getDescription();
192                    }
193                    return super.eGet(featureID, resolve, coreType);
194            }
195    
196            /**
197             * <!-- begin-user-doc -->
198             * <!-- end-user-doc -->
199             * @generated
200             */
201            @SuppressWarnings("unchecked")
202            @Override
203            public void eSet(int featureID, Object newValue) {
204                    switch (featureID) {
205                            case ReviewPackage.REPOSITORY__BASELINES:
206                                    getBaselines().clear();
207                                    getBaselines().addAll((Collection<? extends Baseline>)newValue);
208                                    return;
209                            case ReviewPackage.REPOSITORY__NAME:
210                                    setName((String)newValue);
211                                    return;
212                            case ReviewPackage.REPOSITORY__DESCRIPTION:
213                                    setDescription((String)newValue);
214                                    return;
215                    }
216                    super.eSet(featureID, newValue);
217            }
218    
219            /**
220             * <!-- begin-user-doc -->
221             * <!-- end-user-doc -->
222             * @generated
223             */
224            @Override
225            public void eUnset(int featureID) {
226                    switch (featureID) {
227                            case ReviewPackage.REPOSITORY__BASELINES:
228                                    getBaselines().clear();
229                                    return;
230                            case ReviewPackage.REPOSITORY__NAME:
231                                    setName(NAME_EDEFAULT);
232                                    return;
233                            case ReviewPackage.REPOSITORY__DESCRIPTION:
234                                    setDescription(DESCRIPTION_EDEFAULT);
235                                    return;
236                    }
237                    super.eUnset(featureID);
238            }
239    
240            /**
241             * <!-- begin-user-doc -->
242             * <!-- end-user-doc -->
243             * @generated
244             */
245            @Override
246            public boolean eIsSet(int featureID) {
247                    switch (featureID) {
248                            case ReviewPackage.REPOSITORY__BASELINES:
249                                    return baselines != null && !baselines.isEmpty();
250                            case ReviewPackage.REPOSITORY__NAME:
251                                    return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
252                            case ReviewPackage.REPOSITORY__DESCRIPTION:
253                                    return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
254                    }
255                    return super.eIsSet(featureID);
256            }
257    
258            /**
259             * <!-- begin-user-doc -->
260             * <!-- end-user-doc -->
261             * @generated
262             */
263            @Override
264            public String toString() {
265                    if (eIsProxy()) return super.toString();
266    
267                    StringBuffer result = new StringBuffer(super.toString());
268                    result.append(" (name: ");
269                    result.append(name);
270                    result.append(", description: ");
271                    result.append(description);
272                    result.append(')');
273                    return result.toString();
274            }
275    
276    } //RepositoryImpl