InternalEObject.EOPPOSITE_FEATURE_BASE - owner.eClass().getEAllStructuralFeatures().indexOf(eReference),
InternalEObject.EOPPOSITE_FEATURE_BASE - (containmentFeatureID == -1 ? featureID : containmentFeatureID),
  public NotificationChain inverseRemove(Object object, NotificationChain notifications)  {    Entry entry = (Entry)object;    EStructuralFeature feature = entry.getEStructuralFeature();    if (feature instanceof EReference)    {      EReference eReference = (EReference)feature;      EReference eOpposite = eReference.getEOpposite();      if (eOpposite != null)      {        InternalEObject internalEObject = (InternalEObject)entry.getValue();        if (internalEObject != null)        {          notifications =             internalEObject.eInverseRemove              (owner,               internalEObject.eClass().getEAllStructuralFeatures().indexOf(eOpposite),               null,               notifications);        }      }      else if (eReference.isContainment())      {        InternalEObject internalEObject = (InternalEObject)entry.getValue();        if (internalEObject != null)        {          notifications =            internalEObject.eInverseRemove              (owner,               InternalEObject.EOPPOSITE_FEATURE_BASE -                  owner.eClass().getEAllStructuralFeatures().indexOf(eReference),               null,               notifications);        }      }    }    return notifications;  }