001 package railo.runtime.cache.eh; 002 003 import java.util.Date; 004 005 import net.sf.ehcache.Element; 006 import railo.commons.io.cache.CacheEntry; 007 import railo.runtime.cache.CacheUtil; 008 import railo.runtime.type.Struct; 009 010 public class EHCacheEntry implements CacheEntry { 011 012 private Element element; 013 014 public EHCacheEntry(Element element) { 015 this.element=element; 016 } 017 018 @Override 019 public Date created() { 020 return new Date(element.getCreationTime()); 021 } 022 023 @Override 024 public Date lastHit() { 025 return new Date(element.getLastAccessTime()); 026 } 027 028 @Override 029 public Date lastModified() { 030 long value = element.getLastUpdateTime(); 031 if(value==0)return created(); 032 return new Date(value); 033 } 034 035 @Override 036 public int hitCount() { 037 return (int)element.getHitCount(); 038 } 039 040 @Override 041 public long idleTimeSpan() { 042 return element.getTimeToIdle()*1000; 043 } 044 045 @Override 046 public long liveTimeSpan() { 047 return element.getTimeToLive()*1000; 048 } 049 050 @Override 051 public long size() { 052 return element.getSerializedSize(); 053 } 054 055 @Override 056 public String getKey() { 057 return (String) element.getKey(); 058 } 059 060 @Override 061 public Object getValue() { 062 return element.getObjectValue(); 063 } 064 065 public void setElement(Element element) { 066 this.element=element; 067 } 068 069 070 @Override 071 public String toString() { 072 return CacheUtil.toString(this); 073 } 074 075 @Override 076 public Struct getCustomInfo() { 077 Struct info=CacheUtil.getInfo(this); 078 info.setEL("version", new Double(element.getVersion())); 079 return info; 080 } 081 }