in jetcache-core/src/main/java/com/alicp/jetcache/support/CacheNotifyMonitor.java [68:121]
public void afterOperation(CacheEvent event) {
if (this.broadcastManager == null) {
return;
}
AbstractCache absCache = CacheUtil.getAbstractCache(event.getCache());
if (absCache.isClosed()) {
return;
}
AbstractEmbeddedCache localCache = getLocalCache(absCache);
if (localCache == null) {
return;
}
if (event instanceof CachePutEvent) {
CacheMessage m = new CacheMessage();
m.setArea(area);
m.setCacheName(cacheName);
m.setSourceId(sourceId);
CachePutEvent e = (CachePutEvent) event;
m.setType(CacheMessage.TYPE_PUT);
m.setKeys(new Object[]{convertKey(e.getKey(), localCache)});
broadcastManager.publish(m);
} else if (event instanceof CacheRemoveEvent) {
CacheMessage m = new CacheMessage();
m.setArea(area);
m.setCacheName(cacheName);
m.setSourceId(sourceId);
CacheRemoveEvent e = (CacheRemoveEvent) event;
m.setType(CacheMessage.TYPE_REMOVE);
m.setKeys(new Object[]{convertKey(e.getKey(), localCache)});
broadcastManager.publish(m);
} else if (event instanceof CachePutAllEvent) {
CacheMessage m = new CacheMessage();
m.setArea(area);
m.setCacheName(cacheName);
m.setSourceId(sourceId);
CachePutAllEvent e = (CachePutAllEvent) event;
m.setType(CacheMessage.TYPE_PUT_ALL);
if (e.getMap() != null) {
m.setKeys(e.getMap().keySet().stream().map(k -> convertKey(k, localCache)).toArray());
}
broadcastManager.publish(m);
} else if (event instanceof CacheRemoveAllEvent) {
CacheMessage m = new CacheMessage();
m.setArea(area);
m.setCacheName(cacheName);
m.setSourceId(sourceId);
CacheRemoveAllEvent e = (CacheRemoveAllEvent) event;
m.setType(CacheMessage.TYPE_REMOVE_ALL);
if (e.getKeys() != null) {
m.setKeys(e.getKeys().stream().map(k -> convertKey(k, localCache)).toArray());
}
broadcastManager.publish(m);
}
}