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 0766bdb4..ba416fea 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)