@Override public InternalEObject eInternalContainer() {
if (eContainer == EUNINITIALIZED_CONTAINER) {
eInitializeContainer();
}
return eContainer;
}
@Override public int eContainerFeatureID() {
if (eContainer == EUNINITIALIZED_CONTAINER) {
eInitializeContainer();
}
return eContainerFeatureID;
}
protected void eInitializeContainer() {
eContainer = eStore().getContainer(this );
if (eContainer != null) {
EStructuralFeature eContainingFeature = eStore().getContainingFeature(this );
if (eContainingFeature instanceof EReference) {
EReference eContainingReference = (EReference) eContainingFeature;
EReference eOpposite = eContainingReference.getEOpposite();
if (eOpposite != null) {
eContainerFeatureID = eClass().getFeatureID(eOpposite);
return;
}
}
eContainerFeatureID = EOPPOSITE_FEATURE_BASE - eContainer.eClass().getFeatureID(eContainingFeature);
}
}
@Override public InternalEObject.EStore eStore() {
return eStore;
}
@Override public void eSetStore(InternalEObject.EStore store) {
this.eStore = store;
}
|