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.EDataTypeUniqueEList;
019 import org.eclipse.emf.ecore.util.EObjectContainmentEList;
020 import org.eclipse.emf.ecore.util.EObjectResolvingEList;
021 import org.eclipse.emf.ecore.util.InternalEList;
022
023 import com.hammurapi.config.Factory;
024 import com.hammurapi.config.Path;
025 import com.hammurapi.review.InspectorSet;
026 import com.hammurapi.review.Module;
027 import com.hammurapi.review.ReviewPackage;
028
029 /**
030 * <!-- begin-user-doc -->
031 * An implementation of the model object '<em><b>Module</b></em>'.
032 * <!-- end-user-doc -->
033 * <p>
034 * The following features are implemented:
035 * <ul>
036 * <li>{@link com.hammurapi.review.impl.ModuleImpl#getInspectorSet <em>Inspector Set</em>}</li>
037 * <li>{@link com.hammurapi.review.impl.ModuleImpl#getName <em>Name</em>}</li>
038 * <li>{@link com.hammurapi.review.impl.ModuleImpl#getDescription <em>Description</em>}</li>
039 * <li>{@link com.hammurapi.review.impl.ModuleImpl#getSource <em>Source</em>}</li>
040 * <li>{@link com.hammurapi.review.impl.ModuleImpl#getClassPath <em>Class Path</em>}</li>
041 * <li>{@link com.hammurapi.review.impl.ModuleImpl#getModel <em>Model</em>}</li>
042 * </ul>
043 * </p>
044 *
045 * @generated
046 */
047 public class ModuleImpl extends EObjectImpl implements Module {
048 /**
049 * The cached value of the '{@link #getInspectorSet() <em>Inspector Set</em>}' reference list.
050 * <!-- begin-user-doc -->
051 * <!-- end-user-doc -->
052 * @see #getInspectorSet()
053 * @generated
054 * @ordered
055 */
056 protected EList<InspectorSet> inspectorSet;
057
058 /**
059 * The default value of the '{@link #getName() <em>Name</em>}' attribute.
060 * <!-- begin-user-doc -->
061 * <!-- end-user-doc -->
062 * @see #getName()
063 * @generated
064 * @ordered
065 */
066 protected static final String NAME_EDEFAULT = null;
067
068 /**
069 * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
070 * <!-- begin-user-doc -->
071 * <!-- end-user-doc -->
072 * @see #getName()
073 * @generated
074 * @ordered
075 */
076 protected String name = NAME_EDEFAULT;
077
078 /**
079 * The default value of the '{@link #getDescription() <em>Description</em>}' attribute.
080 * <!-- begin-user-doc -->
081 * <!-- end-user-doc -->
082 * @see #getDescription()
083 * @generated
084 * @ordered
085 */
086 protected static final String DESCRIPTION_EDEFAULT = null;
087
088 /**
089 * The cached value of the '{@link #getDescription() <em>Description</em>}' attribute.
090 * <!-- begin-user-doc -->
091 * <!-- end-user-doc -->
092 * @see #getDescription()
093 * @generated
094 * @ordered
095 */
096 protected String description = DESCRIPTION_EDEFAULT;
097
098 /**
099 * The cached value of the '{@link #getSource() <em>Source</em>}' containment reference list.
100 * <!-- begin-user-doc -->
101 * <!-- end-user-doc -->
102 * @see #getSource()
103 * @generated
104 * @ordered
105 */
106 protected EList<Factory> source;
107
108 /**
109 * The cached value of the '{@link #getClassPath() <em>Class Path</em>}' containment reference list.
110 * <!-- begin-user-doc -->
111 * <!-- end-user-doc -->
112 * @see #getClassPath()
113 * @generated
114 * @ordered
115 */
116 protected EList<Path> classPath;
117
118 /**
119 * The cached value of the '{@link #getModel() <em>Model</em>}' attribute list.
120 * <!-- begin-user-doc -->
121 * <!-- end-user-doc -->
122 * @see #getModel()
123 * @generated
124 * @ordered
125 */
126 protected EList<Object> model;
127
128 /**
129 * <!-- begin-user-doc -->
130 * <!-- end-user-doc -->
131 * @generated
132 */
133 protected ModuleImpl() {
134 super();
135 }
136
137 /**
138 * <!-- begin-user-doc -->
139 * <!-- end-user-doc -->
140 * @generated
141 */
142 @Override
143 protected EClass eStaticClass() {
144 return ReviewPackage.Literals.MODULE;
145 }
146
147 /**
148 * <!-- begin-user-doc -->
149 * <!-- end-user-doc -->
150 * @generated
151 */
152 public EList<InspectorSet> getInspectorSet() {
153 if (inspectorSet == null) {
154 inspectorSet = new EObjectResolvingEList<InspectorSet>(InspectorSet.class, this, ReviewPackage.MODULE__INSPECTOR_SET);
155 }
156 return inspectorSet;
157 }
158
159 /**
160 * <!-- begin-user-doc -->
161 * <!-- end-user-doc -->
162 * @generated
163 */
164 public String getName() {
165 return name;
166 }
167
168 /**
169 * <!-- begin-user-doc -->
170 * <!-- end-user-doc -->
171 * @generated
172 */
173 public void setName(String newName) {
174 String oldName = name;
175 name = newName;
176 if (eNotificationRequired())
177 eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.MODULE__NAME, oldName, name));
178 }
179
180 /**
181 * <!-- begin-user-doc -->
182 * <!-- end-user-doc -->
183 * @generated
184 */
185 public String getDescription() {
186 return description;
187 }
188
189 /**
190 * <!-- begin-user-doc -->
191 * <!-- end-user-doc -->
192 * @generated
193 */
194 public void setDescription(String newDescription) {
195 String oldDescription = description;
196 description = newDescription;
197 if (eNotificationRequired())
198 eNotify(new ENotificationImpl(this, Notification.SET, ReviewPackage.MODULE__DESCRIPTION, oldDescription, description));
199 }
200
201 /**
202 * <!-- begin-user-doc -->
203 * <!-- end-user-doc -->
204 * @generated
205 */
206 public EList<Factory> getSource() {
207 if (source == null) {
208 source = new EObjectContainmentEList<Factory>(Factory.class, this, ReviewPackage.MODULE__SOURCE);
209 }
210 return source;
211 }
212
213 /**
214 * <!-- begin-user-doc -->
215 * <!-- end-user-doc -->
216 * @generated
217 */
218 public EList<Path> getClassPath() {
219 if (classPath == null) {
220 classPath = new EObjectContainmentEList<Path>(Path.class, this, ReviewPackage.MODULE__CLASS_PATH);
221 }
222 return classPath;
223 }
224
225 /**
226 * <!-- begin-user-doc -->
227 * <!-- end-user-doc -->
228 * @generated
229 */
230 public EList<Object> getModel() {
231 if (model == null) {
232 model = new EDataTypeUniqueEList<Object>(Object.class, this, ReviewPackage.MODULE__MODEL);
233 }
234 return model;
235 }
236
237 /**
238 * <!-- begin-user-doc -->
239 * <!-- end-user-doc -->
240 * @generated
241 */
242 @Override
243 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
244 switch (featureID) {
245 case ReviewPackage.MODULE__SOURCE:
246 return ((InternalEList<?>)getSource()).basicRemove(otherEnd, msgs);
247 case ReviewPackage.MODULE__CLASS_PATH:
248 return ((InternalEList<?>)getClassPath()).basicRemove(otherEnd, msgs);
249 }
250 return super.eInverseRemove(otherEnd, featureID, msgs);
251 }
252
253 /**
254 * <!-- begin-user-doc -->
255 * <!-- end-user-doc -->
256 * @generated
257 */
258 @Override
259 public Object eGet(int featureID, boolean resolve, boolean coreType) {
260 switch (featureID) {
261 case ReviewPackage.MODULE__INSPECTOR_SET:
262 return getInspectorSet();
263 case ReviewPackage.MODULE__NAME:
264 return getName();
265 case ReviewPackage.MODULE__DESCRIPTION:
266 return getDescription();
267 case ReviewPackage.MODULE__SOURCE:
268 return getSource();
269 case ReviewPackage.MODULE__CLASS_PATH:
270 return getClassPath();
271 case ReviewPackage.MODULE__MODEL:
272 return getModel();
273 }
274 return super.eGet(featureID, resolve, coreType);
275 }
276
277 /**
278 * <!-- begin-user-doc -->
279 * <!-- end-user-doc -->
280 * @generated
281 */
282 @SuppressWarnings("unchecked")
283 @Override
284 public void eSet(int featureID, Object newValue) {
285 switch (featureID) {
286 case ReviewPackage.MODULE__INSPECTOR_SET:
287 getInspectorSet().clear();
288 getInspectorSet().addAll((Collection<? extends InspectorSet>)newValue);
289 return;
290 case ReviewPackage.MODULE__NAME:
291 setName((String)newValue);
292 return;
293 case ReviewPackage.MODULE__DESCRIPTION:
294 setDescription((String)newValue);
295 return;
296 case ReviewPackage.MODULE__SOURCE:
297 getSource().clear();
298 getSource().addAll((Collection<? extends Factory>)newValue);
299 return;
300 case ReviewPackage.MODULE__CLASS_PATH:
301 getClassPath().clear();
302 getClassPath().addAll((Collection<? extends Path>)newValue);
303 return;
304 case ReviewPackage.MODULE__MODEL:
305 getModel().clear();
306 getModel().addAll((Collection<? extends Object>)newValue);
307 return;
308 }
309 super.eSet(featureID, newValue);
310 }
311
312 /**
313 * <!-- begin-user-doc -->
314 * <!-- end-user-doc -->
315 * @generated
316 */
317 @Override
318 public void eUnset(int featureID) {
319 switch (featureID) {
320 case ReviewPackage.MODULE__INSPECTOR_SET:
321 getInspectorSet().clear();
322 return;
323 case ReviewPackage.MODULE__NAME:
324 setName(NAME_EDEFAULT);
325 return;
326 case ReviewPackage.MODULE__DESCRIPTION:
327 setDescription(DESCRIPTION_EDEFAULT);
328 return;
329 case ReviewPackage.MODULE__SOURCE:
330 getSource().clear();
331 return;
332 case ReviewPackage.MODULE__CLASS_PATH:
333 getClassPath().clear();
334 return;
335 case ReviewPackage.MODULE__MODEL:
336 getModel().clear();
337 return;
338 }
339 super.eUnset(featureID);
340 }
341
342 /**
343 * <!-- begin-user-doc -->
344 * <!-- end-user-doc -->
345 * @generated
346 */
347 @Override
348 public boolean eIsSet(int featureID) {
349 switch (featureID) {
350 case ReviewPackage.MODULE__INSPECTOR_SET:
351 return inspectorSet != null && !inspectorSet.isEmpty();
352 case ReviewPackage.MODULE__NAME:
353 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
354 case ReviewPackage.MODULE__DESCRIPTION:
355 return DESCRIPTION_EDEFAULT == null ? description != null : !DESCRIPTION_EDEFAULT.equals(description);
356 case ReviewPackage.MODULE__SOURCE:
357 return source != null && !source.isEmpty();
358 case ReviewPackage.MODULE__CLASS_PATH:
359 return classPath != null && !classPath.isEmpty();
360 case ReviewPackage.MODULE__MODEL:
361 return model != null && !model.isEmpty();
362 }
363 return super.eIsSet(featureID);
364 }
365
366 /**
367 * <!-- begin-user-doc -->
368 * <!-- end-user-doc -->
369 * @generated
370 */
371 @Override
372 public String toString() {
373 if (eIsProxy()) return super.toString();
374
375 StringBuffer result = new StringBuffer(super.toString());
376 result.append(" (name: ");
377 result.append(name);
378 result.append(", description: ");
379 result.append(description);
380 result.append(", model: ");
381 result.append(model);
382 result.append(')');
383 return result.toString();
384 }
385
386 } //ModuleImpl