package com.hazelcast.examples;
import javax.cache.event.CacheEntryCreatedListener;
import javax.cache.event.CacheEntryEvent;
import javax.cache.event.CacheEntryExpiredListener;
import javax.cache.event.CacheEntryListenerException;
import javax.cache.event.CacheEntryRemovedListener;
import javax.cache.event.CacheEntryUpdatedListener;
import java.io.Serializable;
/**
* Simple Cache Entry Listener to print the received events to System.out
*/
class MyCacheEntryListener<K, V> implements CacheEntryCreatedListener<K, V>,
CacheEntryUpdatedListener<K, V>, CacheEntryExpiredListener<K, V>,
CacheEntryRemovedListener<K, V>, Serializable {
MyCacheEntryListener() {
}
@Override
public void onCreated(Iterable<CacheEntryEvent<? extends K, ? extends V>> cacheEntryEvents)
throws CacheEntryListenerException {
System.out.println("CREATE EVENT RECEIVED: ");
System.out.println(printEvent(cacheEntryEvents));
}
@Override
public void onExpired(Iterable<CacheEntryEvent<? extends K, ? extends V>> cacheEntryEvents)
throws CacheEntryListenerException {
System.out.println("EXPIRE EVENT RECEIVED: ");
System.out.println(printEvent(cacheEntryEvents));
}
@Override
public void onRemoved(Iterable<CacheEntryEvent<? extends K, ? extends V>> cacheEntryEvents)
throws CacheEntryListenerException {
System.out.println("REMOVE EVENT RECEIVED: ");
System.out.println(printEvent(cacheEntryEvents));
}
@Override
public void onUpdated(Iterable<CacheEntryEvent<? extends K, ? extends V>> cacheEntryEvents)
throws CacheEntryListenerException {
System.out.println("UPDATE EVENT RECEIVED: ");
System.out.println(printEvent(cacheEntryEvents));
}
private String printEvent(Iterable<CacheEntryEvent<? extends K, ? extends V>> cacheEntryEvents) {
StringBuilder sb = new StringBuilder();
for (CacheEntryEvent<? extends K, ? extends V> next : cacheEntryEvents) {
sb.append("Key: ");
sb.append(next.getKey());
sb.append(", Value:");
sb.append(next.getValue());
sb.append("\n");
}
return sb.toString();
}
}