return setUnique(i, createEntry(feature, object));
return setUnique(i, FeatureMapUtil.isFeatureMap(feature) ? object : createEntry(feature, object));
  public Object setUnique(EStructuralFeature feature, int index, Object object)  {    FeatureMapUtil.Validator validator = FeatureMapUtil.getValidator(owner.eClass(), feature);    if (isMany(feature))    {      int count = 0;      for (int i = 0, size = delegateSize(); i < size; ++i)      {        Entry entry = (Entry)delegateGet(i);        if (validator.isValid(entry.getEStructuralFeature()))        {          if (count == index)          {            return setUnique(i, createEntry(feature, object));          }          ++count;        }      }      throw new IndexOutOfBoundsException("index=" + index + ", size=" + count);    }    else    {      // Index should be -1.      for (int i = 0, size = delegateSize(); i < size; ++i)      {        Entry entry = (Entry)delegateGet(i);        if (validator.isValid(entry.getEStructuralFeature()))        {          return setUnique(i, createEntry(feature, object));        }      }      return feature.getDefaultValue();    }  }