KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > jfun > yan > SequenceComponent


1 package jfun.yan;
2
3 import java.util.Arrays JavaDoc;
4
5 import jfun.util.Misc;
6 import jfun.util.StringUtils;
7 final class SequenceComponent<T> extends Component<T> {
8   private final Creator<T>[] ccs;
9   
10   SequenceComponent(final Creator<T>[] ccs) {
11     this.ccs = ccs;
12   }
13   
14   public Class JavaDoc<T> getType() {
15     return ccs[ccs.length-1].getType();
16   }
17   public boolean isConcrete(){
18     return ccs[ccs.length-1].isConcrete();
19   }
20   public T create(Dependency dep){
21     T r = null;
22     for(int i=0;i<ccs.length;i++){
23       r = ccs[i].create(dep);
24     }
25     return r;
26   }
27   public Class JavaDoc<T> verify(Dependency dep){
28     Class JavaDoc<T> r = null;
29     for(int i=0;i<ccs.length;i++){
30       r = ccs[i].verify(dep);
31     }
32     return r;
33   }
34   
35   public boolean equals(Object JavaDoc obj) {
36     if(obj instanceof SequenceComponent){
37       final SequenceComponent other = (SequenceComponent)obj;
38       return Arrays.equals(ccs, other.ccs);
39     }
40     else return false;
41   }
42   public int hashCode() {
43     return Misc.getArrayHashcode(ccs);
44   }
45   public String JavaDoc toString() {
46     return "sequence " + StringUtils.listArray("[",",","]", ccs);
47   }
48   public boolean isSingleton(){
49     return ccs.length==0 || ccs[ccs.length-1].isSingleton();
50   }
51 }
52
Popular Tags