code: public Query<S> query(Filter<S> filter, FilterValues<S> values, OrderingList<S> ordering,
                            QueryHints hints)
          throws FetchException
      {
          Query<S> query = query(filter != null ? filter : Filter.getOpenFilter(mType),
                                 ordering, hints);
  
          if (values != null) {
              query = query.withValues(values.getSuppliedValues());
          }
  
          return query;
      }
docs: Returns a new or cached query for the given query specification.
  
  @param filter optional filter object, defaults to open filter if null
  @param values optional values object, defaults to filter initial values
  @param ordering optional order-by properties
  @param hints optional hints