mirror of
https://github.com/msgpack/msgpack-python.git
synced 2026-02-07 10:19:51 +00:00
java: adds MessagePackObject.bigIntegerValue(), asBigInteger() and equals()
This commit is contained in:
parent
057f73a73e
commit
8c67087a15
5 changed files with 49 additions and 0 deletions
|
|
@ -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");
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,6 +60,11 @@ class BigIntegerTypeIMPL extends IntegerType {
|
|||
return value.longValue();
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigInteger asBigInteger() {
|
||||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte byteValue() {
|
||||
return value.byteValue();
|
||||
|
|
@ -80,6 +85,11 @@ class BigIntegerTypeIMPL extends IntegerType {
|
|||
return value.longValue();
|
||||
}
|
||||
|
||||
@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);
|
||||
|
|
|
|||
|
|
@ -59,6 +59,11 @@ class DoubleTypeIMPL extends FloatType {
|
|||
return (long)value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigInteger bigIntegerValue() {
|
||||
return BigInteger.valueOf((long)value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public float floatValue() {
|
||||
return (float)value;
|
||||
|
|
|
|||
|
|
@ -57,6 +57,11 @@ class LongIntegerTypeIMPL extends IntegerType {
|
|||
return value;
|
||||
}
|
||||
|
||||
@Override
|
||||
public BigInteger asBigInteger() {
|
||||
return BigInteger.valueOf(value);
|
||||
}
|
||||
|
||||
@Override
|
||||
public byte byteValue() {
|
||||
return (byte)value;
|
||||
|
|
@ -77,6 +82,11 @@ class LongIntegerTypeIMPL extends IntegerType {
|
|||
return (long)value;
|
||||
}
|
||||
|
||||
@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;
|
||||
|
|
|
|||
|
|
@ -79,6 +79,11 @@ class ShortIntegerTypeIMPL extends IntegerType {
|
|||
return (long)value;
|
||||
}
|
||||
|
||||
@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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue