class SearchFiltersQuestion extends Question {

  private SearchFiltersQuery generateQuery(String type) {
    if (type.equalsIgnoreCase("permit")) {
      return PermitQuery.INSTANCE;
    } else if (type.equalsIgnoreCase("deny")) {
      return DenyQuery.INSTANCE;
    } else if (type.toLowerCase().startsWith("matchline")) {
      int lineNum = Integer.parseInt(type.toLowerCase().substring("matchLine".length()).trim());
      if (lineNum < 0) {
        throw new BatfishException("Line index for matchLine must be zero or higher");
      }
      return new MatchLineQuery(lineNum);
    } else {
      throw new BatfishException(
          String.format(
              "Unrecognized action '%s'. Must be one of 'permit', 'deny', or 'matchLine <line index>'.",
              type));
    }
  }

  private  SearchFiltersQuestion(
      boolean complementHeaderSpace,
      @Nullable String filters,
      @Nonnull PacketHeaderConstraints headerConstraints,
      @Nullable String nodes,
      @Nullable String start,
      @Nonnull String action);
    SearchFiltersQuestion();

}