package org.infinispan.notifications.cachelistener.event;
import org.infinispan.Cache;
/**
* An interface that defines common characteristics of events
*
* @author Manik Surtani
* @since 4.0
*/
public interface Event<K, V> {
enum Type {
CACHE_ENTRY_ACTIVATED, CACHE_ENTRY_PASSIVATED, CACHE_ENTRY_VISITED,
CACHE_ENTRY_LOADED, CACHE_ENTRY_EVICTED, CACHE_ENTRY_CREATED, CACHE_ENTRY_REMOVED, CACHE_ENTRY_MODIFIED,
TRANSACTION_COMPLETED, TRANSACTION_REGISTERED, CACHE_ENTRY_INVALIDATED, CACHE_ENTRY_EXPIRED, DATA_REHASHED,
TOPOLOGY_CHANGED, PARTITION_STATUS_CHANGED;
private static final Type[] CACHED_VALUES = values();
public static Type valueOf(int ordinal) {
return CACHED_VALUES[ordinal];
}
}
/**
* @return the type of event represented by this instance.
*/
Type getType();
/**
* @return <tt>true</tt> if the notification is before the event has occurred, <tt>false</tt> if after the event has occurred.
*/
boolean isPre();
/**
* @return a handle to the cache instance that generated this notification.
*/
Cache<K, V> getCache();
}