/** * This procedure proceeds as follows: * * <ul> * <li>First, compute the inner answer * <li>Then, run {@link #computeAnswerTable(String, JsonPathToTableQuestion)}, which produces a * set of result minus exclusions * </ul> */ @Override public TableAnswerElement answer() { JsonPathToTableQuestion question = (JsonPathToTableQuestion) _question; Question innerQuestion = question.getInnerQuestion(); Answerer innerAnswerer = _batfish.createAnswerer(innerQuestion); AnswerElement innerAnswer = (innerQuestion.getDifferential()) ? innerAnswerer.answerDiff() : innerAnswerer.answer(); String innerAnswerStr = null; try { innerAnswerStr = BatfishObjectMapper.writeStringWithNulls(innerAnswer); } catch (IOException e) { throw new BatfishException("Could not get JSON string from inner answer", e); } TableAnswerElement answer = computeAnswerTable(innerAnswerStr, question); return answer; }