in src/main/kotlin/org/opensearch/replication/metadata/state/ReplicationStateMetadata.kt [55:85]
fun fromXContent(parser: XContentParser): ReplicationStateMetadata {
var builder = Builder()
if (parser.currentToken() == null) {
parser.nextToken()
}
var token = parser.currentToken()
require(token == XContentParser.Token.START_OBJECT) { "expected start object but got a $token"}
var currentField: String? = null
while (parser.nextToken().also { token = it } !== XContentParser.Token.END_OBJECT) {
if(token == XContentParser.Token.FIELD_NAME) {
currentField = parser.currentName()
} else if (REPLICATION_DETAILS_KEY == currentField) {
val onGoingReplicationDetails = HashMap<String, ReplicationStateParams>()
while(parser.nextToken().also { token = it } != XContentParser.Token.END_OBJECT) {
if (token == XContentParser.Token.FIELD_NAME) {
currentField = parser.currentName()
}
else if(token == XContentParser.Token.START_OBJECT) {
var replicationDetails = parser.mapStrings()
onGoingReplicationDetails[currentField!!] = replicationDetails
} else {
throw IllegalArgumentException("Unexpected token during parsing " +
"replication_metadata[$REPLICATION_DETAILS_KEY] - $token")
}
}
builder.replicationDetails(onGoingReplicationDetails)
}
}
return builder.build()
}