Skip to content

Commit 0e97e19

Browse files
authored
kotlin-spring: fix exception thrown in enum.forValue (#21622)
* kotlin-spring: fix exception thrown in enum.forValue * update samples
1 parent ee5a12a commit 0e97e19

File tree

35 files changed

+70
-35
lines changed

35 files changed

+70
-35
lines changed

modules/openapi-generator/src/main/resources/kotlin-spring/dataClass.mustache

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,8 @@
3939
@JvmStatic
4040
@JsonCreator
4141
fun forValue(value: {{#isContainer}}{{#items}}{{{dataType}}}{{/items}}{{/isContainer}}{{^isContainer}}{{{dataType}}}{{/isContainer}}): {{{nameInPascalCase}}} {
42-
return values().first{it -> it.value == value}
42+
return values().firstOrNull{it -> it.value == value}
43+
?: throw IllegalArgumentException("Unexpected value '$value' for enum '{{classname}}'")
4344
}
4445
}
4546
}

modules/openapi-generator/src/main/resources/kotlin-spring/enumClass.mustache

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ enum class {{classname}}(@get:JsonValue val value: {{dataType}}) {
1010
@JvmStatic
1111
@JsonCreator
1212
fun forValue(value: {{dataType}}): {{classname}} {
13-
return values().first{it -> it.value == value}
13+
return values().firstOrNull{it -> it.value == value}
14+
?: throw IllegalArgumentException("Unexpected value '$value' for enum '{{classname}}'")
1415
}
1516
}
1617
}

samples/server/petstore/kotlin-spring-cloud/src/main/kotlin/org/openapitools/model/Order.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,8 @@ data class Order(
5353
@JvmStatic
5454
@JsonCreator
5555
fun forValue(value: kotlin.String): Status {
56-
return values().first{it -> it.value == value}
56+
return values().firstOrNull{it -> it.value == value}
57+
?: throw IllegalArgumentException("Unexpected value '$value' for enum 'Order'")
5758
}
5859
}
5960
}

samples/server/petstore/kotlin-spring-cloud/src/main/kotlin/org/openapitools/model/Pet.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,8 @@ data class Pet(
5858
@JvmStatic
5959
@JsonCreator
6060
fun forValue(value: kotlin.String): Status {
61-
return values().first{it -> it.value == value}
61+
return values().firstOrNull{it -> it.value == value}
62+
?: throw IllegalArgumentException("Unexpected value '$value' for enum 'Pet'")
6263
}
6364
}
6465
}

samples/server/petstore/kotlin-spring-default/src/main/kotlin/org/openapitools/model/AnyOfUserOrPet.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,8 @@ data class AnyOfUserOrPet(
9494
@JvmStatic
9595
@JsonCreator
9696
fun forValue(value: kotlin.String): Status {
97-
return values().first{it -> it.value == value}
97+
return values().firstOrNull{it -> it.value == value}
98+
?: throw IllegalArgumentException("Unexpected value '$value' for enum 'AnyOfUserOrPet'")
9899
}
99100
}
100101
}

samples/server/petstore/kotlin-spring-default/src/main/kotlin/org/openapitools/model/AnyOfUserOrPetOrArrayString.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,8 @@ data class AnyOfUserOrPetOrArrayString(
9494
@JvmStatic
9595
@JsonCreator
9696
fun forValue(value: kotlin.String): Status {
97-
return values().first{it -> it.value == value}
97+
return values().firstOrNull{it -> it.value == value}
98+
?: throw IllegalArgumentException("Unexpected value '$value' for enum 'AnyOfUserOrPetOrArrayString'")
9899
}
99100
}
100101
}

samples/server/petstore/kotlin-spring-default/src/main/kotlin/org/openapitools/model/Order.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ data class Order(
5959
@JvmStatic
6060
@JsonCreator
6161
fun forValue(value: kotlin.String): Status {
62-
return values().first{it -> it.value == value}
62+
return values().firstOrNull{it -> it.value == value}
63+
?: throw IllegalArgumentException("Unexpected value '$value' for enum 'Order'")
6364
}
6465
}
6566
}

samples/server/petstore/kotlin-spring-default/src/main/kotlin/org/openapitools/model/Pet.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,8 @@ data class Pet(
6464
@JvmStatic
6565
@JsonCreator
6666
fun forValue(value: kotlin.String): Status {
67-
return values().first{it -> it.value == value}
67+
return values().firstOrNull{it -> it.value == value}
68+
?: throw IllegalArgumentException("Unexpected value '$value' for enum 'Pet'")
6869
}
6970
}
7071
}

samples/server/petstore/kotlin-spring-default/src/main/kotlin/org/openapitools/model/UserOrPet.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,8 @@ data class UserOrPet(
9494
@JvmStatic
9595
@JsonCreator
9696
fun forValue(value: kotlin.String): Status {
97-
return values().first{it -> it.value == value}
97+
return values().firstOrNull{it -> it.value == value}
98+
?: throw IllegalArgumentException("Unexpected value '$value' for enum 'UserOrPet'")
9899
}
99100
}
100101
}

samples/server/petstore/kotlin-spring-default/src/main/kotlin/org/openapitools/model/UserOrPetOrArrayString.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,8 @@ data class UserOrPetOrArrayString(
9494
@JvmStatic
9595
@JsonCreator
9696
fun forValue(value: kotlin.String): Status {
97-
return values().first{it -> it.value == value}
97+
return values().firstOrNull{it -> it.value == value}
98+
?: throw IllegalArgumentException("Unexpected value '$value' for enum 'UserOrPetOrArrayString'")
9899
}
99100
}
100101
}

0 commit comments

Comments
 (0)