List contents = new ArrayList((eDataObject).eContents());
for (int i = 0, size = contents.size(); i < size; ++i)
{
((DataObject)contents.get(i)).delete();
}
EClass eClass = eDataObject.eClass();
for (int i = 0, size = eClass.getFeatureCount(); i < size; ++i)
{
EStructuralFeature eStructuralFeature = eClass.getEStructuralFeature(i);
if (eStructuralFeature.isChangeable() && !eStructuralFeature.isDerived() && !((Property)eStructuralFeature).isReadOnly())
{