1 17 package org.eclipse.emf.ecore.util; 18 19 20 import org.eclipse.emf.common.notify.Notification; 21 import org.eclipse.emf.ecore.InternalEObject; 22 23 24 public class EObjectEList extends EcoreEList 25 { 26 public static class Unsettable extends EObjectEList 27 { 28 protected boolean isSet; 29 30 public Unsettable(Class dataClass, InternalEObject owner, int featureID) 31 { 32 super(dataClass, owner, featureID); 33 } 34 35 protected void didChange() 36 { 37 isSet = true; 38 } 39 40 public boolean isSet() 41 { 42 return isSet; 43 } 44 45 public void unset() 46 { 47 super.unset(); 48 if (isNotificationRequired()) 49 { 50 boolean oldIsSet = isSet; 51 isSet = false; 52 owner.eNotify(createNotification(Notification.UNSET, oldIsSet, false)); 53 } 54 else 55 { 56 isSet = false; 57 } 58 } 59 } 60 61 protected final int featureID; 62 63 public EObjectEList(Class dataClass, InternalEObject owner, int featureID) 64 { 65 super(dataClass, owner); 66 this.featureID = featureID; 67 } 68 69 public int getFeatureID() 70 { 71 return featureID; 72 } 73 74 protected boolean useEquals() 75 { 76 return false; 77 } 78 79 protected boolean isUnique() 80 { 81 return true; 82 } 83 84 protected boolean hasInverse() 85 { 86 return false; 87 } 88 89 protected boolean isEObject() 90 { 91 return true; 92 } 93 94 protected boolean canContainNull() 95 { 96 return false; 97 } 98 99 protected Object resolve(int index, Object object) 100 { 101 return object; 102 } 103 } 104 | Popular Tags |