in src/main/java/com/spotify/heroic/client/api/query/DataPoint.kt [34:54]
override fun deserialize(p: JsonParser, c: DeserializationContext): DataPoint {
if (p.currentToken != JsonToken.START_ARRAY) {
throw c.mappingException("Expected start of array")
}
var timestamp: Long
run {
if (p.nextToken() != JsonToken.VALUE_NUMBER_INT) {
throw c.mappingException("Expected number (timestamp)")
}
timestamp = p.readValueAs(Long::class.java)
}
val value: Double = when (p.nextToken()) {
JsonToken.VALUE_NUMBER_FLOAT -> p.readValueAs(Double::class.java)
JsonToken.VALUE_NUMBER_INT -> p.readValueAs(Long::class.java).toDouble()
else -> throw c.mappingException("Expected float (value)")
}
if (p.nextToken() != JsonToken.END_ARRAY) {
throw c.mappingException("Expected end of array")
}
return DataPoint(timestamp, value)
}