Expr expr;
SetExpr setexpr;
+ public boolean inverted() {
+ return setexpr.inverted();
+ }
+
+ public String name() {
+ return expr.name() + " in "+setexpr.name();
+ }
+
public InclusionPredicate(Expr expr, SetExpr setexpr) {
if (expr == null) {
throw new NullPointerException();
expr.generate(writer, var);
setexpr.generate_inclusion(writer, dest, var);
}
-
+
+ public Set getInversedRelations() {
+
+ throw new IRException("unsupported");
+
+ //Set set = setexpr.getInversedRelations();
+ //set.addAll(expr.getInversedRelations());
+ //return set;
+ }
+
+ public Descriptor getDescriptor() {
+ if (setexpr instanceof ImageSetExpr) {
+ return ((ImageSetExpr)setexpr).getRelation();
+ } else
+ return setexpr.sd;
+ }
+
+ public int[] getRepairs(boolean negated) {
+ if (setexpr instanceof ImageSetExpr) {
+ if (negated)
+ return new int[] {AbstractRepair.REMOVEFROMRELATION};
+ else
+ return new int[] {AbstractRepair.ADDTORELATION};
+ } else {
+ if (negated)
+ return new int[] {AbstractRepair.REMOVEFROMSET};
+ else
+ return new int[] {AbstractRepair.ADDTOSET};
+ }
+ }
}
+