@Override public BlockBuilder newBlockBuilderLike(BlockBuilderStatus blockBuilderStatus) { return new FixedWidthBlockBuilder(fixedSize, blockBuilderStatus, calculateBlockResetSize(positionCount)); }
@Override public BlockBuilder newBlockBuilderLike(BlockBuilderStatus blockBuilderStatus) { return new ShortArrayBlockBuilder(blockBuilderStatus, calculateBlockResetSize(positionCount)); }
@Override public BlockBuilder newBlockBuilderLike(BlockBuilderStatus blockBuilderStatus) { return new ByteArrayBlockBuilder(blockBuilderStatus, calculateBlockResetSize(positionCount)); }
@Override public BlockBuilder newBlockBuilderLike(BlockBuilderStatus blockBuilderStatus) { return new LongArrayBlockBuilder(blockBuilderStatus, calculateBlockResetSize(positionCount)); }
@Override public BlockBuilder newBlockBuilderLike(BlockBuilderStatus blockBuilderStatus) { return new IntArrayBlockBuilder(blockBuilderStatus, calculateBlockResetSize(positionCount)); }
@Override public BlockBuilder newBlockBuilderLike(BlockBuilderStatus blockBuilderStatus) { int newSize = calculateBlockResetSize(getPositionCount()); BlockBuilder[] newBlockBuilders = new BlockBuilder[numFields]; for (int i = 0; i < numFields; i++) { newBlockBuilders[i] = fieldBlockBuilders[i].newBlockBuilderLike(blockBuilderStatus); } return new RowBlockBuilder(blockBuilderStatus, newBlockBuilders, new int[newSize + 1], new boolean[newSize]); } }
@Override public BlockBuilder newBlockBuilderLike(BlockBuilderStatus blockBuilderStatus) { int newSize = calculateBlockResetSize(getPositionCount()); return new ArrayBlockBuilder(blockBuilderStatus, values.newBlockBuilderLike(blockBuilderStatus), newSize); }
@Override public BlockBuilder newBlockBuilderLike(BlockBuilderStatus blockBuilderStatus) { int currentSizeInBytes = positions == 0 ? positions : (getOffset(positions) - getOffset(0)); return new VariableWidthBlockBuilder(blockBuilderStatus, calculateBlockResetSize(positions), calculateBlockResetBytes(currentSizeInBytes)); }
@Override public BlockBuilder newBlockBuilderLike(BlockBuilderStatus blockBuilderStatus) { int newSize = calculateBlockResetSize(getPositionCount()); return new MapBlockBuilder( keyType, keyBlockNativeEquals, keyBlockEquals, keyNativeHashCode, keyBlockHashCode, blockBuilderStatus, keyBlockBuilder.newBlockBuilderLike(blockBuilderStatus), valueBlockBuilder.newBlockBuilderLike(blockBuilderStatus), new int[newSize + 1], new boolean[newSize], newNegativeOneFilledArray(newSize * HASH_MULTIPLIER)); }