} else {
output.replaceAttributes(new AttributesImpl(deserialize(r.getOldAttribute())),
new AttributesImpl(deserialize(r.getNewAttribute())));
}
} else if (c.hasUpdateAttributes()) {
UpdateAttributes u = c.getUpdateAttributes();
if (u.getEmpty()) {
output.updateAttributes(AttributesUpdateImpl.EMPTY_MAP);
} else {
String[] triplets = new String[u.getAttributeUpdate().size() * 3];
int i = 0;
for (KeyValueUpdate kvu : u.getAttributeUpdate()) {
triplets[i++] = kvu.getKey();
triplets[i++] = kvu.hasOldValue() ? kvu.getOldValue() : null;
triplets[i++] = kvu.hasNewValue() ? kvu.getNewValue() : null;
}
output.updateAttributes(new AttributesUpdateImpl(triplets));