001    package railo.runtime.cache.eh;
002    
003    import java.io.Serializable;
004    
005    import net.sf.ehcache.CacheException;
006    import net.sf.ehcache.Ehcache;
007    import net.sf.ehcache.Element;
008    import railo.commons.io.cache.CacheEventListener;
009    
010    
011    public class EHCacheEventListener implements net.sf.ehcache.event.CacheEventListener,Serializable {
012    
013            private static final long serialVersionUID = 5931737203770901097L;
014    
015            private CacheEventListener listener;
016    
017            public EHCacheEventListener(CacheEventListener listener) {
018                    this.listener=listener;
019            }
020            
021    
022            @Override
023            public void notifyElementExpired(Ehcache cache, Element element) {
024                    listener.onExpires(new EHCacheEntry(element));
025            }
026    
027            @Override
028            public void notifyElementPut(Ehcache cache, Element element) throws CacheException {
029                    listener.onPut(new EHCacheEntry(element));
030            }
031    
032            @Override
033            public void notifyElementRemoved(Ehcache cache, Element element) throws CacheException {
034                    listener.onRemove(new EHCacheEntry(element));
035            }
036            
037            
038            
039            @Override
040            public void dispose() {
041                    // TODO Auto-generated method stub
042                    
043            }
044    
045            @Override
046            public void notifyElementEvicted(Ehcache arg0, Element arg1) {
047                    // TODO Auto-generated method stub
048                    
049            }
050    
051            
052    
053            @Override
054            public void notifyElementUpdated(Ehcache cache, Element element) throws CacheException {
055                    listener.onPut(new EHCacheEntry(element));
056            }
057    
058            @Override
059            public void notifyRemoveAll(Ehcache arg0) {
060                    // TODO Auto-generated method stub
061                    
062            }
063    
064            @Override
065            public Object clone(){
066                    return new EHCacheEventListener(listener.duplicate()); 
067            }
068    }