run.qontract.core.value.NumberValue.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of qontract-core Show documentation
Show all versions of qontract-core Show documentation
A Contract Testing Tool that leverages Gherkin to describe APIs in a human readable and machine enforceable manner
package run.qontract.core.value
import run.qontract.core.ExampleDeclarations
import run.qontract.core.pattern.ExactValuePattern
import run.qontract.core.pattern.NumberPattern
import run.qontract.core.pattern.Pattern
data class NumberValue(val number: Number) : Value, ScalarValue {
override val httpContentType = "text/plain"
override fun displayableValue(): String = toStringValue()
override fun toStringValue() = number.toString()
override fun displayableType(): String = "number"
override fun exactMatchElseType(): Pattern = ExactValuePattern(this)
override fun type(): Pattern = NumberPattern
override fun typeDeclarationWithKey(key: String, types: Map, exampleDeclarations: ExampleDeclarations): Pair =
primitiveTypeDeclarationWithKey(key, types, exampleDeclarations, displayableType(), number.toString())
override fun listOf(valueList: List): Value {
return JSONArrayValue(valueList)
}
override fun typeDeclarationWithoutKey(exampleKey: String, types: Map, exampleDeclarations: ExampleDeclarations): Pair =
primitiveTypeDeclarationWithoutKey(exampleKey, types, exampleDeclarations, displayableType(), number.toString())
override fun toString() = number.toString()
}