@Test public void pageFilterMustBeInLastPosition() { FilterAdapterContext context = new FilterAdapterContext(new Scan(), new DefaultReadHooks()); ValueFilter valueFilter = new ValueFilter(CompareOp.EQUAL, new BinaryComparator(Bytes.toBytes("value"))); PageFilter pageFilter = new PageFilter(20); FilterList filterList = new FilterList(Operator.MUST_PASS_ALL, pageFilter, valueFilter); try (ContextCloseable ignored = context.beginFilterList(filterList)) { FilterSupportStatus status = pageFilterAdapter.isFilterSupported(context, pageFilter); Assert.assertFalse( "PageFilter must be in the last position of a MUST_PASS_ALL filter list", status.isSupported()); } }
@Override public FilterSupportStatus isFilterSupported(FilterAdapterContext context, PageFilter filter) { Optional<FilterList> currentList = context.getCurrentFilterList(); if ((currentList.isPresent() && !isFilterListSupported(currentList.get(), filter)) || context.getFilterListDepth() > 1) { return TOP_LEVEL_ONLY; } return FilterSupportStatus.SUPPORTED; }
PageFilterAdapter extends TypedFilterAdapterBase<PageFilter> { @Override public FilterSupportStatus isFilterSupported(FilterAdapterContext context, PageFilter filter) { Optional<FilterList> currentList = context.getCurrentFilterList(); if ((currentList.isPresent() && !isFilterListSupported(currentList.get(), filter)) || context.getFilterListDepth() > 1) { return TOP_LEVEL_ONLY; } return FilterSupportStatus.SUPPORTED; } }
PageFilterAdapter extends TypedFilterAdapterBase<PageFilter> { @Override public FilterSupportStatus isFilterSupported(FilterAdapterContext context, PageFilter filter) { Optional<FilterList> currentList = context.getCurrentFilterList(); if ((currentList.isPresent() && !isFilterListSupported(currentList.get(), filter)) || context.getFilterListDepth() > 1) { return TOP_LEVEL_ONLY; } return FilterSupportStatus.SUPPORTED; }  }
PageFilterAdapter extends TypedFilterAdapterBase<PageFilter> { @Override public FilterSupportStatus isFilterSupported(FilterAdapterContext context, PageFilter filter) { Optional<FilterList> currentList = context.getCurrentFilterList(); if ((currentList.isPresent() && !isFilterListSupported(currentList.get(), filter)) || context.getFilterListDepth() > 1) { return TOP_LEVEL_ONLY; } return FilterSupportStatus.SUPPORTED; }  @Override Filter adapt(FilterAdapterContext context, PageFilter filter); @Override FilterSupportStatus isFilterSupported(FilterAdapterContext context, PageFilter filter); }
PageFilterAdapter extends TypedFilterAdapterBase<PageFilter> { @Override public FilterSupportStatus isFilterSupported(FilterAdapterContext context, PageFilter filter) { Optional<FilterList> currentList = context.getCurrentFilterList(); if ((currentList.isPresent() && !isFilterListSupported(currentList.get(), filter)) || context.getFilterListDepth() > 1) { return TOP_LEVEL_ONLY; } return FilterSupportStatus.SUPPORTED; }  @Override Filter adapt(FilterAdapterContext context, PageFilter filter); @Override FilterSupportStatus isFilterSupported(FilterAdapterContext context, PageFilter filter);  }