package org.batfish.job;
import org.batfish.common.BatfishLogger;
import org.batfish.common.BatfishLogger.BatfishLoggerHistory;
import org.batfish.datamodel.answers.AnswerElement;
public abstract class BatfishJobResult<Output, AE extends AnswerElement> {
private final long _elapsedTime;
protected final Throwable _failureCause;
protected final BatfishLoggerHistory _history;
public BatfishJobResult(long elapsedTime, BatfishLoggerHistory history) {
_elapsedTime = elapsedTime;
_history = history;
_failureCause = null;
}
public BatfishJobResult(long elapsedTime, BatfishLoggerHistory history,
Throwable failureCause) {
_elapsedTime = elapsedTime;
_history = history;
_failureCause = failureCause;
}
public abstract void appendHistory(BatfishLogger logger);
public abstract void applyTo(Output output, BatfishLogger logger,
AE answerElement);
public final long getElapsedTime() {
return _elapsedTime;
}
public final Throwable getFailureCause() {
return _failureCause;
}
public BatfishLoggerHistory getHistory() {
return _history;
}
}