@Override public void bufferAdd(ByteBuffer buf) { if (selector.getRow().size() > 1) { selector.getRow().forEach(v -> { String value = selector.lookupName(v); if (value == null) { BloomKFilter.addBytes(buf, null, 0, 0); } else { BloomKFilter.addString(buf, value); } }); } else { String value = (String) selector.getObject(); if (value == null) { BloomKFilter.addBytes(buf, null, 0, 0); } else { BloomKFilter.addString(buf, value); } } } }
@Override public void aggregate() { // note: there might be room for optimization here but behavior must match BloomDimFilter implementation if (selector.getRow().size() > 1) { selector.getRow().forEach(v -> { String value = selector.lookupName(v); if (value == null) { collector.addBytes(null, 0, 0); } else { collector.addString(value); } }); } else { String value = (String) selector.getObject(); if (value == null) { collector.addBytes(null, 0, 0); } else { collector.addString(value); } } } }