package org.batfish.z3; import java.util.Map; import org.batfish.common.BatfishLogger; import org.batfish.common.BatfishLogger.BatfishLoggerHistory; import org.batfish.datamodel.answers.NodSatAnswerElement; import org.batfish.job.BatfishJobResult; public class NodSatResult<Key> extends BatfishJobResult<Map<Key, Boolean>, NodSatAnswerElement> { private final Map<Key, Boolean> _results; public NodSatResult(long elapsedTime, BatfishLoggerHistory history, Throwable failureCause) { super(elapsedTime, history, failureCause); _results = null; } public NodSatResult(Map<Key, Boolean> results, BatfishLoggerHistory history, long elapsedTime) { super(elapsedTime, history); _results = results; } @Override public void appendHistory(BatfishLogger logger) { logger.append(_history); } @Override public void applyTo(Map<Key, Boolean> output, BatfishLogger logger, NodSatAnswerElement answerElement) { output.putAll(_results); } @Override public String toString() { if (_results == null) { return "<FAILED>"; } else { int numSat = 0; int numUnsat = 0; for (Boolean result : _results.values()) { if (result) { numSat++; } else { numUnsat++; } } return "<UNSAT: " + numUnsat + ", SAT: " + numSat + ">"; } } }