class SpecifiersAnswerer extends Answerer {

  @VisibleForTesting
  static TableAnswerElement resolveFilter(SpecifiersQuestion question, SpecifierContext context) {

    List<ColumnMetadata> columns =
        ImmutableList.of(
            new ColumnMetadata(COL_NODE, Schema.NODE, "Node", false, false),
            new ColumnMetadata(COL_FILTER_NAME, Schema.STRING, "Filter name", false, false));

    TableAnswerElement table = new TableAnswerElement(new TableMetadata(columns));
    Map<String, ColumnMetadata> columnMap = table.getMetadata().toColumnMap();

    FilterSpecifier filterSpecifier = question.getFilterSpecifier();
    Set<String> nodes = question.getNodeSpecifier().resolve(context);

    for (String node : nodes) {
      Set<IpAccessList> nodeFilters = filterSpecifier.resolve(node, context);
      for (IpAccessList filter : nodeFilters) {
        table.addRow(
            Row.of(
                columnMap,
                COL_NODE,
                new Node(node),
                COL_FILTER_NAME,
                Objects.toString(filter.getName())));
      }
    }

    return table;
  }

  public  SpecifiersAnswerer(Question question, IBatfish batfish);

}