1 34 35 36 package com.micronova.util; 37 38 import java.util.*; 39 40 public class TimedCache extends Cache 41 { 42 protected long _lifespan; 43 44 public TimedCache(int initialCapacity, float loadFactor, boolean accessOrder, int maxSize, long lifespan) 45 { 46 super(initialCapacity, loadFactor, accessOrder, maxSize); 47 48 _lifespan = lifespan; 49 } 50 51 public Object put(Object key, Object value) 52 { 53 TimedCacheEntry entry = new TimedCacheEntry(value); 54 55 TimedCacheEntry previous = (TimedCacheEntry)super.put(key, entry); 56 57 if (previous == null) 58 { 59 return null; 60 } 61 else 62 { 63 return previous.getObject(); 64 } 65 } 66 67 public Object get(Object key) 68 { 69 TimedCacheEntry entry = (TimedCacheEntry)super.get(key); 70 71 Object value = null; 72 73 if (entry != null) 74 { 75 if (entry.getTimestamp() > System.currentTimeMillis() - _lifespan) 76 { 77 value = entry.getObject(); 78 } 79 else 80 { 81 remove(key); 82 } 83 84 } 85 86 return value; 87 } 88 } 89 | Popular Tags |