From 057f73a73e0c3ddabe92f1cd2c394fe4afa13514 Mon Sep 17 00:00:00 2001 From: frsyuki Date: Tue, 10 Aug 2010 14:11:44 +0900 Subject: java: implements MessagePackObject::hashCode() --- java/src/main/java/org/msgpack/object/ArrayType.java | 5 +++++ java/src/main/java/org/msgpack/object/BigIntegerTypeIMPL.java | 5 +++++ java/src/main/java/org/msgpack/object/BooleanType.java | 9 +++++++++ java/src/main/java/org/msgpack/object/DoubleTypeIMPL.java | 6 ++++++ java/src/main/java/org/msgpack/object/FloatTypeIMPL.java | 5 +++++ java/src/main/java/org/msgpack/object/LongIntegerTypeIMPL.java | 5 +++++ java/src/main/java/org/msgpack/object/MapType.java | 5 +++++ java/src/main/java/org/msgpack/object/NilType.java | 5 +++++ java/src/main/java/org/msgpack/object/RawType.java | 5 +++++ java/src/main/java/org/msgpack/object/ShortIntegerTypeIMPL.java | 5 +++++ 10 files changed, 55 insertions(+) (limited to 'java/src') diff --git a/java/src/main/java/org/msgpack/object/ArrayType.java b/java/src/main/java/org/msgpack/object/ArrayType.java index 694f53f..350ce32 100644 --- a/java/src/main/java/org/msgpack/object/ArrayType.java +++ b/java/src/main/java/org/msgpack/object/ArrayType.java @@ -60,6 +60,11 @@ public class ArrayType extends MessagePackObject { return Arrays.equals(((ArrayType)obj).array, array); } + @Override + public int hashCode() { + return array.hashCode(); + } + @Override public Object clone() { MessagePackObject[] copy = new MessagePackObject[array.length]; diff --git a/java/src/main/java/org/msgpack/object/BigIntegerTypeIMPL.java b/java/src/main/java/org/msgpack/object/BigIntegerTypeIMPL.java index f7c73ae..fd517e7 100644 --- a/java/src/main/java/org/msgpack/object/BigIntegerTypeIMPL.java +++ b/java/src/main/java/org/msgpack/object/BigIntegerTypeIMPL.java @@ -103,6 +103,11 @@ class BigIntegerTypeIMPL extends IntegerType { return ((BigIntegerTypeIMPL)obj).value.equals(value); } + @Override + public int hashCode() { + return value.hashCode(); + } + @Override public Object clone() { return new BigIntegerTypeIMPL(value); diff --git a/java/src/main/java/org/msgpack/object/BooleanType.java b/java/src/main/java/org/msgpack/object/BooleanType.java index c6e4f30..1d12c1c 100644 --- a/java/src/main/java/org/msgpack/object/BooleanType.java +++ b/java/src/main/java/org/msgpack/object/BooleanType.java @@ -50,6 +50,15 @@ public class BooleanType extends MessagePackObject { return ((BooleanType)obj).value == value; } + @Override + public int hashCode() { + if(value) { + return 1231; + } else { + return 1237; + } + } + @Override public Object clone() { return new BooleanType(value); diff --git a/java/src/main/java/org/msgpack/object/DoubleTypeIMPL.java b/java/src/main/java/org/msgpack/object/DoubleTypeIMPL.java index dafe540..b47a709 100644 --- a/java/src/main/java/org/msgpack/object/DoubleTypeIMPL.java +++ b/java/src/main/java/org/msgpack/object/DoubleTypeIMPL.java @@ -82,6 +82,12 @@ class DoubleTypeIMPL extends FloatType { return ((DoubleTypeIMPL)obj).value == value; } + @Override + public int hashCode() { + long v = Double.doubleToLongBits(value); + return (int)(v^(v>>>32)); + } + @Override public Object clone() { return new DoubleTypeIMPL(value); diff --git a/java/src/main/java/org/msgpack/object/FloatTypeIMPL.java b/java/src/main/java/org/msgpack/object/FloatTypeIMPL.java index 234b2ad..1d79961 100644 --- a/java/src/main/java/org/msgpack/object/FloatTypeIMPL.java +++ b/java/src/main/java/org/msgpack/object/FloatTypeIMPL.java @@ -81,6 +81,11 @@ class FloatTypeIMPL extends FloatType { return ((FloatTypeIMPL)obj).value == value; } + @Override + public int hashCode() { + return Float.floatToIntBits(value); + } + @Override public Object clone() { return new FloatTypeIMPL(value); diff --git a/java/src/main/java/org/msgpack/object/LongIntegerTypeIMPL.java b/java/src/main/java/org/msgpack/object/LongIntegerTypeIMPL.java index 0ce22a2..940ab6f 100644 --- a/java/src/main/java/org/msgpack/object/LongIntegerTypeIMPL.java +++ b/java/src/main/java/org/msgpack/object/LongIntegerTypeIMPL.java @@ -100,6 +100,11 @@ class LongIntegerTypeIMPL extends IntegerType { return ((LongIntegerTypeIMPL)obj).value == value; } + @Override + public int hashCode() { + return (int)(value^(value>>>32)); + } + @Override public Object clone() { return new LongIntegerTypeIMPL(value); diff --git a/java/src/main/java/org/msgpack/object/MapType.java b/java/src/main/java/org/msgpack/object/MapType.java index d456e78..619d388 100644 --- a/java/src/main/java/org/msgpack/object/MapType.java +++ b/java/src/main/java/org/msgpack/object/MapType.java @@ -63,6 +63,11 @@ public class MapType extends MessagePackObject { return Arrays.equals(((MapType)obj).map, map); } + @Override + public int hashCode() { + return map.hashCode(); + } + @Override public Object clone() { MessagePackObject[] copy = new MessagePackObject[map.length]; diff --git a/java/src/main/java/org/msgpack/object/NilType.java b/java/src/main/java/org/msgpack/object/NilType.java index 7a46376..ece62f0 100644 --- a/java/src/main/java/org/msgpack/object/NilType.java +++ b/java/src/main/java/org/msgpack/object/NilType.java @@ -39,6 +39,11 @@ public class NilType extends MessagePackObject { return true; } + @Override + public int hashCode() { + return 0; + } + @Override public Object clone() { return new NilType(); diff --git a/java/src/main/java/org/msgpack/object/RawType.java b/java/src/main/java/org/msgpack/object/RawType.java index 18a419d..3a39486 100644 --- a/java/src/main/java/org/msgpack/object/RawType.java +++ b/java/src/main/java/org/msgpack/object/RawType.java @@ -61,6 +61,11 @@ public class RawType extends MessagePackObject { return ((RawType)obj).bytes.equals(bytes); } + @Override + public int hashCode() { + return bytes.hashCode(); + } + @Override public Object clone() { return new RawType((byte[])bytes.clone()); diff --git a/java/src/main/java/org/msgpack/object/ShortIntegerTypeIMPL.java b/java/src/main/java/org/msgpack/object/ShortIntegerTypeIMPL.java index 83a4daf..60e92b8 100644 --- a/java/src/main/java/org/msgpack/object/ShortIntegerTypeIMPL.java +++ b/java/src/main/java/org/msgpack/object/ShortIntegerTypeIMPL.java @@ -102,6 +102,11 @@ class ShortIntegerTypeIMPL extends IntegerType { return ((ShortIntegerTypeIMPL)obj).value == value; } + @Override + public int hashCode() { + return value; + } + @Override public Object clone() { return new ShortIntegerTypeIMPL(value); -- cgit v1.2.1