$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.SmachDSLPackage; 00010 import org.best.of.robotics.smachDSL.Transition; 00011 00012 import org.eclipse.emf.common.notify.Notification; 00013 import org.eclipse.emf.common.notify.NotificationChain; 00014 00015 import org.eclipse.emf.common.util.EList; 00016 00017 import org.eclipse.emf.ecore.EClass; 00018 import org.eclipse.emf.ecore.InternalEObject; 00019 00020 import org.eclipse.emf.ecore.impl.ENotificationImpl; 00021 import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; 00022 00023 import org.eclipse.emf.ecore.util.EObjectContainmentEList; 00024 import org.eclipse.emf.ecore.util.InternalEList; 00025 00041 public class ActionStateImpl extends MinimalEObjectImpl.Container implements ActionState 00042 { 00051 protected static final String NAME_EDEFAULT = null; 00052 00061 protected String name = NAME_EDEFAULT; 00062 00071 protected ActionClient clientname; 00072 00081 protected EList<Transition> transitions; 00082 00088 protected ActionStateImpl() 00089 { 00090 super(); 00091 } 00092 00098 @Override 00099 protected EClass eStaticClass() 00100 { 00101 return SmachDSLPackage.Literals.ACTION_STATE; 00102 } 00103 00109 public String getName() 00110 { 00111 return name; 00112 } 00113 00119 public void setName(String newName) 00120 { 00121 String oldName = name; 00122 name = newName; 00123 if (eNotificationRequired()) 00124 eNotify(new ENotificationImpl(this, Notification.SET, SmachDSLPackage.ACTION_STATE__NAME, oldName, name)); 00125 } 00126 00132 public ActionClient getClientname() 00133 { 00134 if (clientname != null && clientname.eIsProxy()) 00135 { 00136 InternalEObject oldClientname = (InternalEObject)clientname; 00137 clientname = (ActionClient)eResolveProxy(oldClientname); 00138 if (clientname != oldClientname) 00139 { 00140 if (eNotificationRequired()) 00141 eNotify(new ENotificationImpl(this, Notification.RESOLVE, SmachDSLPackage.ACTION_STATE__CLIENTNAME, oldClientname, clientname)); 00142 } 00143 } 00144 return clientname; 00145 } 00146 00152 public ActionClient basicGetClientname() 00153 { 00154 return clientname; 00155 } 00156 00162 public void setClientname(ActionClient newClientname) 00163 { 00164 ActionClient oldClientname = clientname; 00165 clientname = newClientname; 00166 if (eNotificationRequired()) 00167 eNotify(new ENotificationImpl(this, Notification.SET, SmachDSLPackage.ACTION_STATE__CLIENTNAME, oldClientname, clientname)); 00168 } 00169 00175 public EList<Transition> getTransitions() 00176 { 00177 if (transitions == null) 00178 { 00179 transitions = new EObjectContainmentEList<Transition>(Transition.class, this, SmachDSLPackage.ACTION_STATE__TRANSITIONS); 00180 } 00181 return transitions; 00182 } 00183 00189 @Override 00190 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) 00191 { 00192 switch (featureID) 00193 { 00194 case SmachDSLPackage.ACTION_STATE__TRANSITIONS: 00195 return ((InternalEList<?>)getTransitions()).basicRemove(otherEnd, msgs); 00196 } 00197 return super.eInverseRemove(otherEnd, featureID, msgs); 00198 } 00199 00205 @Override 00206 public Object eGet(int featureID, boolean resolve, boolean coreType) 00207 { 00208 switch (featureID) 00209 { 00210 case SmachDSLPackage.ACTION_STATE__NAME: 00211 return getName(); 00212 case SmachDSLPackage.ACTION_STATE__CLIENTNAME: 00213 if (resolve) return getClientname(); 00214 return basicGetClientname(); 00215 case SmachDSLPackage.ACTION_STATE__TRANSITIONS: 00216 return getTransitions(); 00217 } 00218 return super.eGet(featureID, resolve, coreType); 00219 } 00220 00226 @SuppressWarnings("unchecked") 00227 @Override 00228 public void eSet(int featureID, Object newValue) 00229 { 00230 switch (featureID) 00231 { 00232 case SmachDSLPackage.ACTION_STATE__NAME: 00233 setName((String)newValue); 00234 return; 00235 case SmachDSLPackage.ACTION_STATE__CLIENTNAME: 00236 setClientname((ActionClient)newValue); 00237 return; 00238 case SmachDSLPackage.ACTION_STATE__TRANSITIONS: 00239 getTransitions().clear(); 00240 getTransitions().addAll((Collection<? extends Transition>)newValue); 00241 return; 00242 } 00243 super.eSet(featureID, newValue); 00244 } 00245 00251 @Override 00252 public void eUnset(int featureID) 00253 { 00254 switch (featureID) 00255 { 00256 case SmachDSLPackage.ACTION_STATE__NAME: 00257 setName(NAME_EDEFAULT); 00258 return; 00259 case SmachDSLPackage.ACTION_STATE__CLIENTNAME: 00260 setClientname((ActionClient)null); 00261 return; 00262 case SmachDSLPackage.ACTION_STATE__TRANSITIONS: 00263 getTransitions().clear(); 00264 return; 00265 } 00266 super.eUnset(featureID); 00267 } 00268 00274 @Override 00275 public boolean eIsSet(int featureID) 00276 { 00277 switch (featureID) 00278 { 00279 case SmachDSLPackage.ACTION_STATE__NAME: 00280 return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); 00281 case SmachDSLPackage.ACTION_STATE__CLIENTNAME: 00282 return clientname != null; 00283 case SmachDSLPackage.ACTION_STATE__TRANSITIONS: 00284 return transitions != null && !transitions.isEmpty(); 00285 } 00286 return super.eIsSet(featureID); 00287 } 00288 00294 @Override 00295 public String toString() 00296 { 00297 if (eIsProxy()) return super.toString(); 00298 00299 StringBuffer result = new StringBuffer(super.toString()); 00300 result.append(" (name: "); 00301 result.append(name); 00302 result.append(')'); 00303 return result.toString(); 00304 } 00305 00306 } //ActionStateImpl