summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
authorfrsyuki <frsyuki@users.sourceforge.jp>2010-08-18 16:32:42 +0900
committerfrsyuki <frsyuki@users.sourceforge.jp>2010-08-18 16:32:42 +0900
commit8c67087a154da0e7cdc32c0b676d2956ce1d0f47 (patch)
tree1c4954fef106b58a53fc61ffc200c0d7ec9c6a12 /java/src
parent057f73a73e0c3ddabe92f1cd2c394fe4afa13514 (diff)
downloadmsgpack-python-8c67087a154da0e7cdc32c0b676d2956ce1d0f47.tar.gz
java: adds MessagePackObject.bigIntegerValue(), asBigInteger() and equals()
Diffstat (limited to 'java/src')
-rw-r--r--java/src/main/java/org/msgpack/MessagePackObject.java4
-rw-r--r--java/src/main/java/org/msgpack/object/BigIntegerTypeIMPL.java15
-rw-r--r--java/src/main/java/org/msgpack/object/DoubleTypeIMPL.java5
-rw-r--r--java/src/main/java/org/msgpack/object/LongIntegerTypeIMPL.java15
-rw-r--r--java/src/main/java/org/msgpack/object/ShortIntegerTypeIMPL.java10
5 files changed, 49 insertions, 0 deletions
diff --git a/java/src/main/java/org/msgpack/MessagePackObject.java b/java/src/main/java/org/msgpack/MessagePackObject.java
index b1a6fab..6181f7a 100644
--- a/java/src/main/java/org/msgpack/MessagePackObject.java
+++ b/java/src/main/java/org/msgpack/MessagePackObject.java
@@ -119,6 +119,10 @@ public abstract class MessagePackObject implements Cloneable, MessagePackable {
throw new MessageTypeException("type error");
}
+ public BigInteger bigIntegerValue() {
+ throw new MessageTypeException("type error");
+ }
+
public float floatValue() {
throw new MessageTypeException("type error");
}
diff --git a/java/src/main/java/org/msgpack/object/BigIntegerTypeIMPL.java b/java/src/main/java/org/msgpack/object/BigIntegerTypeIMPL.java
index fd517e7..7b060ee 100644
--- a/java/src/main/java/org/msgpack/object/BigIntegerTypeIMPL.java
+++ b/java/src/main/java/org/msgpack/object/BigIntegerTypeIMPL.java
@@ -61,6 +61,11 @@ class BigIntegerTypeIMPL extends IntegerType {
}
@Override
+ public BigInteger asBigInteger() {
+ return value;
+ }
+
+ @Override
public byte byteValue() {
return value.byteValue();
}
@@ -81,6 +86,11 @@ class BigIntegerTypeIMPL extends IntegerType {
}
@Override
+ public BigInteger bigIntegerValue() {
+ return value;
+ }
+
+ @Override
public float floatValue() {
return value.floatValue();
}
@@ -98,6 +108,11 @@ class BigIntegerTypeIMPL extends IntegerType {
@Override
public boolean equals(Object obj) {
if(obj.getClass() != getClass()) {
+ if(obj.getClass() == ShortIntegerTypeIMPL.class) {
+ return BigInteger.valueOf((long)((ShortIntegerTypeIMPL)obj).shortValue()).equals(value);
+ } else if(obj.getClass() == LongIntegerTypeIMPL.class) {
+ return BigInteger.valueOf(((LongIntegerTypeIMPL)obj).longValue()).equals(value);
+ }
return false;
}
return ((BigIntegerTypeIMPL)obj).value.equals(value);
diff --git a/java/src/main/java/org/msgpack/object/DoubleTypeIMPL.java b/java/src/main/java/org/msgpack/object/DoubleTypeIMPL.java
index b47a709..fd38089 100644
--- a/java/src/main/java/org/msgpack/object/DoubleTypeIMPL.java
+++ b/java/src/main/java/org/msgpack/object/DoubleTypeIMPL.java
@@ -60,6 +60,11 @@ class DoubleTypeIMPL extends FloatType {
}
@Override
+ public BigInteger bigIntegerValue() {
+ return BigInteger.valueOf((long)value);
+ }
+
+ @Override
public float floatValue() {
return (float)value;
}
diff --git a/java/src/main/java/org/msgpack/object/LongIntegerTypeIMPL.java b/java/src/main/java/org/msgpack/object/LongIntegerTypeIMPL.java
index 940ab6f..3928a29 100644
--- a/java/src/main/java/org/msgpack/object/LongIntegerTypeIMPL.java
+++ b/java/src/main/java/org/msgpack/object/LongIntegerTypeIMPL.java
@@ -58,6 +58,11 @@ class LongIntegerTypeIMPL extends IntegerType {
}
@Override
+ public BigInteger asBigInteger() {
+ return BigInteger.valueOf(value);
+ }
+
+ @Override
public byte byteValue() {
return (byte)value;
}
@@ -78,6 +83,11 @@ class LongIntegerTypeIMPL extends IntegerType {
}
@Override
+ public BigInteger bigIntegerValue() {
+ return BigInteger.valueOf(value);
+ }
+
+ @Override
public float floatValue() {
return (float)value;
}
@@ -95,6 +105,11 @@ class LongIntegerTypeIMPL extends IntegerType {
@Override
public boolean equals(Object obj) {
if(obj.getClass() != getClass()) {
+ if(obj.getClass() == ShortIntegerTypeIMPL.class) {
+ return value == ((ShortIntegerTypeIMPL)obj).longValue();
+ } else if(obj.getClass() == BigIntegerTypeIMPL.class) {
+ return (long)value == ((BigIntegerTypeIMPL)obj).longValue();
+ }
return false;
}
return ((LongIntegerTypeIMPL)obj).value == value;
diff --git a/java/src/main/java/org/msgpack/object/ShortIntegerTypeIMPL.java b/java/src/main/java/org/msgpack/object/ShortIntegerTypeIMPL.java
index 60e92b8..dbed426 100644
--- a/java/src/main/java/org/msgpack/object/ShortIntegerTypeIMPL.java
+++ b/java/src/main/java/org/msgpack/object/ShortIntegerTypeIMPL.java
@@ -80,6 +80,11 @@ class ShortIntegerTypeIMPL extends IntegerType {
}
@Override
+ public BigInteger bigIntegerValue() {
+ return BigInteger.valueOf((long)value);
+ }
+
+ @Override
public float floatValue() {
return (float)value;
}
@@ -97,6 +102,11 @@ class ShortIntegerTypeIMPL extends IntegerType {
@Override
public boolean equals(Object obj) {
if(obj.getClass() != getClass()) {
+ if(obj.getClass() == LongIntegerTypeIMPL.class) {
+ return (long)value == ((LongIntegerTypeIMPL)obj).longValue();
+ } else if(obj.getClass() == BigIntegerTypeIMPL.class) {
+ return ((BigIntegerTypeIMPL)obj).bigIntegerValue().equals(BigInteger.valueOf((long)value));
+ }
return false;
}
return ((ShortIntegerTypeIMPL)obj).value == value;