From 51ed1b2db81b16a552dff37247dacb29c4317c9c Mon Sep 17 00:00:00 2001 From: Koitharu Date: Wed, 22 Jan 2025 09:33:25 +0200 Subject: [PATCH] Update json utils --- .../org/koitharu/kotatsu/parsers/util/json/JsonExt.kt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/kotlin/org/koitharu/kotatsu/parsers/util/json/JsonExt.kt b/src/main/kotlin/org/koitharu/kotatsu/parsers/util/json/JsonExt.kt index 0766bdb43..ba416fea1 100644 --- a/src/main/kotlin/org/koitharu/kotatsu/parsers/util/json/JsonExt.kt +++ b/src/main/kotlin/org/koitharu/kotatsu/parsers/util/json/JsonExt.kt @@ -120,6 +120,17 @@ public fun JSONObject.getFloatOrDefault(name: String, defaultValue: Float): Floa } } +public fun > JSONObject.getEnumValueOrNull(name: String, enumClass: Class): E? { + val enumName = getStringOrNull(name) ?: return null + return enumClass.enumConstants?.find { x -> + enumName.equals(x.name, ignoreCase = true) + } +} + +public fun > JSONObject.getEnumValueOrDefault(name: String, defaultValue: E): E { + return getEnumValueOrNull(name, defaultValue.javaClass) ?: defaultValue +} + public fun JSONArray?.isNullOrEmpty(): Boolean { contract { returns(false) implies (this@isNullOrEmpty != null)