ParsedQuery { public boolean hasFilter(String fieldName) { for (BoundFilterEntry<T> bfe : getBoundFilterEntries()) { if (bfe.getQueryName().equals(fieldName)) { return true; } } return false; } ParsedQuery(
                     T boundQuerySpec,
                     Class<T> queryType,
                     List<BoundFilterEntry<T>> boundFilterEntries,
                     MetaQuerySpec<T> meta,
                     Optional<Integer> limit,
                     Optional<Integer> offset,
                     Collection<Ordering> orderings,
                     boolean includeDeleted);  ParsedQuery(
                     T boundQuerySpec,
                     Class<T> queryType,
                     CombinedConditionCreator<T> combinedConditionCreator,
                     MetaQuerySpec<T> meta,
                     Optional<Integer> limit,
                     Optional<Integer> offset,
                     Collection<Ordering> orderings,
                     boolean includeDeleted); boolean hasFilter(String fieldName); boolean hasFilter(String fieldName, Class<? extends Filter> filterType); void addFilter(String fieldName, Class<? extends Filter> filterType, Object value); void addOrdering(String fieldName, SortOrder order); void addFilterExclusively(String fieldName, Class<? extends Filter> filterType, Object value); void addFilterEntryConditionCreatorExclusively(String fieldName,
                                                        FilterEntryConditionCreator<T> filterEntryConditionCreator); boolean removeFiltersFor(String fieldName); @Deprecated BoundFilterEntry<T> getFirstFilterForFieldName(String fieldName); List<BoundFilterEntry<T>> getAllFiltersForFieldName(String fieldName); void removeAllFilters(); String getCacheKey(); void setLimit(Optional<Integer> limit); void setOffset(Optional<Integer> offset); void setOrderings(Collection<Ordering> orderings); Optional<Integer> getLimit(); Optional<Integer> getOffset(); Collection<Ordering> getOrderings(); boolean getIncludeDeleted(); @Deprecated T getBoundQuery(); List<BoundFilterEntry<T>> getBoundFilterEntries(); CombinedConditionCreator<T> getCombinedConditionCreator(); Class<T> getQueryType(); MetaQuerySpec<T> getMetaData(); @Override ParsedQuery<T> clone();  }
@Test public void hasFilter() { query.putAll("id__in", ImmutableList.of("1", "2", "3")); ParsedQuery<Spec> parsed = parser.parse(query); assertThat(parsed.hasFilter("id")).isTrue(); assertThat(parsed.hasFilter("ids")).isFalse(); assertThat(parsed.hasFilter("count")).isFalse(); }
@Test public void hasEnumFilter() { query.putAll("specEnum__in", ImmutableList.of("1", "2", "3")); ParsedQuery<Spec> parsed = parser.parse(query); assertThat(parsed.hasFilter("spec_enum")).isTrue(); assertThat(parsed.hasFilter("specEnum")).isFalse(); assertThat(parsed.hasFilter("spec_enums")).isFalse(); assertThat(parsed.hasFilter("count")).isFalse(); }