@@ -28,26 +28,16 @@ import kotlin.reflect.jvm.kotlinFunction
28
28
29
29
internal class KotlinNamesAnnotationIntrospector (val module : KotlinModule , val cache : ReflectionCache , val ignoredClassesForImplyingJsonCreator : Set <KClass <* >>) : NopAnnotationIntrospector() {
30
30
// since 2.4
31
- override fun findImplicitPropertyName (member : AnnotatedMember ): String? {
32
- if (member is AnnotatedMethod && member.isInlineClass()) {
33
- if (member.name.startsWith(" get" ) &&
34
- member.name.contains(' -' ) &&
35
- member.parameterCount == 0 ) {
36
- return member.name.substringAfter(" get" )
37
- .replaceFirstChar { it.lowercase(Locale .getDefault()) }
38
- .substringBefore(' -' )
39
- } else if (member.name.startsWith(" is" ) &&
40
- member.name.contains(' -' ) &&
41
- member.parameterCount == 0 ) {
42
- return member.name.substringAfter(" is" )
43
- .replaceFirstChar { it.lowercase(Locale .getDefault()) }
44
- .substringBefore(' -' )
45
- }
46
- } else if (member is AnnotatedParameter ) {
47
- return findKotlinParameterName(member)
48
- }
49
-
50
- return null
31
+ override fun findImplicitPropertyName (member : AnnotatedMember ): String? = when (member) {
32
+ is AnnotatedMethod -> if (member.name.contains(' -' ) && member.parameterCount == 0 ) {
33
+ when {
34
+ member.name.startsWith(" get" ) -> member.name.substringAfter(" get" )
35
+ member.name.startsWith(" is" ) -> member.name.substringAfter(" is" )
36
+ else -> null
37
+ }?.replaceFirstChar { it.lowercase(Locale .getDefault()) }?.substringBefore(' -' )
38
+ } else null
39
+ is AnnotatedParameter -> findKotlinParameterName(member)
40
+ else -> null
51
41
}
52
42
53
43
// since 2.11: support Kotlin's way of handling "isXxx" backed properties where
@@ -169,5 +159,3 @@ internal class KotlinNamesAnnotationIntrospector(val module: KotlinModule, val c
169
159
}
170
160
}
171
161
}
172
-
173
- private fun AnnotatedMethod.isInlineClass () = declaringClass.declaredMethods.any { it.name.contains(' -' ) }
0 commit comments