1 package Analysis.Prefetch;
6 public class PrefetchPair {
8 ArrayList<Descriptor> desc;
9 ArrayList<Boolean> isTempDesc;
11 public PrefetchPair() {
14 public PrefetchPair(TempDescriptor t) {
20 public PrefetchPair(TempDescriptor t, Descriptor f, Boolean type) {
23 desc = new ArrayList<Descriptor>();
24 if (isTempDesc == null)
25 isTempDesc = new ArrayList<Boolean>();
30 public PrefetchPair(TempDescriptor t, ArrayList<Descriptor> descriptor, ArrayList<Boolean> bool) {
33 desc = new ArrayList<Descriptor>();
35 if(isTempDesc == null)
36 isTempDesc = new ArrayList<Boolean>();
37 desc.addAll(descriptor);
38 isTempDesc.addAll(bool);
41 public TempDescriptor getBase() {
45 public boolean isTempDescDesc(int index) {
46 return isTempDesc.get(index).booleanValue();
49 public Descriptor getDescAt(int index) {
50 return desc.get(index);
53 public ArrayList<Descriptor> getDesc() {
57 public ArrayList<Boolean> getisTempDesc() {
61 public FieldDescriptor getFieldDesc(int index) {
62 return (FieldDescriptor) desc.get(index);
65 public TempDescriptor getTempDesc(int index) {
66 return (TempDescriptor) desc.get(index);
69 public int hashCode() {
70 int hashcode = base.hashCode();
71 if(getDesc() != null) {
72 ListIterator li = desc.listIterator();
74 hashcode = hashcode ^ li.next().hashCode();
80 public String toString() {
81 String label= getBase().toString();
82 if(getDesc() == null || getisTempDesc() == null)
84 ListIterator it=getDesc().listIterator();
85 ListIterator istemp=getisTempDesc().listIterator();
86 for(;it.hasNext() && istemp.hasNext();) {
87 Boolean isFd = (Boolean) istemp.next();
88 if(isFd.booleanValue() == false) {
89 FieldDescriptor fd = (FieldDescriptor) it.next();
90 label+="."+ fd.toString();
92 TempDescriptor td = (TempDescriptor) it.next();
93 label+="."+ td.toString();
99 public boolean equals(Object o) {
100 if(o instanceof PrefetchPair) {
101 PrefetchPair pp = (PrefetchPair) o;
104 if (desc.equals((List<Descriptor>)pp.desc) && isTempDesc.equals((List<Boolean>)pp.isTempDesc))