Returns the value of the given feature of the object; the value is optionally {@link org.eclipse.emf.ecore.util.EcoreUtil#resolve(EObject,EObject) resolved} before it is returned.
If the feature is {@link ETypedElement#isMany() many-valued}, the result will be an {@link EList}and each object in the list will be {@link EClassifier#isInstance an instance of} the feature's {@link ETypedElement#getEType() type}; the list's contents are not affected by resolve
argument. Otherwise the result directly will be an instance of the feature's type; if it is a {@link EObject#eIsProxy() proxy}, it is resolved. The core type specifies whether to return the core reflective value, e.g., {@link org.eclipse.emf.common.util.EMap}, or the public API value, e.g., {@link java.util.Map}.
@param eFeature the feature of the value to fetch.
@param resolve whether to resolve.
@param coreType whether to return the core type value or the API type value.
@return the value of the given feature of the object.
@see EObject#eGet(EStructuralFeature,boolean)