Skip to content

Commit 2cb7fdd

Browse files
authored
Split number property into longOrNull and doubleOrNull (#196)
Related to #191
1 parent 2f973dd commit 2cb7fdd

File tree

12 files changed

+30
-9
lines changed

12 files changed

+30
-9
lines changed

json-schema-validator/api/json-schema-validator.api

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,8 @@ public abstract interface class io/github/optimumcode/json/schema/model/ObjectEl
380380

381381
public abstract interface class io/github/optimumcode/json/schema/model/PrimitiveElement : io/github/optimumcode/json/schema/model/AbstractElement {
382382
public abstract fun getContent ()Ljava/lang/String;
383-
public abstract fun getNumber ()Ljava/lang/Number;
383+
public abstract fun getDoubleOrNull ()Ljava/lang/Double;
384+
public abstract fun getLongOrNull ()Ljava/lang/Long;
384385
public abstract fun isBoolean ()Z
385386
public abstract fun isNull ()Z
386387
public abstract fun isNumber ()Z

json-schema-validator/src/commonMain/kotlin/io/github/optimumcode/json/schema/internal/factories/number/Draft4MaximumAssertionFactory.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import io.github.optimumcode.json.schema.internal.JsonSchemaAssertion
55
import io.github.optimumcode.json.schema.internal.LoadingContext
66
import io.github.optimumcode.json.schema.internal.factories.number.util.NumberComparisonAssertion
77
import io.github.optimumcode.json.schema.internal.factories.number.util.compareTo
8+
import io.github.optimumcode.json.schema.internal.util.number
89
import io.github.optimumcode.json.schema.internal.wrapper.JsonPrimitiveWrapper
910
import kotlinx.serialization.json.JsonElement
1011
import kotlinx.serialization.json.JsonObject

json-schema-validator/src/commonMain/kotlin/io/github/optimumcode/json/schema/internal/factories/number/Draft4MinimumAssertionFactory.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import io.github.optimumcode.json.schema.internal.JsonSchemaAssertion
55
import io.github.optimumcode.json.schema.internal.LoadingContext
66
import io.github.optimumcode.json.schema.internal.factories.number.util.NumberComparisonAssertion
77
import io.github.optimumcode.json.schema.internal.factories.number.util.compareTo
8+
import io.github.optimumcode.json.schema.internal.util.number
89
import io.github.optimumcode.json.schema.internal.wrapper.JsonPrimitiveWrapper
910
import kotlinx.serialization.json.JsonElement
1011
import kotlinx.serialization.json.JsonObject

json-schema-validator/src/commonMain/kotlin/io/github/optimumcode/json/schema/internal/factories/number/ExclusiveMaximumAssertionFactory.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import io.github.optimumcode.json.schema.internal.LoadingContext
55
import io.github.optimumcode.json.schema.internal.factories.AbstractAssertionFactory
66
import io.github.optimumcode.json.schema.internal.factories.number.util.NumberComparisonAssertion
77
import io.github.optimumcode.json.schema.internal.factories.number.util.compareTo
8+
import io.github.optimumcode.json.schema.internal.util.number
89
import io.github.optimumcode.json.schema.internal.wrapper.JsonPrimitiveWrapper
910
import kotlinx.serialization.json.JsonElement
1011
import kotlinx.serialization.json.JsonPrimitive

json-schema-validator/src/commonMain/kotlin/io/github/optimumcode/json/schema/internal/factories/number/ExclusiveMinimumAssertionFactory.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import io.github.optimumcode.json.schema.internal.LoadingContext
55
import io.github.optimumcode.json.schema.internal.factories.AbstractAssertionFactory
66
import io.github.optimumcode.json.schema.internal.factories.number.util.NumberComparisonAssertion
77
import io.github.optimumcode.json.schema.internal.factories.number.util.compareTo
8+
import io.github.optimumcode.json.schema.internal.util.number
89
import io.github.optimumcode.json.schema.internal.wrapper.JsonPrimitiveWrapper
910
import kotlinx.serialization.json.JsonElement
1011
import kotlinx.serialization.json.JsonPrimitive

json-schema-validator/src/commonMain/kotlin/io/github/optimumcode/json/schema/internal/factories/number/MaximumAssertionFactory.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import io.github.optimumcode.json.schema.internal.LoadingContext
55
import io.github.optimumcode.json.schema.internal.factories.AbstractAssertionFactory
66
import io.github.optimumcode.json.schema.internal.factories.number.util.NumberComparisonAssertion
77
import io.github.optimumcode.json.schema.internal.factories.number.util.compareTo
8+
import io.github.optimumcode.json.schema.internal.util.number
89
import io.github.optimumcode.json.schema.internal.wrapper.JsonPrimitiveWrapper
910
import kotlinx.serialization.json.JsonElement
1011
import kotlinx.serialization.json.JsonPrimitive

json-schema-validator/src/commonMain/kotlin/io/github/optimumcode/json/schema/internal/factories/number/MinimumAssertionFactory.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import io.github.optimumcode.json.schema.internal.LoadingContext
55
import io.github.optimumcode.json.schema.internal.factories.AbstractAssertionFactory
66
import io.github.optimumcode.json.schema.internal.factories.number.util.NumberComparisonAssertion
77
import io.github.optimumcode.json.schema.internal.factories.number.util.compareTo
8+
import io.github.optimumcode.json.schema.internal.util.number
89
import io.github.optimumcode.json.schema.internal.wrapper.JsonPrimitiveWrapper
910
import kotlinx.serialization.json.JsonElement
1011
import kotlinx.serialization.json.JsonPrimitive

json-schema-validator/src/commonMain/kotlin/io/github/optimumcode/json/schema/internal/factories/number/MultipleOfAssertionFactory.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import io.github.optimumcode.json.schema.internal.JsonSchemaAssertion
44
import io.github.optimumcode.json.schema.internal.LoadingContext
55
import io.github.optimumcode.json.schema.internal.factories.AbstractAssertionFactory
66
import io.github.optimumcode.json.schema.internal.factories.number.util.NumberComparisonAssertion
7+
import io.github.optimumcode.json.schema.internal.util.number
78
import io.github.optimumcode.json.schema.internal.wrapper.JsonPrimitiveWrapper
89
import kotlinx.serialization.json.JsonElement
910
import kotlinx.serialization.json.JsonPrimitive

json-schema-validator/src/commonMain/kotlin/io/github/optimumcode/json/schema/internal/factories/number/util/NumberUtil.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import io.github.optimumcode.json.schema.OutputCollector
55
import io.github.optimumcode.json.schema.ValidationError
66
import io.github.optimumcode.json.schema.internal.AssertionContext
77
import io.github.optimumcode.json.schema.internal.JsonSchemaAssertion
8+
import io.github.optimumcode.json.schema.internal.util.number
89
import io.github.optimumcode.json.schema.model.AbstractElement
910
import io.github.optimumcode.json.schema.model.PrimitiveElement
1011

json-schema-validator/src/commonMain/kotlin/io/github/optimumcode/json/schema/internal/util/NumberParts.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ private const val E_SMALL_CHAR: Char = 'e'
2121
private const val E_BIG_CHAR: Char = 'E'
2222
private const val TEN: Double = 10.0
2323

24+
internal val PrimitiveElement.number: Number?
25+
get() = longOrNull ?: doubleOrNull
26+
2427
/**
2528
* This function should be used only if you are certain that the [element] is a number
2629
*/

0 commit comments

Comments
 (0)