Community
Participate
Working Groups
When retrieving the old value of an attribute, ChangeAttributeOperation does not differentiate between an attribute that is not contained in the IAttributeStore (containsKey() == false) and one whose value is mapped to null. Therefore, it does not properly restore the initial situation upon undo. Further, ChangeAttributeValue always sets a property with null value, in case the given new value is null. Either we need a separate operation for the case that an attribute is to be removed, or this should be specifiable.
We should rename ChangeAttributeOperation into SetAttributeOperation and augment it with an UnsetAttributeOperation.