1 package org.shiftone.cache.decorator.miss; 2 3 4 5 import org.shiftone.cache.Cache; 6 import org.shiftone.cache.CacheException; 7 import org.shiftone.cache.util.AbstractDecoratorCacheFactory; 8 import org.shiftone.cache.util.Log; 9 10 11 15 public class MissHandlingCacheFactory extends AbstractDecoratorCacheFactory 16 { 17 18 private static final Log LOG = new Log(MissHandlingCacheFactory.class); 19 private Class missHandlerClass; 20 21 protected Cache wrapDelegate(String cacheName, Cache delegateCache) throws CacheException 22 { 23 return new MissHandlingCache(delegateCache, createMissHandler()); 24 } 25 26 27 public Class getMissHandlerClass() 28 { 29 return missHandlerClass; 30 } 31 32 33 public void setMissHandlerClass(Class missHandlerClass) 34 { 35 this.missHandlerClass = missHandlerClass; 36 } 37 38 39 public MissHandler createMissHandler() throws CacheException 40 { 41 42 MissHandler missHandler; 43 Class klass = getMissHandlerClass(); 44 45 try 46 { 47 missHandler = (MissHandler) klass.newInstance(); 48 } 49 catch (Exception e) 50 { 51 throw new CacheException("unable to create new MissHandler instance", e); 52 } 53 54 return missHandler; 55 } 56 57 58 public String toString() 59 { 60 return "MissHandlingCacheFactory[" + missHandlerClass.getName() + "]->" + getDelegate(); 61 } 62 } 63 | Popular Tags |