else
{
for (int i = 0; i < settings.size(); i++)
{
FeatureChange change = (FeatureChange)settings.get(i);
EStructuralFeature feature = change.getFeature();
if (FeatureMapUtil.isFeatureMap(feature))
{
final List values = (List)change.getValue();
if (sdoSettings == null)
{
sdoSettings = new BasicEList(settings);
}
DelegatingFeatureMap featureMap = new DelegatingFeatureMap(((InternalEObject)dataObject), feature)
{
protected final List theList = values;
protected List delegateList()
{
return theList;
}
};
// create new settings and replace the setting for mixed feature
sdoSettings.set(i, SDOFactory.eINSTANCE.createChangeSummarySetting(feature, new BasicSequence(featureMap), change.isSet()));
// add all derived features
for (int k = 0; k < featureMap.size(); k++)
{
EStructuralFeature f = featureMap.getEStructuralFeature(k);
sdoSettings.add(SDOFactory.eINSTANCE.createChangeSummarySetting(f, featureMap.get(f, false), true));
}
}
}
}