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