in src/main/kotlin/org/opensearch/commons/notifications/model/SmtpAccount.kt [76:111]
fun parse(parser: XContentParser): SmtpAccount {
var host: String? = null
var port: Int? = null
var method: MethodType? = null
var fromAddress: String? = null
XContentParserUtils.ensureExpectedToken(
XContentParser.Token.START_OBJECT,
parser.currentToken(),
parser
)
while (parser.nextToken() != XContentParser.Token.END_OBJECT) {
val fieldName = parser.currentName()
parser.nextToken()
when (fieldName) {
HOST_TAG -> host = parser.text()
PORT_TAG -> port = parser.intValue()
METHOD_TAG -> method = MethodType.fromTagOrDefault(parser.text())
FROM_ADDRESS_TAG -> fromAddress = parser.text()
else -> {
parser.skipChildren()
log.info("Unexpected field: $fieldName, while parsing SmtpAccount")
}
}
}
host ?: throw IllegalArgumentException("$HOST_TAG field absent")
port ?: throw IllegalArgumentException("$PORT_TAG field absent")
method ?: throw IllegalArgumentException("$METHOD_TAG field absent")
fromAddress ?: throw IllegalArgumentException("$FROM_ADDRESS_TAG field absent")
return SmtpAccount(
host,
port,
method,
fromAddress
)
}