package org.batfish.common; import java.util.List; import java.util.stream.Collectors; import org.batfish.common.BatfishException.BatfishStackTrace; import org.batfish.datamodel.answers.AnswerElement; import com.fasterxml.jackson.annotation.JsonCreator; public class CompositeBatfishException extends RuntimeException implements AnswerElement { public static class CompositeBatfishExceptionAnswerElement implements AnswerElement { private BatfishStackTrace _cause; private List<BatfishStackTrace> _contributingCauses; @JsonCreator public CompositeBatfishExceptionAnswerElement() { } public CompositeBatfishExceptionAnswerElement(BatfishException cause, List<BatfishException> contributingCauses) { _cause = cause.getBatfishStackTrace(); _contributingCauses = contributingCauses.stream().map( contributingCause -> contributingCause.getBatfishStackTrace()) .collect(Collectors.toList()); } public BatfishStackTrace getCause() { return _cause; } public List<BatfishStackTrace> getContributingCauses() { return _contributingCauses; } public void setCause(BatfishStackTrace cause) { _cause = cause; } public void setContributingCauses( List<BatfishStackTrace> contributingCauses) { _contributingCauses = contributingCauses; } } /** * */ private static final long serialVersionUID = 1L; private CompositeBatfishExceptionAnswerElement _answerElement; public CompositeBatfishException(BatfishException cause, List<BatfishException> contributingCauses) { super(cause); _answerElement = new CompositeBatfishExceptionAnswerElement(cause, contributingCauses); } public CompositeBatfishExceptionAnswerElement getAnswerElement() { return _answerElement; } }