in integrations/maven/src/main/kotlin/io/klibs/integration/maven/androidx/GoogleMavenMasterIndexMetadataXmlDeserializer.kt [12:37]
override fun deserialize(decoder: Decoder): GoogleMavenMasterIndexMetadata {
val xmlDecoder = decoder as? XML.XmlInput
?: return decoder.decodeSerializableValue(GoogleMavenMasterIndexMetadata.serializer())
val reader = xmlDecoder.input
val elements = buildList {
// Skip to first element
var event = reader.eventType
while (event != EventType.START_ELEMENT && event != EventType.END_DOCUMENT) {
event = reader.next()
}
// Process elements
while (event != EventType.END_DOCUMENT) {
if (event == EventType.START_ELEMENT) {
val name = reader.localName
if (name != "metadata") {
val versions = reader.getAttributeValue(null, "versions")
add(GoogleMavenMasterIndexMetadata.Element(name, versions?.split(",") ?: emptyList()))
}
}
event = reader.next()
}
}
return GoogleMavenMasterIndexMetadata(elements)
}