in alerting/src/main/kotlin/org/opensearch/alerting/util/IndexUtils.kt [55:83]
fun getSchemaVersion(mapping: String): Int {
val xcp = XContentType.JSON.xContent().createParser(
NamedXContentRegistry.EMPTY,
LoggingDeprecationHandler.INSTANCE, mapping
)
while (!xcp.isClosed) {
val token = xcp.currentToken()
if (token != null && token != XContentParser.Token.END_OBJECT && token != XContentParser.Token.START_OBJECT) {
if (xcp.currentName() != _META) {
xcp.nextToken()
xcp.skipChildren()
} else {
while (xcp.nextToken() != XContentParser.Token.END_OBJECT) {
when (xcp.currentName()) {
SCHEMA_VERSION -> {
val version = xcp.intValue()
require(version > -1)
return version
}
else -> xcp.nextToken()
}
}
}
}
xcp.nextToken()
}
return NO_SCHEMA_VERSION
}