1 8 14 package jfun.yan; 15 16 26 public abstract class DelegatingComponent extends Component { 27 private final Component cc; 28 29 public boolean isConcrete(){ 30 return cc.isConcrete(); 31 } 32 public boolean isSingleton() { 33 return false; 34 } 35 39 public DelegatingComponent(final Component cc) { 40 this.cc = cc; 41 } 42 public Object getState(){ 43 return cc.getState(); 44 } 45 public Object create(Dependency dep){ 46 return cc.create(dep); 47 } 48 public boolean equals(Object other) { 49 if(other instanceof DelegatingComponent){ 50 final DelegatingComponent cc2 = (DelegatingComponent)other; 51 final Object s1 = getState(); 52 final Object s2 = cc2.getState(); 53 return cc.equals(cc2.cc) 54 && 55 s1==null?s2==null:(s2!=null && s1.equals(s2)); 56 57 } 58 else return cc.equals(other); 59 } 60 public Class getType() { 61 return cc.getType(); 62 } 63 public int hashCode() { 64 return cc.hashCode(); 65 } 66 public String toString() { 67 return cc.toString(); 68 } 69 public Class verify(Dependency dep){ 70 return cc.verify(dep); 71 } 72 76 protected final Component getDelegateTarget(){ 77 return cc; 78 } 79 } 80 | Popular Tags |