1 package jfun.yan; 2 3 final class UseDefaultComponent extends Component { 4 public Object create(Dependency dep){ 5 throw getDefaulting(); 6 } 7 public Class verify(Dependency dep){ 8 throw getDefaulting(); 9 } 10 public Class getType(){ 11 return void.class; 12 } 13 public boolean isConcrete(){ 14 return true; 15 } 16 public boolean isSingleton(){ 17 return false; 18 } 19 public String toString(){ 20 return "default"; 21 } 22 private UseDefaultComponent(){} 23 private static YanException getDefaulting(){ 24 return Utils.getThreadLocalException(defaulting); 25 } 26 private static final ThreadLocal defaulting = new ThreadLocal (){ 27 protected Object initialValue() { 28 return new DefaultingException(); 29 } 30 }; 31 private static final Component singleton = new UseDefaultComponent(); 32 static Component instance(){ 33 return singleton; 34 } 35 } 36 | Popular Tags |