Skip to content

Commit

Permalink
Added type conversion for value class
Browse files Browse the repository at this point in the history
  • Loading branch information
k163377 committed Feb 12, 2024
1 parent 0eae78a commit c045748
Showing 1 changed file with 12 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.fasterxml.jackson.module.kotlin

import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonProperty
import com.fasterxml.jackson.databind.JavaType
import com.fasterxml.jackson.databind.cfg.MapperConfig
import com.fasterxml.jackson.databind.introspect.Annotated
import com.fasterxml.jackson.databind.introspect.AnnotatedConstructor
Expand Down Expand Up @@ -73,6 +74,17 @@ internal class KotlinNamesAnnotationIntrospector(
}
}

override fun refineDeserializationType(config: MapperConfig<*>, a: Annotated, baseType: JavaType): JavaType =
(a as? AnnotatedParameter)?.let { _ ->
cache.findKotlinParameter(a)?.let { param ->
val rawType = a.rawType
(param.type.classifier as? KClass<*>)
?.java
?.takeIf { it.isUnboxableValueClass() && it != rawType }
?.let { config.constructType(it) }
}
} ?: baseType

private fun hasCreatorAnnotation(member: AnnotatedConstructor): Boolean {
// don't add a JsonCreator to any constructor if one is declared already

Expand Down

0 comments on commit c045748

Please sign in to comment.