protected boolean eIsCaching() {
return true;
}
[[#variable14712260]]Object dynamicGet(int dynamicFeatureID) {
Object result = eSettings[dynamicFeatureID];
if (result == null) {
EStructuralFeature eStructuralFeature = eDynamicFeature(dynamicFeatureID);
if ( !eStructuralFeature.isTransient()) {
if (FeatureMapUtil.isFeatureMap(eStructuralFeature)) {
eSettings[dynamicFeatureID] = result = createFeatureMap(eStructuralFeature);
}
else
if (eStructuralFeature.isMany()) {
eSettings[dynamicFeatureID] = result = createList(eStructuralFeature);
}
else {
result = eStore().get(this, eStructuralFeature, InternalEObject.EStore.NO_INDEX);
if (eIsCaching()) {
eSettings[dynamicFeatureID] = result;
}
}
}
}
return result;
}
[[#variable14712260]]void dynamicSet(int dynamicFeatureID, Object value) {
EStructuralFeature eStructuralFeature = eDynamicFeature(dynamicFeatureID);
if (eStructuralFeature.isTransient()) {
eSettings[dynamicFeatureID] = value;
}
else {
eStore().set(this, eStructuralFeature, InternalEObject.EStore.NO_INDEX, value == NIL ? null: value);
if (eIsCaching()) {
eSettings[dynamicFeatureID] = value;
}
}
}
[[#variable14712260]]void dynamicUnset(int dynamicFeatureID) {
eStore().unset(this, eDynamicFeature(dynamicFeatureID));
eSettings[dynamicFeatureID] = null;
}
|