/** * ByteBuffer based copy of {@link BloomKFilter#add(byte[])} that adds a value to the ByteBuffer in place. */ public static void add(ByteBuffer buffer, byte[] val) { addBytes(buffer, val); }
/** * ByteBuffer based copy of {@link BloomKFilter#addByte(byte)} that adds a value to the ByteBuffer in place. */ public static void addByte(ByteBuffer buffer, byte val) { addBytes(buffer, new byte[]{val}); }
public void addBytes(byte[] val) { addBytes(val, 0, val.length); }
/** * ByteBuffer based copy of {@link BloomKFilter#addBytes(byte[])} that adds a value to the ByteBuffer in place. */ public static void addBytes(ByteBuffer buffer, byte[] val) { addBytes(buffer, val, 0, val.length); }
public void add(byte[] val) { addBytes(val); }
public void addByte(byte val) { addBytes(new byte[]{val}); }
/** * ByteBuffer based copy of {@link BloomKFilter#addString(String)} that adds a value to the ByteBuffer in place. */ public static void addString(ByteBuffer buffer, String val) { addBytes(buffer, StringUtils.toUtf8(val)); }
public void addInt(int val) { // puts int in little endian order addBytes(intToByteArrayLE(val)); }
/** * ByteBuffer based copy of {@link BloomKFilter#addInt(int)} that adds a value to the ByteBuffer in place. */ public static void addInt(ByteBuffer buffer, int val) { addBytes(buffer, intToByteArrayLE(val)); }
public void addString(String val) { addBytes(StringUtils.toUtf8(val)); }
@Override public void bufferAdd(ByteBuffer buf) { if (NullHandling.replaceWithDefault() || !selector.isNull()) { BloomKFilter.addFloat(buf, selector.getFloat()); } else { BloomKFilter.addBytes(buf, null, 0, 0); } } }
@Override public void bufferAdd(ByteBuffer buf) { if (NullHandling.replaceWithDefault() || !selector.isNull()) { BloomKFilter.addLong(buf, selector.getLong()); } else { BloomKFilter.addBytes(buf, null, 0, 0); } } }
@Override public void aggregate() { if (NullHandling.replaceWithDefault() || !selector.isNull()) { collector.addDouble(selector.getDouble()); } else { collector.addBytes(null, 0, 0); } } }
@Override public void aggregate() { if (NullHandling.replaceWithDefault() || !selector.isNull()) { collector.addFloat(selector.getFloat()); } else { collector.addBytes(null, 0, 0); } } }
@Override public void aggregate() { if (NullHandling.replaceWithDefault() || !selector.isNull()) { collector.addLong(selector.getLong()); } else { collector.addBytes(null, 0, 0); } } }
@Override public void bufferAdd(ByteBuffer buf) { if (NullHandling.replaceWithDefault() || !selector.isNull()) { BloomKFilter.addDouble(buf, selector.getDouble()); } else { BloomKFilter.addBytes(buf, null, 0, 0); } } }
@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); } } } }