public void nodeModified(NodeModifiedEvent event)
{
if (event.isPre()) return;
// we're only interested in put and remove data operations
ModificationType modType = event.getModificationType();
if (!modType.equals(ModificationType.PUT_DATA) && !modType.equals(ModificationType.REMOVE_DATA)) return;
// ignore changes for other roots in a shared cache
@SuppressWarnings("unchecked")
Fqn<Serializable> fqn = event.getFqn();
if (!fqn.isChildOf(ROOTFQN)) return;
Serializable key = null;
Serializable value = null;
// there should be exactly one key/value pair in the map
@SuppressWarnings("unchecked")
Map<Serializable, Serializable> data = event.getData();
if (data != null && !data.isEmpty())
{
key = (Serializable) data.keySet().iterator().next();
value = (Serializable) data.get(key);
}
if (modType.equals(ModificationType.PUT_DATA))
{
DistributedStateImpl.this.notifyKeyListeners((String) fqn.get(ROOTFQNSIZE), key, value, event.isOriginLocal());
}
else
{