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" (long
s). 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