override fun deserialize()

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)
    }