Mercurial > hg > Members > sugi > MessagePack-java
view src/main/java/org/msgpack/type/DoubleValueImpl.java @ 7:e7e55c455e39 default tip
refactor
author | sugi |
---|---|
date | Fri, 09 Jan 2015 16:02:44 +0900 |
parents | cb825acd883a |
children |
line wrap: on
line source
// // MessagePack for Java // // Copyright (C) 2009 - 2013 FURUHASHI Sadayuki // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // package org.msgpack.type; import java.math.BigInteger; import java.math.BigDecimal; import java.io.IOException; import org.msgpack.packer.Packer; @SuppressWarnings("serial") class DoubleValueImpl extends FloatValue { private double value; DoubleValueImpl(double value) { this.value = value; } @Override public float getFloat() { return (float) value; } @Override public double getDouble() { return value; } @Override public byte byteValue() { return (byte) value; } @Override public short shortValue() { return (short) value; } @Override public int intValue() { return (int) value; } @Override public long longValue() { return (long) value; } @Override public BigInteger bigIntegerValue() { return new BigDecimal(value).toBigInteger(); } @Override public float floatValue() { return (float) value; } @Override public double doubleValue() { return value; } @Override public void writeTo(Packer pk) throws IOException { pk.write(value); } @Override public boolean equals(Object o) { if (o == this) { return true; } if (!(o instanceof Value)) { return false; } Value v = (Value) o; if (!v.isFloatValue()) { return false; } return value == v.asFloatValue().getDouble(); } // TODO compareTo @Override public int hashCode() { long v = Double.doubleToLongBits(value); return (int) (v ^ (v >>> 32)); } @Override public String toString() { return Double.toString(value); } @Override public StringBuilder toString(StringBuilder sb) { return sb.append(Double.toString(value)); } }