Interface QueryFilterVisitor<R,P,F>

Type Parameters:
R - The return type of this visitor's methods. Use Void for visitors that do not need to return results.
P - The type of the additional parameter to this visitor's methods. Use Void for visitors that do not need an additional parameter.
F - The type of the field definitions in this visitor's methods.
All Known Implementing Classes:
BaseQueryFilterVisitor, JsonValueFilterVisitor, MapFilterVisitor

public interface QueryFilterVisitor<R,P,F>
A visitor of QueryFilters, in the style of the visitor design pattern.

Classes implementing this interface can query filters in a type-safe manner. When a visitor is passed to a filter's accept method, the corresponding visit method most applicable to that filter is invoked.

  • Method Details

    • visitAndFilter

      R visitAndFilter(P p, List<QueryFilter<F>> subFilters)
      Visits an and filter.

      Implementation note: for the purposes of matching, an empty sub-filter list should always evaluate to true.

      Parameters:
      p - A visitor specified parameter.
      subFilters - The unmodifiable list of sub-filters.
      Returns:
      Returns a visitor specified result.
    • visitBooleanLiteralFilter

      R visitBooleanLiteralFilter(P p, boolean value)
      Visits a boolean literal filter.
      Parameters:
      p - A visitor specified parameter.
      value - The boolean literal value.
      Returns:
      Returns a visitor specified result.
    • visitContainsFilter

      R visitContainsFilter(P p, F field, Object valueAssertion)
      Visits a contains filter.
      Parameters:
      p - A visitor specified parameter.
      field - A definition of the field to be compared.
      valueAssertion - The value assertion.
      Returns:
      Returns a visitor specified result.
    • visitEqualsFilter

      R visitEqualsFilter(P p, F field, Object valueAssertion)
      Visits a equality filter.
      Parameters:
      p - A visitor specified parameter.
      field - A definition of the field to be compared.
      valueAssertion - The value assertion.
      Returns:
      Returns a visitor specified result.
    • visitExtendedMatchFilter

      R visitExtendedMatchFilter(P p, F field, String operator, Object valueAssertion)
      Visits a comparison filter.
      Parameters:
      p - A visitor specified parameter.
      field - A definition of the field to be compared.
      operator - The operator to use for the comparison, which will not be one of the core operator names.
      valueAssertion - The value assertion.
      Returns:
      Returns a visitor specified result.
    • visitGreaterThanFilter

      R visitGreaterThanFilter(P p, F field, Object valueAssertion)
      Visits a greater than filter.
      Parameters:
      p - A visitor specified parameter.
      field - A definition of the field to be compared.
      valueAssertion - The value assertion.
      Returns:
      Returns a visitor specified result.
    • visitGreaterThanOrEqualToFilter

      R visitGreaterThanOrEqualToFilter(P p, F field, Object valueAssertion)
      Visits a greater than or equal to filter.
      Parameters:
      p - A visitor specified parameter.
      field - A definition of the field to be compared.
      valueAssertion - The value assertion.
      Returns:
      Returns a visitor specified result.
    • visitLessThanFilter

      R visitLessThanFilter(P p, F field, Object valueAssertion)
      Visits a less than filter.
      Parameters:
      p - A visitor specified parameter.
      field - A definition of the field to be compared.
      valueAssertion - The value assertion.
      Returns:
      Returns a visitor specified result.
    • visitLessThanOrEqualToFilter

      R visitLessThanOrEqualToFilter(P p, F field, Object valueAssertion)
      Visits a less than or equal to filter.
      Parameters:
      p - A visitor specified parameter.
      field - A definition of the field to be compared.
      valueAssertion - The value assertion.
      Returns:
      Returns a visitor specified result.
    • visitNotFilter

      R visitNotFilter(P p, QueryFilter<F> subFilter)
      Visits a not filter.
      Parameters:
      p - A visitor specified parameter.
      subFilter - The sub-filter.
      Returns:
      Returns a visitor specified result.
    • visitOrFilter

      R visitOrFilter(P p, List<QueryFilter<F>> subFilters)
      Visits an or filter.

      Implementation note: for the purposes of matching, an empty sub-filter list should always evaluate to false.

      Parameters:
      p - A visitor specified parameter.
      subFilters - The unmodifiable list of sub-filters.
      Returns:
      Returns a visitor specified result.
    • visitPresentFilter

      R visitPresentFilter(P p, F field)
      Visits a present filter.
      Parameters:
      p - A visitor specified parameter.
      field - A definition of the field to be compared.
      Returns:
      Returns a visitor specified result.
    • visitStartsWithFilter

      R visitStartsWithFilter(P p, F field, Object valueAssertion)
      Visits a starts with filter.
      Parameters:
      p - A visitor specified parameter.
      field - A definition of the field to be compared.
      valueAssertion - The value assertion.
      Returns:
      Returns a visitor specified result.
    • visitComplexFilter

      default R visitComplexFilter(P p, F field, QueryFilter<F> subFilter)
      Visits a complex filter.
      Parameters:
      p - A visitor specified parameter.
      field - A definition of the field to be compared.
      subFilter - The subfilter expression to be evaluated on the object @ field.
      Returns:
      Returns a visitor specified result.