if (FeatureMapUtil.isFeatureMap(feature)) { for (int i = 0, size = delegateSize(); i < size; ++i) { Entry entry = (Entry)delegateGet(i); if (validator.isValid(entry.getEStructuralFeature())) { if (entry.equals(object)) { match = entry; break; } ++count; } } }
  public NotificationChain basicRemove(EStructuralFeature feature, Object object, NotificationChain notifications)  {    FeatureMapUtil.Validator validator = FeatureMapUtil.getValidator(owner.eClass(), feature);    int count = 0;    Entry match = null;    if (object != null)    {      for (int i = 0, size = delegateSize(); i < size; ++i)      {        Entry entry = (Entry)delegateGet(i);        if (validator.isValid(entry.getEStructuralFeature()))        {          if (object.equals(entry.getValue()))          {            match = entry;            break;          }          ++count;        }      }    }    else    {      for (int i = 0, size = delegateSize(); i < size; ++i)      {        Entry entry = (Entry)delegateGet(i);        if (validator.isValid(entry.getEStructuralFeature()))        {          if (entry.getValue() == null)          {            match = entry;            break;          }          ++count;        }      }    }    if (match != null)    {      if (isNotificationRequired())      {        NotificationImpl notification =           feature.isMany() ?            createNotification              (Notification.REMOVE,               feature,               object,               null,                count,               true) :            createNotification              (feature.isUnsettable() ? Notification.UNSET : Notification.SET,                feature,               object,               feature.getDefaultValue(),                Notification.NO_INDEX,               true);          if (notifications != null)        {          notifications.add(notification);        }        else        {          notifications = notification;        }      }      notifications = basicRemove(match, notifications);    }    return notifications;  }