Skip to content

Commit 7f9a501

Browse files
committed
Split serialNameToQName into two separate functions. This addresses
issue #50 in that it makes it a bit easier to override the naming heuristics.
1 parent c005afd commit 7f9a501

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

serialization/src/commonMain/kotlin/nl/adaptivity/xmlutil/serialization/XmlSerializationPolicy.kt

+8-2
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,13 @@ interface XmlSerializationPolicy {
5959
fun isListEluded(serializerParent: SafeParentInfo, tagParent: SafeParentInfo): Boolean
6060
fun isTransparentPolymorphic(serializerParent: SafeParentInfo, tagParent: SafeParentInfo): Boolean
6161

62+
fun serialTypeNameToQName(typeNameInfo: DeclaredNameInfo, parentNamespace: Namespace): QName =
63+
serialNameToQName(typeNameInfo.serialName, parentNamespace)
6264

65+
fun serialUseNameToQName(useNameInfo: DeclaredNameInfo, parentNamespace: Namespace): QName =
66+
serialNameToQName(useNameInfo.serialName, parentNamespace)
67+
68+
@Deprecated("It is recommended to override serialTypeNameToQName and serialUseNameToQName instead")
6369
fun serialNameToQName(serialName: String, parentNamespace: Namespace): QName
6470

6571
data class DeclaredNameInfo(val serialName: String, val annotatedName: QName?)
@@ -180,11 +186,11 @@ open class DefaultXmlSerializationPolicy(
180186
serialKind == PolymorphicKind.OPEN ||
181187
typeNameInfo.serialName == "kotlin.Unit" || // Unit needs a special case
182188
parentSerialKind is PolymorphicKind // child of explict polymorphic uses predefined names
183-
-> serialNameToQName(useName.serialName, parentNamespace)
189+
-> serialUseNameToQName(useName, parentNamespace)
184190

185191
typeNameInfo.annotatedName != null -> typeNameInfo.annotatedName
186192

187-
else -> serialNameToQName(typeNameInfo.serialName, parentNamespace)
193+
else -> serialTypeNameToQName(typeNameInfo, parentNamespace)
188194
}
189195
}
190196

0 commit comments

Comments
 (0)