@Override public KvDouble from(Double databaseObject) { return KvDouble.of(databaseObject); }
@Override public int intValue() { return (int) doubleValue(); }
@Override public Double to(KvDouble userObject) { return userObject.getValue(); }
@Override public KvValue<?> visit(BsonDouble value, Void arg) { return KvDouble.of(value.doubleValue()); }
@Override public Double getValue() { return doubleValue(); }
@Override public String toString() { return getValue().toString(); }
public Builder putValue(String key, double value) { return putValue(key, KvDouble.of(value)); }
@Override public long longValue() { return (long) doubleValue(); }
@SuppressWarnings("unchecked") private KvValue<?> convertValue(Object value) { if (value == null) { return KvNull.getInstance(); } if (value instanceof Map) { return convertMap((Map<String, Object>) value); } else if (value instanceof List) { return convertList((List<Object>) value); } else if (value instanceof String) { return new StringKvString((String) value); } else if (value instanceof Integer) { return KvInteger.of((Integer) value); } else if (value instanceof Double) { return KvDouble.of((Double) value); } else if (value instanceof Long) { return KvLong.of((Long) value); } else if (value instanceof Boolean) { return KvBoolean.from((boolean) value); } else { throw new RuntimeException("Unexpected type value"); } }
@SuppressFBWarnings( value = "FE_FLOATING_POINT_EQUALITY", justification = "We want to check for exactly equality" ) @Override public boolean equals(Object obj) { if (obj == this) { return true; } if (obj == null) { return false; } if (!(obj instanceof KvDouble)) { return false; } return this.doubleValue() == ((KvDouble) obj).doubleValue(); }
@Override public BsonValue<?> visit(KvDouble value, Void arg) { return newDouble(value.doubleValue()); }
@Override public int hashCode() { return Doubles.hashCode(doubleValue()); }