示例#1
0
 @Override
 public void explain(Deduction d, Explanation e) {
   if (d.getVar() == vars[0]) {
     e.add(aCause);
     if (d.getmType() == Deduction.Type.ValRem) {
       vars[1].explain(VariableState.REM, ((ValueRemoval) d).getVal(), e);
       vars[1].explain(VariableState.REM, -((ValueRemoval) d).getVal(), e);
     } else {
       throw new UnsupportedOperationException(
           "PropAbsolute only knows how to explain ValueRemovals");
     }
   } else if (d.getVar() == vars[1]) {
     e.add(aCause);
     if (d.getmType() == Deduction.Type.ValRem) {
       vars[0].explain(VariableState.REM, Math.abs(((ValueRemoval) d).getVal()), e);
     } else {
       throw new UnsupportedOperationException(
           "PropAbsolute only knows how to explain ValueRemovals");
     }
   } else {
     super.explain(d, e);
   }
 }