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