package context.arch.intelligibility.reducers;
import context.arch.intelligibility.expression.DNF;
import context.arch.intelligibility.expression.Reason;
public abstract class ConjunctionReducer extends Reducer {
public abstract Reason apply(Reason original);
/**
* Applys the reduction to all Conjunctions within the Disjunction.
* @param original needs to be in DNF form.
* @return
*/
public DNF apply(DNF original) {
DNF reduced = new DNF();
for (Reason reason : original) {
Reason conjReduced = apply(reason);
if (!conjReduced.isEmpty()) {
reduced.add(conjReduced);
}
}
return reduced;
}
}