diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..132c216 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +hll.iml diff --git a/src/main/java/net/agkn/hll/HLL.java b/src/main/java/net/agkn/hll/HLL.java index cdfd3ad..5f4fba0 100644 --- a/src/main/java/net/agkn/hll/HLL.java +++ b/src/main/java/net/agkn/hll/HLL.java @@ -16,6 +16,7 @@ * limitations under the License. */ +import java.io.Serializable; import java.util.Arrays; import it.unimi.dsi.fastutil.ints.Int2ByteOpenHashMap; @@ -59,7 +60,7 @@ * * @author timon */ -public class HLL implements Cloneable { +public class HLL implements Cloneable, Serializable { // minimum and maximum values for the log-base-2 of the number of registers // in the HLL public static final int MINIMUM_LOG2M_PARAM = 4; @@ -75,6 +76,7 @@ public class HLL implements Cloneable { public static final int MINIMUM_EXPTHRESH_PARAM = -1; public static final int MAXIMUM_EXPTHRESH_PARAM = 18; public static final int MAXIMUM_EXPLICIT_THRESHOLD = (1 << (MAXIMUM_EXPTHRESH_PARAM - 1)/*per storage spec*/); + private static final long serialVersionUID = -848939697379806659L; // ************************************************************************ // Storage diff --git a/src/main/java/net/agkn/hll/HLLType.java b/src/main/java/net/agkn/hll/HLLType.java index 61e3c79..9fdcede 100644 --- a/src/main/java/net/agkn/hll/HLLType.java +++ b/src/main/java/net/agkn/hll/HLLType.java @@ -16,11 +16,13 @@ * limitations under the License. */ +import java.io.Serializable; + /** * The types of algorithm/data structure that {@link HLL} can utilize. For more * information, see the Javadoc for {@link HLL}. */ -public enum HLLType { +public enum HLLType implements Serializable { EMPTY, EXPLICIT, SPARSE, diff --git a/src/main/java/net/agkn/hll/util/BitVector.java b/src/main/java/net/agkn/hll/util/BitVector.java index 56687b1..df8ca84 100644 --- a/src/main/java/net/agkn/hll/util/BitVector.java +++ b/src/main/java/net/agkn/hll/util/BitVector.java @@ -18,6 +18,8 @@ import net.agkn.hll.serialization.IWordSerializer; +import java.io.Serializable; + /** * A vector (array) of bits that is accessed in units ("registers") of width * bits which are stored as 64bit "words" (longs). In this context @@ -25,7 +27,7 @@ * * @author rgrzywinski */ -public class BitVector implements Cloneable { +public class BitVector implements Cloneable, Serializable { // NOTE: in this context, a word is 64bits // rather than doing division to determine how a bit index fits into 64bit @@ -40,6 +42,7 @@ public class BitVector implements Cloneable { // ======================================================================== public static final int BYTES_PER_WORD = 8/*8 bytes in a long*/; + private static final long serialVersionUID = -2191980917150692709L; // ************************************************************************ // 64bit words