@Override public RLBSBFDeDuplicator readFrom(InputStream in) throws IOException { final DataInputStream dis = new DataInputStream(in); final int serializedVersion = dis.readInt(); if (serializedVersion != version()) { final String error = String.format( "Unexpected ProbabilisticDeDuplicator version number (%d), expected %d", serializedVersion, version() ); throw new IOException(error); } final long numBits = dis.readLong(); final int numHashFunctions = dis.readInt(); final BitArray[] bloomFilters = new BitArray[numHashFunctions]; for (int index = 0; index < numHashFunctions; index++) { bloomFilters[index] = BitArray.readFrom(dis); } final double reportedDuplicateProbability = dis.readDouble(); return new RLBSBFDeDuplicator(numBits, numHashFunctions, bloomFilters, reportedDuplicateProbability); } };
@Override public RLBSBFDeDuplicator readFrom(InputStream in) throws IOException { final DataInputStream dis = new DataInputStream(in); final byte serializedVersion = dis.readByte(); if (serializedVersion != version()) { final String error = String.format( "Unexpected ProbabilisticDeDuplicator version number (%d), expected %d", serializedVersion, version() ); throw new IOException(error); } final long numBits = dis.readLong(); final int numHashFunctions = dis.readInt(); final BitArray[] bloomFilters = new BitArray[numHashFunctions]; for (int index = 0; index < numHashFunctions; index++) { bloomFilters[index] = BitArray.readFrom(dis); } return new RLBSBFDeDuplicator(numBits, numHashFunctions, bloomFilters, 0D); } },
@Override public BSBFDeDuplicator readFrom(InputStream in) throws IOException { final DataInputStream dis = new DataInputStream(in); final byte serializedVersion = dis.readByte(); if (serializedVersion != version()) { final String error = String.format( "Unexpected ProbabilisticDeDuplicator version number (%d), expected %d", serializedVersion, version() ); throw new IOException(error); } final long numBits = dis.readLong(); final int numHashFunctions = dis.readInt(); final BitArray[] bloomFilters = new BitArray[numHashFunctions]; for (int index = 0; index < numHashFunctions; index++) { bloomFilters[index] = BitArray.readFrom(dis); } return new BSBFDeDuplicator(numBits, numHashFunctions, bloomFilters, 0D); } },
@Override public BSBFDeDuplicator readFrom(InputStream in) throws IOException { final DataInputStream dis = new DataInputStream(in); final int serializedVersion = dis.readInt(); if (serializedVersion != version()) { final String error = String.format( "Unexpected ProbabilisticDeDuplicator version number (%d), expected %d", serializedVersion, version() ); throw new IOException(error); } final long numBits = dis.readLong(); final int numHashFunctions = dis.readInt(); final BitArray[] bloomFilters = new BitArray[numHashFunctions]; for (int index = 0; index < numHashFunctions; index++) { bloomFilters[index] = BitArray.readFrom(dis); } final double reportedDuplicateProbability = dis.readDouble(); return new BSBFDeDuplicator(numBits, numHashFunctions, bloomFilters, reportedDuplicateProbability); } };
@Override public BSBFSDDeDuplicator readFrom(InputStream in) throws IOException { final DataInputStream dis = new DataInputStream(in); final int serializedVersion = dis.readInt(); if (serializedVersion != version()) { final String error = String.format( "Unexpected ProbabilisticDeDuplicator version number (%d), expected %d", serializedVersion, version() ); throw new IOException(error); } final long numBits = dis.readLong(); final int numHashFunctions = dis.readInt(); final BitArray[] bloomFilters = new BitArray[numHashFunctions]; for (int index = 0; index < numHashFunctions; index++) { bloomFilters[index] = BitArray.readFrom(dis); } final double reportedDuplicateProbability = dis.readDouble(); return new BSBFSDDeDuplicator(numBits, numHashFunctions, bloomFilters, reportedDuplicateProbability); } };
@Override public BSBFSDDeDuplicator readFrom(InputStream in) throws IOException { final DataInputStream dis = new DataInputStream(in); final byte serializedVersion = dis.readByte(); if (serializedVersion != version()) { final String error = String.format( "Unexpected ProbabilisticDeDuplicator version number (%d), expected %d", serializedVersion, version() ); throw new IOException(error); } final long numBits = dis.readLong(); final int numHashFunctions = dis.readInt(); final BitArray[] bloomFilters = new BitArray[numHashFunctions]; for (int index = 0; index < numHashFunctions; index++) { bloomFilters[index] = BitArray.readFrom(dis); } return new BSBFSDDeDuplicator(numBits, numHashFunctions, bloomFilters, 0D); } },
@Test public void testWriteToReadFrom() throws IOException { final BitArray bitArray = new BitArray(64L); assertTrue(bitArray.set(0L)); final ByteArrayOutputStream out = new ByteArrayOutputStream(); final DataOutputStream dos = new DataOutputStream(out); bitArray.writeTo(dos); out.close(); final ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); final DataInputStream dis = new DataInputStream(in); final BitArray serialized = BitArray.readFrom(dis); in.close(); assertEquals(bitArray, serialized); } }