diff --git a/caching/src/main/java/avrobase/caching/BytesKey.java b/caching/src/main/java/avrobase/caching/BytesKey.java new file mode 100644 index 0000000..54a8b4d --- /dev/null +++ b/caching/src/main/java/avrobase/caching/BytesKey.java @@ -0,0 +1,43 @@ +package avrobase.caching; + +/** +* TODO: Edit this +*
+* User: sam +* Date: 5/11/11 +* Time: 7:15 PM +*/ +public class BytesKey { + private final byte[] key; + + public BytesKey(byte[] key) { + this.key = key; + } + + @Override + public boolean equals(Object o) { + if (o instanceof BytesKey) { + BytesKey other = (BytesKey) o; + byte[] otherkey = other.key; + if (key.length == otherkey.length) { + int i = 0; + for (byte b : key) { + if (b != otherkey[i++]) { + return false; + } + } + return true; + } + } + return false; + } + + @Override + public int hashCode() { + int hashcode = 0; + for (byte aKey : key) { + hashcode += aKey + hashcode * 43; + } + return hashcode; + } +} diff --git a/caching/src/main/java/avrobase/caching/BytesKeyMaker.java b/caching/src/main/java/avrobase/caching/BytesKeyMaker.java new file mode 100644 index 0000000..0218e83 --- /dev/null +++ b/caching/src/main/java/avrobase/caching/BytesKeyMaker.java @@ -0,0 +1,7 @@ +package avrobase.caching; + +public class BytesKeyMaker implements Cacher.KeyMaker