$search
00001 00003 package org.best.of.robotics.smachDSL.impl; 00004 00005 import java.util.Collection; 00006 00007 import org.best.of.robotics.smachDSL.ActionClient; 00008 import org.best.of.robotics.smachDSL.ActionState; 00009 import org.best.of.robotics.smachDSL.ServiceClient; 00010 import org.best.of.robotics.smachDSL.SmachDSLPackage; 00011 import org.best.of.robotics.smachDSL.StateMachine; 00012 00013 import org.eclipse.emf.common.notify.Notification; 00014 import org.eclipse.emf.common.notify.NotificationChain; 00015 00016 import org.eclipse.emf.common.util.EList; 00017 00018 import org.eclipse.emf.ecore.EClass; 00019 import org.eclipse.emf.ecore.InternalEObject; 00020 00021 import org.eclipse.emf.ecore.impl.ENotificationImpl; 00022 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; 00023 00024 import org.eclipse.emf.ecore.util.EObjectContainmentEList; 00025 import org.eclipse.emf.ecore.util.InternalEList; 00026 00043 public class StateMachineImpl extends MinimalEObjectImpl.Container implements StateMachine 00044 { 00053 protected static final String NAME_EDEFAULT = null; 00054 00063 protected String name = NAME_EDEFAULT; 00064 00073 protected EList<ActionClient> actionclients; 00074 00083 protected EList<ServiceClient> serviceclients; 00084 00093 protected EList<ActionState> actionsstates; 00094 00100 protected StateMachineImpl() 00101 { 00102 super(); 00103 } 00104 00110 @Override 00111 protected EClass eStaticClass() 00112 { 00113 return SmachDSLPackage.Literals.STATE_MACHINE; 00114 } 00115 00121 public String getName() 00122 { 00123 return name; 00124 } 00125 00131 public void setName(String newName) 00132 { 00133 String oldName = name; 00134 name = newName; 00135 if (eNotificationRequired()) 00136 eNotify(new ENotificationImpl(this, Notification.SET, SmachDSLPackage.STATE_MACHINE__NAME, oldName, name)); 00137 } 00138 00144 public EList<ActionClient> getActionclients() 00145 { 00146 if (actionclients == null) 00147 { 00148 actionclients = new EObjectContainmentEList<ActionClient>(ActionClient.class, this, SmachDSLPackage.STATE_MACHINE__ACTIONCLIENTS); 00149 } 00150 return actionclients; 00151 } 00152 00158 public EList<ServiceClient> getServiceclients() 00159 { 00160 if (serviceclients == null) 00161 { 00162 serviceclients = new EObjectContainmentEList<ServiceClient>(ServiceClient.class, this, SmachDSLPackage.STATE_MACHINE__SERVICECLIENTS); 00163 } 00164 return serviceclients; 00165 } 00166 00172 public EList<ActionState> getActionsstates() 00173 { 00174 if (actionsstates == null) 00175 { 00176 actionsstates = new EObjectContainmentEList<ActionState>(ActionState.class, this, SmachDSLPackage.STATE_MACHINE__ACTIONSSTATES); 00177 } 00178 return actionsstates; 00179 } 00180 00186 @Override 00187 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) 00188 { 00189 switch (featureID) 00190 { 00191 case SmachDSLPackage.STATE_MACHINE__ACTIONCLIENTS: 00192 return ((InternalEList<?>)getActionclients()).basicRemove(otherEnd, msgs); 00193 case SmachDSLPackage.STATE_MACHINE__SERVICECLIENTS: 00194 return ((InternalEList<?>)getServiceclients()).basicRemove(otherEnd, msgs); 00195 case SmachDSLPackage.STATE_MACHINE__ACTIONSSTATES: 00196 return ((InternalEList<?>)getActionsstates()).basicRemove(otherEnd, msgs); 00197 } 00198 return super.eInverseRemove(otherEnd, featureID, msgs); 00199 } 00200 00206 @Override 00207 public Object eGet(int featureID, boolean resolve, boolean coreType) 00208 { 00209 switch (featureID) 00210 { 00211 case SmachDSLPackage.STATE_MACHINE__NAME: 00212 return getName(); 00213 case SmachDSLPackage.STATE_MACHINE__ACTIONCLIENTS: 00214 return getActionclients(); 00215 case SmachDSLPackage.STATE_MACHINE__SERVICECLIENTS: 00216 return getServiceclients(); 00217 case SmachDSLPackage.STATE_MACHINE__ACTIONSSTATES: 00218 return getActionsstates(); 00219 } 00220 return super.eGet(featureID, resolve, coreType); 00221 } 00222 00228 @SuppressWarnings("unchecked") 00229 @Override 00230 public void eSet(int featureID, Object newValue) 00231 { 00232 switch (featureID) 00233 { 00234 case SmachDSLPackage.STATE_MACHINE__NAME: 00235 setName((String)newValue); 00236 return; 00237 case SmachDSLPackage.STATE_MACHINE__ACTIONCLIENTS: 00238 getActionclients().clear(); 00239 getActionclients().addAll((Collection<? extends ActionClient>)newValue); 00240 return; 00241 case SmachDSLPackage.STATE_MACHINE__SERVICECLIENTS: 00242 getServiceclients().clear(); 00243 getServiceclients().addAll((Collection<? extends ServiceClient>)newValue); 00244 return; 00245 case SmachDSLPackage.STATE_MACHINE__ACTIONSSTATES: 00246 getActionsstates().clear(); 00247 getActionsstates().addAll((Collection<? extends ActionState>)newValue); 00248 return; 00249 } 00250 super.eSet(featureID, newValue); 00251 } 00252 00258 @Override 00259 public void eUnset(int featureID) 00260 { 00261 switch (featureID) 00262 { 00263 case SmachDSLPackage.STATE_MACHINE__NAME: 00264 setName(NAME_EDEFAULT); 00265 return; 00266 case SmachDSLPackage.STATE_MACHINE__ACTIONCLIENTS: 00267 getActionclients().clear(); 00268 return; 00269 case SmachDSLPackage.STATE_MACHINE__SERVICECLIENTS: 00270 getServiceclients().clear(); 00271 return; 00272 case SmachDSLPackage.STATE_MACHINE__ACTIONSSTATES: 00273 getActionsstates().clear(); 00274 return; 00275 } 00276 super.eUnset(featureID); 00277 } 00278 00284 @Override 00285 public boolean eIsSet(int featureID) 00286 { 00287 switch (featureID) 00288 { 00289 case SmachDSLPackage.STATE_MACHINE__NAME: 00290 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); 00291 case SmachDSLPackage.STATE_MACHINE__ACTIONCLIENTS: 00292 return actionclients != null && !actionclients.isEmpty(); 00293 case SmachDSLPackage.STATE_MACHINE__SERVICECLIENTS: 00294 return serviceclients != null && !serviceclients.isEmpty(); 00295 case SmachDSLPackage.STATE_MACHINE__ACTIONSSTATES: 00296 return actionsstates != null && !actionsstates.isEmpty(); 00297 } 00298 return super.eIsSet(featureID); 00299 } 00300 00306 @Override 00307 public String toString() 00308 { 00309 if (eIsProxy()) return super.toString(); 00310 00311 StringBuffer result = new StringBuffer(super.toString()); 00312 result.append(" (name: "); 00313 result.append(name); 00314 result.append(')'); 00315 return result.toString(); 00316 } 00317 00318 } //StateMachineImpl