Generalize definition of SumExpr a little...Lets sum all elements of
[repair.git] / Repair / RepairCompiler / MCC / IR / Conjunction.java
1 package MCC.IR;
2 import java.util.*;
3
4 public class Conjunction {
5
6     Vector predicates;
7     public Conjunction(DNFPredicate pred) {
8         predicates=new Vector();
9         predicates.add(pred);
10     }
11     Conjunction(Vector preds){
12         predicates=preds;
13     }
14     String name() {
15         String name="";
16         for(int i=0;i<predicates.size();i++) {
17             name+=((DNFPredicate)predicates.get(i)).name();
18             if (i!=(predicates.size()-1))
19                 name+="&&";
20         }
21         return name;
22     }
23     int size() {
24         return predicates.size();
25     }
26     
27     DNFPredicate get(int i) {
28         return (DNFPredicate) predicates.get(i);
29     }
30
31     void add(DNFPredicate dp) {
32         predicates.add(dp);
33     }
34
35     public Conjunction append(Conjunction c) {
36         Conjunction copy=copy();
37         for(int i=0;i<c.size();i++) {
38             copy.add(new DNFPredicate(c.get(i)));
39         }
40         return copy;
41     }
42
43     public Conjunction copy() {
44         Vector vector=new Vector();
45         for (int i=0;i<size();i++) {
46             DNFPredicate dp=get(i);
47             vector.add(new DNFPredicate(dp));
48         }
49         return new Conjunction(vector);
50     }
51 }