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            /**
023             * @see net.sf.ehcache.event.CacheEventListener#notifyElementExpired(net.sf.ehcache.Ehcache, net.sf.ehcache.Element)
024             */
025            public void notifyElementExpired(Ehcache cache, Element element) {
026                    listener.onExpires(new EHCacheEntry(element));
027            }
028    
029            /**
030             * @see net.sf.ehcache.event.CacheEventListener#notifyElementPut(net.sf.ehcache.Ehcache, net.sf.ehcache.Element)
031             */
032            public void notifyElementPut(Ehcache cache, Element element) throws CacheException {
033                    listener.onPut(new EHCacheEntry(element));
034            }
035    
036            /**
037             * @see net.sf.ehcache.event.CacheEventListener#notifyElementRemoved(net.sf.ehcache.Ehcache, net.sf.ehcache.Element)
038             */
039            public void notifyElementRemoved(Ehcache cache, Element element) throws CacheException {
040                    listener.onRemove(new EHCacheEntry(element));
041            }
042            
043            
044            
045            @Override
046            public void dispose() {
047                    // TODO Auto-generated method stub
048                    
049            }
050    
051            @Override
052            public void notifyElementEvicted(Ehcache arg0, Element arg1) {
053                    // TODO Auto-generated method stub
054                    
055            }
056    
057            
058    
059            @Override
060            public void notifyElementUpdated(Ehcache cache, Element element) throws CacheException {
061                    listener.onPut(new EHCacheEntry(element));
062            }
063    
064            @Override
065            public void notifyRemoveAll(Ehcache arg0) {
066                    // TODO Auto-generated method stub
067                    
068            }
069    
070            /* (non-Javadoc)
071             * @see java.lang.Object#clone()
072             */
073            public Object clone(){
074                    return new EHCacheEventListener(listener.duplicate()); 
075            }
076    }