package railo.runtime.cache.eh; import java.util.Date; import net.sf.ehcache.Element; import railo.commons.io.cache.CacheEntry; import railo.runtime.cache.CacheUtil; import railo.runtime.type.Struct; public class EHCacheEntry implements CacheEntry { private Element element; public EHCacheEntry(Element element) { this.element=element; } @Override public Date created() { return new Date(element.getCreationTime()); } @Override public Date lastHit() { return new Date(element.getLastAccessTime()); } @Override public Date lastModified() { long value = element.getLastUpdateTime(); if(value==0)return created(); return new Date(value); } @Override public int hitCount() { return (int)element.getHitCount(); } @Override public long idleTimeSpan() { return element.getTimeToIdle()*1000; } @Override public long liveTimeSpan() { return element.getTimeToLive()*1000; } @Override public long size() { return element.getSerializedSize(); } @Override public String getKey() { return (String) element.getKey(); } @Override public Object getValue() { return element.getObjectValue(); } public void setElement(Element element) { this.element=element; } @Override public String toString() { return CacheUtil.toString(this); } @Override public Struct getCustomInfo() { Struct info=CacheUtil.getInfo(this); info.setEL("version", new Double(element.getVersion())); return info; } }