diff options
| author | frsyuki <frsyuki@users.sourceforge.jp> | 2010-08-10 14:11:44 +0900 |
|---|---|---|
| committer | frsyuki <frsyuki@users.sourceforge.jp> | 2010-08-10 14:11:44 +0900 |
| commit | 057f73a73e0c3ddabe92f1cd2c394fe4afa13514 (patch) | |
| tree | 69e8c5fcc5dad87704f0d09eb03ed7fd426e5af6 /java/src | |
| parent | d3bb37d113575e8b36f44c06ac9eeb6b406aa298 (diff) | |
| download | msgpack-python-057f73a73e0c3ddabe92f1cd2c394fe4afa13514.tar.gz | |
java: implements MessagePackObject::hashCode()
Diffstat (limited to 'java/src')
10 files changed, 55 insertions, 0 deletions
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 @@ -61,6 +61,11 @@ public class ArrayType extends MessagePackObject { } @Override + public int hashCode() { + return array.hashCode(); + } + + @Override public Object clone() { MessagePackObject[] copy = new MessagePackObject[array.length]; for(int i=0; i < array.length; i++) { 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 @@ -104,6 +104,11 @@ class BigIntegerTypeIMPL extends IntegerType { } @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 @@ -51,6 +51,15 @@ public class BooleanType extends MessagePackObject { } @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 @@ -83,6 +83,12 @@ class DoubleTypeIMPL extends FloatType { } @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 @@ -82,6 +82,11 @@ class FloatTypeIMPL extends FloatType { } @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 @@ -101,6 +101,11 @@ class LongIntegerTypeIMPL extends IntegerType { } @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 @@ -64,6 +64,11 @@ public class MapType extends MessagePackObject { } @Override + public int hashCode() { + return map.hashCode(); + } + + @Override public Object clone() { MessagePackObject[] copy = new MessagePackObject[map.length]; for(int i=0; i < map.length; i++) { 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 @@ -40,6 +40,11 @@ public class NilType extends MessagePackObject { } @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 @@ -62,6 +62,11 @@ public class RawType extends MessagePackObject { } @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 @@ -103,6 +103,11 @@ class ShortIntegerTypeIMPL extends IntegerType { } @Override + public int hashCode() { + return value; + } + + @Override public Object clone() { return new ShortIntegerTypeIMPL(value); } |
