cbe703772393f9a38382b1e0024e61884e5ed62e
[repair.git] / Repair / RepairCompiler / MCC / IR / InclusionPredicate.java
1 package MCC.IR;
2
3 import java.util.*;
4
5 public class InclusionPredicate extends Predicate {
6
7     Expr expr;
8     SetExpr setexpr;
9
10     public InclusionPredicate(Expr expr, SetExpr setexpr) {
11         if (expr == null) {
12             throw new NullPointerException();
13         }
14
15         if (setexpr == null) {
16             throw new NullPointerException();
17         }
18
19         this.expr = expr;
20         this.setexpr = setexpr;
21     }
22
23     public Set getRequiredDescriptors() {
24         Set v = expr.getRequiredDescriptors();
25         v.addAll(setexpr.getRequiredDescriptors());
26         return v;
27     }
28
29     public void generate(CodeWriter writer, VarDescriptor dest) {
30         VarDescriptor var = VarDescriptor.makeNew("exprval");
31         expr.generate(writer, var);
32         setexpr.generate_inclusion(writer, dest, var);
33     }
34             
35 }
36