java: implements MessagePackObject::hashCode()

This commit is contained in:
frsyuki
2010-08-10 14:11:44 +09:00
parent d3bb37d113
commit 057f73a73e
10 changed files with 55 additions and 0 deletions

View File

@@ -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];

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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);

View File

@@ -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];

View File

@@ -39,6 +39,11 @@ public class NilType extends MessagePackObject {
return true;
}
@Override
public int hashCode() {
return 0;
}
@Override
public Object clone() {
return new NilType();

View File

@@ -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());

View File

@@ -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);