fun parse()

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
            )
        }