Filter skipFilter = new SkipFilter(wrappedFilter); operatorStack.pop(); return skipFilter;
/** * @param o the other filter to compare with * @return true if and only if the fields of the filter that are serialized * are equal to the corresponding fields in other. Used for testing. */ @Override boolean areSerializedFieldsEqual(Filter o) { if (o == this) return true; if (!(o instanceof SkipFilter)) return false; SkipFilter other = (SkipFilter)o; return getFilter().areSerializedFieldsEqual(other.getFilter()); }
@Override public ReturnCode filterCell(final Cell c) throws IOException { ReturnCode rc = filter.filterCell(c); changeFR(rc != ReturnCode.INCLUDE); return rc; }
@Test public void testSkipFilter() throws Exception { SkipFilter skipFilter = new SkipFilter(new PageFilter(6)); assertTrue(skipFilter.areSerializedFieldsEqual( ProtobufUtil.toFilter(ProtobufUtil.toFilter(skipFilter)))); }
@Deprecated @Override public ReturnCode filterKeyValue(final Cell c) throws IOException { return filterCell(c); }
@Override public boolean equals(Object obj) { return obj instanceof Filter && areSerializedFieldsEqual((Filter) obj); }
@Test public void testSkipFilter() throws Exception { SkipFilter skipFilter = new SkipFilter(new PageFilter(6)); assertTrue(skipFilter.areSerializedFieldsEqual( ProtobufUtil.toFilter(ProtobufUtil.toFilter(skipFilter)))); }
@Deprecated @Override public ReturnCode filterKeyValue(final Cell c) throws IOException { return filterCell(c); }
/** * @param pbBytes A pb serialized {@link SkipFilter} instance * @return An instance of {@link SkipFilter} made from <code>bytes</code> * @throws DeserializationException * @see #toByteArray */ public static SkipFilter parseFrom(final byte [] pbBytes) throws DeserializationException { FilterProtos.SkipFilter proto; try { proto = FilterProtos.SkipFilter.parseFrom(pbBytes); } catch (InvalidProtocolBufferException e) { throw new DeserializationException(e); } try { return new SkipFilter(ProtobufUtil.toFilter(proto.getFilter())); } catch (IOException ioe) { throw new DeserializationException(ioe); } }
case SkipFilter: this.filters = new ArrayList<>(); this.filters.add(new FilterModel(((SkipFilter)filter).getFilter())); break; case TimestampsFilter:
@Override public ReturnCode filterCell(final Cell c) throws IOException { ReturnCode rc = filter.filterCell(c); changeFR(rc != ReturnCode.INCLUDE); return rc; }
@Deprecated @Override public ReturnCode filterKeyValue(final Cell c) throws IOException { return filterCell(c); }
filter = new SkipFilter(filters.get(0).build()); break; case TimestampsFilter:
@Test public void testPrecedence2() throws IOException { String filterString = " PrefixFilter ('realtime')AND SKIP FirstKeyOnlyFilter()" + "OR KeyOnlyFilter()"; FilterList filterList = doTestFilter(filterString, FilterList.class); ArrayList<Filter> filters = (ArrayList<Filter>) filterList.getFilters(); assertTrue(filters.get(0) instanceof FilterList); assertTrue(filters.get(1) instanceof KeyOnlyFilter); filterList = (FilterList) filters.get(0); filters = (ArrayList<Filter>) filterList.getFilters(); assertTrue(filters.get(0) instanceof PrefixFilter); assertTrue(filters.get(1) instanceof SkipFilter); PrefixFilter prefixFilter = (PrefixFilter)filters.get(0); byte [] prefix = prefixFilter.getPrefix(); assertEquals("realtime", new String(prefix, StandardCharsets.UTF_8)); SkipFilter skipFilter = (SkipFilter)filters.get(1); assertTrue(skipFilter.getFilter() instanceof FirstKeyOnlyFilter); }
@Override public ReturnCode filterCell(final Cell c) throws IOException { ReturnCode rc = filter.filterCell(c); changeFR(rc != ReturnCode.INCLUDE); return rc; }
filters.add(new SkipFilter(new SingleColumnValueFilter(FAMILIES[0], QUALIFIERS_ONE[0], CompareOperator.EQUAL, VALUES[0]))); filters.add(new SkipFilter(new SingleColumnValueFilter(FAMILIES[0], QUALIFIERS_ONE[2], CompareOperator.EQUAL, VALUES[1]))); f = new FilterList(Operator.MUST_PASS_ALL, filters);
@Test public void testSkipFilter() throws IOException { String filterString = "SKIP ValueFilter( =, 'binary:0')"; SkipFilter skipFilter = doTestFilter(filterString, SkipFilter.class); assertTrue(skipFilter.getFilter() instanceof ValueFilter); ValueFilter valueFilter = (ValueFilter) skipFilter.getFilter(); assertEquals(CompareOperator.EQUAL, valueFilter.getCompareOperator()); assertTrue(valueFilter.getComparator() instanceof BinaryComparator); BinaryComparator binaryComparator = (BinaryComparator) valueFilter.getComparator(); assertEquals("0", new String(binaryComparator.getValue(), StandardCharsets.UTF_8)); }
@Override public ReturnCode filterKeyValue(Cell v) throws IOException { ReturnCode c = filter.filterKeyValue(v); changeFR(c != ReturnCode.INCLUDE); return c; }
Filter f = new SkipFilter(new QualifierFilter(CompareOperator.NOT_EQUAL, new BinaryComparator(Bytes.toBytes("testQualifierOne-2")))); Scan s = new Scan();
@Test public void testCompoundFilter4() throws IOException { String filterString = " ColumnPrefixFilter ('realtime') OR " + "FirstKeyOnlyFilter() OR SKIP FamilyFilter(=, 'substring:hihi')"; FilterList filterList = doTestFilter(filterString, FilterList.class); ArrayList<Filter> filters = (ArrayList<Filter>) filterList.getFilters(); assertTrue(filters.get(0) instanceof ColumnPrefixFilter); assertTrue(filters.get(1) instanceof FirstKeyOnlyFilter); assertTrue(filters.get(2) instanceof SkipFilter); ColumnPrefixFilter columnPrefixFilter = (ColumnPrefixFilter) filters.get(0); FirstKeyOnlyFilter firstKeyOnlyFilter = (FirstKeyOnlyFilter) filters.get(1); SkipFilter skipFilter = (SkipFilter) filters.get(2); byte [] columnPrefix = columnPrefixFilter.getPrefix(); assertEquals("realtime", new String(columnPrefix, StandardCharsets.UTF_8)); assertTrue(skipFilter.getFilter() instanceof FamilyFilter); FamilyFilter familyFilter = (FamilyFilter) skipFilter.getFilter(); assertEquals(CompareOperator.EQUAL, familyFilter.getCompareOperator()); assertTrue(familyFilter.getComparator() instanceof SubstringComparator); SubstringComparator substringComparator = (SubstringComparator) familyFilter.getComparator(); assertEquals("hihi", new String(substringComparator.getValue(), StandardCharsets.UTF_8)); }