class TracerouteAnswerer extends Answerer {

  public static TableMetadata metadata(boolean differential) {
    List<ColumnMetadata> columnMetadata;
    if (differential) {
      columnMetadata =
          ImmutableList.of(
              new ColumnMetadata(COL_FLOW, Schema.FLOW, "The flow", true, false),
              new ColumnMetadata(
                  TableDiff.baseColumnName(COL_TRACES),
                  Schema.set(Schema.TRACE),
                  "The traces in the BASE snapshot",
                  false,
                  true),
              new ColumnMetadata(
                  TableDiff.baseColumnName(COL_TRACE_COUNT),
                  Schema.INTEGER,
                  "The total number traces in the BASE snapshot",
                  false,
                  true),
              new ColumnMetadata(
                  TableDiff.deltaColumnName(COL_TRACES),
                  Schema.set(Schema.TRACE),
                  "The traces in the DELTA snapshot",
                  false,
                  true),
              new ColumnMetadata(
                  TableDiff.deltaColumnName(COL_TRACE_COUNT),
                  Schema.INTEGER,
                  "The total number traces in the DELTA snapshot",
                  false,
                  true));
    } else {
      columnMetadata =
          ImmutableList.of(
              new ColumnMetadata(COL_FLOW, Schema.FLOW, "The flow", true, false),
              new ColumnMetadata(
                  COL_TRACES, Schema.set(Schema.TRACE), "The traces for this flow", false, true),
              new ColumnMetadata(
                  COL_TRACE_COUNT,
                  Schema.INTEGER,
                  "The total number traces for this flow",
                  false,
                  true));
    }
    return new TableMetadata(columnMetadata, String.format("Paths for flow ${%s}", COL_FLOW));
  }

    TracerouteAnswerer(Question question, IBatfish batfish);

}