class Select extends Operation {

  @Override
  public boolean equals(Object other) {
    if (this == other) {
      return true;
    }
    if (!(other instanceof Select)) {
      return false;
    }
    Select that = (Select) other;
    return Objects.equals(table, that.getTable())
        && Objects.equals(conditions, that.getWhere())
        && Objects.equals(columns, that.getColumns());
  }

  public  Select(String table);
  public  Select(String table, List<Condition> conditions);
  @JsonCreator public  Select(
      @JsonProperty(value = "table", required = true) String table,
      @JsonProperty(value = "conditions", required = true) List<Condition> conditions,
      @JsonProperty(value = "columns") List<String> columns
  );

}