1 7 package org.enhydra.dods.editor.Doml.impl; 8 9 import java.util.Collection ; 10 11 import org.eclipse.emf.common.notify.Notification; 12 import org.eclipse.emf.common.notify.NotificationChain; 13 14 import org.eclipse.emf.common.util.EList; 15 16 import org.eclipse.emf.ecore.EClass; 17 import org.eclipse.emf.ecore.EStructuralFeature; 18 import org.eclipse.emf.ecore.InternalEObject; 19 20 import org.eclipse.emf.ecore.impl.ENotificationImpl; 21 import org.eclipse.emf.ecore.impl.EObjectImpl; 22 23 import org.eclipse.emf.ecore.util.EObjectContainmentEList; 24 import org.eclipse.emf.ecore.util.InternalEList; 25 26 import org.enhydra.dods.editor.Doml.DomlPackage; 27 import org.enhydra.dods.editor.Doml.IndexColumnType; 28 import org.enhydra.dods.editor.Doml.IndexType; 29 import org.enhydra.dods.editor.Doml.TrueFalse; 30 31 47 public class IndexTypeImpl extends EObjectImpl implements IndexType { 48 56 protected EList indexColumn = null; 57 58 66 protected static final TrueFalse CLUSTERED_EDEFAULT = TrueFalse.FALSE_LITERAL; 67 68 76 protected TrueFalse clustered = CLUSTERED_EDEFAULT; 77 78 85 protected boolean clusteredESet = false; 86 87 95 protected static final String ID_EDEFAULT = null; 96 97 105 protected String id = ID_EDEFAULT; 106 107 115 protected static final TrueFalse UNIQUE_EDEFAULT = TrueFalse.FALSE_LITERAL; 116 117 125 protected TrueFalse unique = UNIQUE_EDEFAULT; 126 127 134 protected boolean uniqueESet = false; 135 136 141 protected IndexTypeImpl() { 142 super(); 143 } 144 145 150 protected EClass eStaticClass() { 151 return DomlPackage.eINSTANCE.getIndexType(); 152 } 153 154 159 public EList getIndexColumn() { 160 if (indexColumn == null) { 161 indexColumn = new EObjectContainmentEList(IndexColumnType.class, this, DomlPackage.INDEX_TYPE__INDEX_COLUMN); 162 } 163 return indexColumn; 164 } 165 166 171 public TrueFalse getClustered() { 172 return clustered; 173 } 174 175 180 public void setClustered(TrueFalse newClustered) { 181 TrueFalse oldClustered = clustered; 182 clustered = newClustered == null ? CLUSTERED_EDEFAULT : newClustered; 183 boolean oldClusteredESet = clusteredESet; 184 clusteredESet = true; 185 if (eNotificationRequired()) 186 eNotify(new ENotificationImpl(this, Notification.SET, DomlPackage.INDEX_TYPE__CLUSTERED, oldClustered, clustered, !oldClusteredESet)); 187 } 188 189 194 public void unsetClustered() { 195 TrueFalse oldClustered = clustered; 196 boolean oldClusteredESet = clusteredESet; 197 clustered = CLUSTERED_EDEFAULT; 198 clusteredESet = false; 199 if (eNotificationRequired()) 200 eNotify(new ENotificationImpl(this, Notification.UNSET, DomlPackage.INDEX_TYPE__CLUSTERED, oldClustered, CLUSTERED_EDEFAULT, oldClusteredESet)); 201 } 202 203 208 public boolean isSetClustered() { 209 return clusteredESet; 210 } 211 212 217 public String getId() { 218 return id; 219 } 220 221 226 public void setId(String newId) { 227 String oldId = id; 228 id = newId; 229 if (eNotificationRequired()) 230 eNotify(new ENotificationImpl(this, Notification.SET, DomlPackage.INDEX_TYPE__ID, oldId, id)); 231 } 232 233 238 public TrueFalse getUnique() { 239 return unique; 240 } 241 242 247 public void setUnique(TrueFalse newUnique) { 248 TrueFalse oldUnique = unique; 249 unique = newUnique == null ? UNIQUE_EDEFAULT : newUnique; 250 boolean oldUniqueESet = uniqueESet; 251 uniqueESet = true; 252 if (eNotificationRequired()) 253 eNotify(new ENotificationImpl(this, Notification.SET, DomlPackage.INDEX_TYPE__UNIQUE, oldUnique, unique, !oldUniqueESet)); 254 } 255 256 261 public void unsetUnique() { 262 TrueFalse oldUnique = unique; 263 boolean oldUniqueESet = uniqueESet; 264 unique = UNIQUE_EDEFAULT; 265 uniqueESet = false; 266 if (eNotificationRequired()) 267 eNotify(new ENotificationImpl(this, Notification.UNSET, DomlPackage.INDEX_TYPE__UNIQUE, oldUnique, UNIQUE_EDEFAULT, oldUniqueESet)); 268 } 269 270 275 public boolean isSetUnique() { 276 return uniqueESet; 277 } 278 279 284 public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, Class baseClass, NotificationChain msgs) { 285 if (featureID >= 0) { 286 switch (eDerivedStructuralFeatureID(featureID, baseClass)) { 287 case DomlPackage.INDEX_TYPE__INDEX_COLUMN: 288 return ((InternalEList)getIndexColumn()).basicRemove(otherEnd, msgs); 289 default: 290 return eDynamicInverseRemove(otherEnd, featureID, baseClass, msgs); 291 } 292 } 293 return eBasicSetContainer(null, featureID, msgs); 294 } 295 296 301 public Object eGet(EStructuralFeature eFeature, boolean resolve) { 302 switch (eDerivedStructuralFeatureID(eFeature)) { 303 case DomlPackage.INDEX_TYPE__INDEX_COLUMN: 304 return getIndexColumn(); 305 case DomlPackage.INDEX_TYPE__CLUSTERED: 306 return getClustered(); 307 case DomlPackage.INDEX_TYPE__ID: 308 return getId(); 309 case DomlPackage.INDEX_TYPE__UNIQUE: 310 return getUnique(); 311 } 312 return eDynamicGet(eFeature, resolve); 313 } 314 315 320 public void eSet(EStructuralFeature eFeature, Object newValue) { 321 switch (eDerivedStructuralFeatureID(eFeature)) { 322 case DomlPackage.INDEX_TYPE__INDEX_COLUMN: 323 getIndexColumn().clear(); 324 getIndexColumn().addAll((Collection )newValue); 325 return; 326 case DomlPackage.INDEX_TYPE__CLUSTERED: 327 setClustered((TrueFalse)newValue); 328 return; 329 case DomlPackage.INDEX_TYPE__ID: 330 setId((String )newValue); 331 return; 332 case DomlPackage.INDEX_TYPE__UNIQUE: 333 setUnique((TrueFalse)newValue); 334 return; 335 } 336 eDynamicSet(eFeature, newValue); 337 } 338 339 344 public void eUnset(EStructuralFeature eFeature) { 345 switch (eDerivedStructuralFeatureID(eFeature)) { 346 case DomlPackage.INDEX_TYPE__INDEX_COLUMN: 347 getIndexColumn().clear(); 348 return; 349 case DomlPackage.INDEX_TYPE__CLUSTERED: 350 unsetClustered(); 351 return; 352 case DomlPackage.INDEX_TYPE__ID: 353 setId(ID_EDEFAULT); 354 return; 355 case DomlPackage.INDEX_TYPE__UNIQUE: 356 unsetUnique(); 357 return; 358 } 359 eDynamicUnset(eFeature); 360 } 361 362 367 public boolean eIsSet(EStructuralFeature eFeature) { 368 switch (eDerivedStructuralFeatureID(eFeature)) { 369 case DomlPackage.INDEX_TYPE__INDEX_COLUMN: 370 return indexColumn != null && !indexColumn.isEmpty(); 371 case DomlPackage.INDEX_TYPE__CLUSTERED: 372 return isSetClustered(); 373 case DomlPackage.INDEX_TYPE__ID: 374 return ID_EDEFAULT == null ? id != null : !ID_EDEFAULT.equals(id); 375 case DomlPackage.INDEX_TYPE__UNIQUE: 376 return isSetUnique(); 377 } 378 return eDynamicIsSet(eFeature); 379 } 380 381 386 public String toString() { 387 if (eIsProxy()) return super.toString(); 388 389 StringBuffer result = new StringBuffer (super.toString()); 390 result.append(" (clustered: "); 391 if (clusteredESet) result.append(clustered); else result.append("<unset>"); 392 result.append(", id: "); 393 result.append(id); 394 result.append(", unique: "); 395 if (uniqueESet) result.append(unique); else result.append("<unset>"); 396 result.append(')'); 397 return result.toString(); 398 } 399 400 } | Popular Tags |