public BlockLayoutColumnarDoublesSupplier( int totalSize, int sizePer, ByteBuffer fromBuffer, ByteOrder byteOrder, CompressionStrategy strategy ) { baseDoubleBuffers = GenericIndexed.read(fromBuffer, new DecompressingByteBufferObjectStrategy(byteOrder, strategy)); this.totalSize = totalSize; this.sizePer = sizePer; }
public static <T> GenericIndexed<T> fromArray(T[] objects, ObjectStrategy<T> strategy) { return fromIterable(Arrays.asList(objects), strategy); }
@Override public String getValue(int index) { return dictionary.get(index); }
private GenericIndexed<String> serializeAndDeserialize(GenericIndexed<String> indexed) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); final WritableByteChannel channel = Channels.newChannel(baos); indexed.writeTo(channel, null); channel.close(); final ByteBuffer byteBuffer = ByteBuffer.wrap(baos.toByteArray()); Assert.assertEquals(indexed.getSerializedSize(), byteBuffer.remaining()); GenericIndexed<String> deserialized = GenericIndexed.read(byteBuffer, GenericIndexed.STRING_STRATEGY); Assert.assertEquals(0, byteBuffer.remaining()); return deserialized; } }
final GenericIndexed<String> availableDimensions = GenericIndexed.read( indexBuffer, GenericIndexed.STRING_STRATEGY, smooshedFiles ); final GenericIndexed<String> availableMetrics = GenericIndexed.read( indexBuffer, GenericIndexed.STRING_STRATEGY, ); dimValueLookups.put(dimension, GenericIndexed.read(dimBuffer, GenericIndexed.STRING_STRATEGY)); dimColumns.put(dimension, VSizeColumnarMultiInts.readFromByteBuffer(dimBuffer)); for (int i = 0; i < availableDimensions.size(); ++i) { bitmaps.put( serializerUtils.readString(invertedBuffer), GenericIndexed.read(invertedBuffer, bitmapSerdeFactory.getObjectStrategy()) );
GenericIndexed<String> cols = GenericIndexed.fromIterable(finalColumns, GenericIndexed.STRING_STRATEGY); GenericIndexed<String> dims = GenericIndexed.fromIterable(finalDimensions, GenericIndexed.STRING_STRATEGY); final long numBytes = cols.getSerializedSize() + dims.getSerializedSize() + 16 + serializerUtils.getSerializedStringByteSize(bitmapSerdeFactoryType); cols.writeTo(writer, v9Smoosher); dims.writeTo(writer, v9Smoosher);
@Override public boolean hasNulls() { return dictionary.indexOf(null) >= 0; }
@Test public void testToBytes() { BitmapFactory bf = new RoaringBitmapFactory(); ImmutableRTreeObjectStrategy rTreeObjectStrategy = new ImmutableRTreeObjectStrategy(bf); RTree rTree = new RTree(2, new LinearGutmanSplitStrategy(0, 50, bf), bf); rTree.insert(new float[]{0, 0}, 1); ImmutableRTree immutableRTree = ImmutableRTree.newImmutableFromMutable(rTree); byte[] bytes1 = immutableRTree.toBytes(); GenericIndexed<ImmutableRTree> genericIndexed = GenericIndexed.fromIterable( Arrays.asList(immutableRTree, immutableRTree), rTreeObjectStrategy ); ImmutableRTree deserializedTree = genericIndexed.get(0); byte[] bytes2 = deserializedTree.toBytes(); org.junit.Assert.assertEquals(Bytes.asList(bytes1), Bytes.asList(bytes2)); } }
@Override public int getCardinality() { return dictionary.size(); }
@Override public void writeTo(WritableByteChannel channel, FileSmoosher smoosher) throws IOException { metaSerdeHelper.writeTo(channel, this); baseBuffers.writeTo(channel, smoosher); }
@Override public long getSerializedSize() { return metaSerdeHelper.size(this) + baseBuffers.getSerializedSize(); }
final GenericIndexed<String> availableDimensions = GenericIndexed.read( indexBuffer, GenericIndexed.STRING_STRATEGY, smooshedFiles ); final GenericIndexed<String> availableMetrics = GenericIndexed.read( indexBuffer, GenericIndexed.STRING_STRATEGY, ); dimValueLookups.put(dimension, GenericIndexed.read(dimBuffer, GenericIndexed.STRING_STRATEGY)); dimColumns.put(dimension, VSizeColumnarMultiInts.readFromByteBuffer(dimBuffer)); for (int i = 0; i < availableDimensions.size(); ++i) { bitmaps.put( serializerUtils.readString(invertedBuffer), GenericIndexed.read(invertedBuffer, bitmapSerdeFactory.getObjectStrategy()) );
GenericIndexed<String> cols = GenericIndexed.fromIterable(finalColumns, GenericIndexed.STRING_STRATEGY); GenericIndexed<String> dims = GenericIndexed.fromIterable(finalDimensions, GenericIndexed.STRING_STRATEGY); final long numBytes = cols.getSerializedSize() + dims.getSerializedSize() + 16 + serializerUtils.getSerializedStringByteSize(bitmapSerdeFactoryType); cols.writeTo(writer, v9Smoosher); dims.writeTo(writer, v9Smoosher);
@Override public int getIndex(@Nullable String value) { // GenericIndexed.indexOf satisfies contract needed by BitmapIndex.indexOf return dictionary.indexOf(value); }
public int getLength() { return index.size(); }
@Override public void writeTo(WritableByteChannel channel, FileSmoosher smoosher) throws IOException { metaSerdeHelper.writeTo(channel, this); baseIntBuffers.writeTo(channel, smoosher); }