{
          for (EStructuralFeature feature : getAnyChildrenFeatures(eObject))
          {
            if (feature == childFeature)
            {
              break;
            } 

            if (feature.isMany())
            {
              index -= ((List<?>)(eObject).eGet(feature)).size();
            }
            else if (eObject.eGet(feature) != null)
            {
              index -= 1;
            }
          }
          if (index < 0)
          {
            break;
          }
        }