package railo.runtime.cache.eh;
import java.io.Serializable;
import net.sf.ehcache.CacheException;
import net.sf.ehcache.Ehcache;
import net.sf.ehcache.Element;
import railo.commons.io.cache.CacheEventListener;
public class EHCacheEventListener implements net.sf.ehcache.event.CacheEventListener,Serializable {
private static final long serialVersionUID = 5931737203770901097L;
private CacheEventListener listener;
public EHCacheEventListener(CacheEventListener listener) {
this.listener=listener;
}
@Override
public void notifyElementExpired(Ehcache cache, Element element) {
listener.onExpires(new EHCacheEntry(element));
}
@Override
public void notifyElementPut(Ehcache cache, Element element) throws CacheException {
listener.onPut(new EHCacheEntry(element));
}
@Override
public void notifyElementRemoved(Ehcache cache, Element element) throws CacheException {
listener.onRemove(new EHCacheEntry(element));
}
@Override
public void dispose() {
// TODO Auto-generated method stub
}
@Override
public void notifyElementEvicted(Ehcache arg0, Element arg1) {
// TODO Auto-generated method stub
}
@Override
public void notifyElementUpdated(Ehcache cache, Element element) throws CacheException {
listener.onPut(new EHCacheEntry(element));
}
@Override
public void notifyRemoveAll(Ehcache arg0) {
// TODO Auto-generated method stub
}
@Override
public Object clone(){
return new EHCacheEventListener(listener.duplicate());
}
}