class ResultFilter extends Constraint {

  @Override
  public boolean equals(Object compareto) {
    if (!(compareto instanceof ResultFilter)) {
      return false;
    } // has to be a logic
    ResultFilter compare = (ResultFilter) compareto;
    if (this.subConstraint == null && compare.subConstraint != null) {
      return false;
    }
    if (this.subConstraint != null && compare.subConstraint == null) {
      return false;
    }
    if (this.subConstraint != null) {
      if (this.subConstraint.equals(compare.subConstraint)
          && Arrays.equals(this.columns, compare.columns)
          && this.range.compareTo(compare.range) == 0) {
        return true;
      } else {
        return false;
      }
    }
    return true;
  }

  public  ResultFilter();
  public  ResultFilter(Constraint subConstraint, CRange range,
      CColumn... columns);
  public  ResultFilter(TableAdapter primaryTable, CRange range,
      CColumn... columns);
  public  ResultFilter(CRange range, Constraint subConstraint);
  public  ResultFilter(TableAdapter primaryTable, CRange range);
  public  ResultFilter(Constraint subConstraint, CColumn... columns);
  public  ResultFilter(TableAdapter primaryTable, CColumn... columns);
  public  ResultFilter(TableAdapter primaryTable);

}