eStructuralFeatureData.name = eStructuralFeature.getName();
eStructuralFeatureData.isTransient = eStructuralFeature.isTransient() || eStructuralFeature.isContainer() && !eStructuralFeature.isResolveProxies();
eStructuralFeatureData.kind = FeatureKind.get(eStructuralFeature);
if (eStructuralFeature instanceof EAttribute)
{
EAttribute eAttribute = (EAttribute)eStructuralFeature;
EDataType eDataType = eAttribute.getEAttributeType();
eStructuralFeatureData.eDataType = eDataType;
eStructuralFeatureData.eFactory = eDataType.getEPackage().getEFactoryInstance();
eStructuralFeatureData.isProxyTransient = eStructuralFeatureData.kind == FeatureKind.FEATURE_MAP;
}
else