{
EClass eClass = eObject.eClass();
Set openFeatureSet = new HashSet();
for (int i = 0, count = eClass.getEAllStructuralFeatures().size(); i < count; ++i)
{
EStructuralFeature eStructuralFeature = eClass.getEStructuralFeature(i);
if (/*!eStructuralFeature.isDerived() && */FeatureMapUtil.isFeatureMap(eStructuralFeature))
{
List features = (List)eObject.eGet(eStructuralFeature);
for (int j = 0, size = features.size(); j < size; ++j)
{
FeatureMap.Entry entry = (FeatureMap.Entry)features.get(j);
EStructuralFeature entryFeature = entry.getEStructuralFeature();
if (openFeatureSet.add(entryFeature))
{
Property property = (Property)entryFeature;
if (property.getName().equals(featureName)) return entryFeature;