Sets the value of the given feature of the object to the new value.
If the feature is {@link ETypedElement#isMany() many-valued}, the new value must be an {@link EList}and each object in that list must be {@link EClassifier#isInstance an instance of} the feature's {@link ETypedElement#getEType() type}; the existing contents are cleared and the contents of the new value are added. However, if the new value is the content list itself, or is modified as a side effect of modifying the content list (i.e., if it is a view on the content list), the behavior is undefined and will likely result in simply clearing the list. If the feature is single-valued, the new value directly must be an instance of the feature's type and it becomes the new value of the feature of the object. If the feature is {@link EStructuralFeature#isUnsettable() unsettable}, the modeled state becomes set; otherwise, the feature may still not considered {@link #eIsSet set} if the new value is the same as the default.
@param feature the feature of the value to set.
@exception IllegalArgumentException if the feature is not one the {@link #eClass meta class}'s {@link EClass#getEAllStructuralFeatures features}, or it isn't {@link EStructuralFeature#isChangeable changeable}.
@exception ClassCastException if there is a type conflict.
@exception ArrayStoreException if there is a type conflict.
@see #eUnset(EStructuralFeature)
@see #eIsSet(EStructuralFeature)
@see #eGet(EStructuralFeature,boolean)
@ignore
@model
@generated