1 8 14 package jfun.yan; 15 16 22 final class ValueComponent<T> extends Component<T> { 23 private final T val; 24 25 ValueComponent(final T val) { 26 this.val = val; 27 } 28 public T create(Dependency ac){ 29 return val; 30 } 31 public Class getType(){ 32 return val.getClass(); 33 } 34 public Class verify(Dependency ac){ 35 return getType(); 36 } 37 38 public boolean equals(Object other) { 39 if(other instanceof ValueComponent){ 40 final ValueComponent v2 = (ValueComponent)other; 41 return val.equals(v2.val); 42 } 43 return false; 44 } 45 public int hashCode() { 46 return val.hashCode(); 47 } 48 public String toString() { 49 return val.toString(); 50 } 51 52 public final Component<T> singleton(){return this;} 53 public final Component<T> guard(){return this;} 54 public final Component proxy(){ 55 return this; 56 } 57 public final <I> Component<I> proxy(Class <I> type){ 58 return subsume(type); 59 } 60 public boolean isSingleton(){ 61 return true; 62 } 63 public boolean isConcrete(){ 64 return true; 65 } 66 } 67 | Popular Tags |