* @param event The original event from the changed callback
*/
private void processAttribHierarchyEvent(ODOMChangeEvent event) {
// Get the event source, which we know to be an attribute
final ODOMAttribute eventSrcAttrib = (ODOMAttribute) event.getSource();
// Is it an addition?
if (event.getNewValue() != null && event.getOldValue() == null) {
// TODO Should we do this test:
// To be consistent with element hierarchy events, make sure
// we do NOT already have this attribute
// If the attribute has just been added to an element that is
// a target in the source/target pairs, and the attribute is
// currently supported, then this counts as a notifiable
// change to the proxied elements
if (sourceTargetPairs.isTargetElement(
(Element)event.getNewValue()) &&
proxyElementDetails.isAttributeName(
eventSrcAttrib.getName())) {
proxiedElementsUpdated(ProxyElementDetails.ATTRIBUTES);
}
// Is it a deletion?
} else if (event.getNewValue() == null &&
event.getOldValue() != null) {
// TODO Should we do this test:
// To be consistent with element hierarchy events, make sure
// we DO already have this attribute
// If the attribute has just been removed from an element that
// is a target in the source/target pairs, and the attribute is
// currently supported, then this counts as a notifiable
// change to the proxied elements
if (sourceTargetPairs.isTargetElement(
(Element)event.getOldValue()) &&
proxyElementDetails.isAttributeName(
eventSrcAttrib.getName())) {
proxiedElementsUpdated(ProxyElementDetails.ATTRIBUTES);
}
} else {
// Event content is nonsense