package com.fsck.k9.mail.transport.smtp;
enum StatusCodeDetail {
UNDEFINED(StatusCodeSubject.UNDEFINED, 0),
OTHER_ADDRESS_STATUS(StatusCodeSubject.ADDRESSING, 0),
BAD_DESTINATION_MAILBOX_ADDRESS(StatusCodeSubject.ADDRESSING, 1),
BAD_DESTINATION_SYSTEM_ADDRESS(StatusCodeSubject.ADDRESSING, 2),
BAD_DESTINATION_MAILBOX_ADDRESS_SYNTAX(StatusCodeSubject.ADDRESSING, 3),
DESTINATION_MAILBOX_ADDRESS_AMBIGUOUS(StatusCodeSubject.ADDRESSING, 4),
DESTINATION_ADDRESS_VALID(StatusCodeSubject.ADDRESSING, 5),
DESTINATION_MAILBOX_MOVED(StatusCodeSubject.ADDRESSING, 6),
BAD_SENDER_MAILBOX_SYNTAX(StatusCodeSubject.ADDRESSING, 7),
BAD_SENDER_SYSTEM_ADDRESS(StatusCodeSubject.ADDRESSING, 8),
OTHER_MAILBOX_STATUS(StatusCodeSubject.MAILBOX, 0),
MAILBOX_DISABLED(StatusCodeSubject.MAILBOX, 1),
MAILBOX_FULL(StatusCodeSubject.MAILBOX, 2),
MESSAGE_LENGTH_EXCEEDED(StatusCodeSubject.MAILBOX, 3),
MAILING_LIST_EXPANSION_PROBLEM(StatusCodeSubject.MAILBOX, 4),
OTHER_MAIL_SYSTEM_STATUS(StatusCodeSubject.MAIL_SYSTEM, 0),
MAIL_SYSTEM_FULL(StatusCodeSubject.MAIL_SYSTEM, 1),
SYSTEM_NOT_ACCEPTING_MESSAGES(StatusCodeSubject.MAIL_SYSTEM, 2),
SYSTEM_INCAPABLE_OF_FEATURE(StatusCodeSubject.MAIL_SYSTEM, 3),
MESSAGE_TOO_BIG(StatusCodeSubject.MAIL_SYSTEM, 4),
SYSTEM_INCORRECTLY_CONFIGURED(StatusCodeSubject.MAIL_SYSTEM, 5),
OTHER_NETWORK_ROUTING(StatusCodeSubject.NETWORK_ROUTING, 0),
NO_ANSWER_FROM_HOST(StatusCodeSubject.NETWORK_ROUTING, 1),
BAD_CONNECTION(StatusCodeSubject.NETWORK_ROUTING, 2),
DIRECTORY_SERVER_FAILURE(StatusCodeSubject.NETWORK_ROUTING, 3),
UNABLE_TO_ROUTE(StatusCodeSubject.NETWORK_ROUTING, 4),
MAIL_SYSTEM_CONGESTION(StatusCodeSubject.NETWORK_ROUTING, 5),
ROUTING_LOOP_DETECTED(StatusCodeSubject.NETWORK_ROUTING, 6),
DELIVERY_TIME_EXPIRED(StatusCodeSubject.NETWORK_ROUTING, 7),
OTHER_MAIL_DELIVERY_PROTOCOL(StatusCodeSubject.MAIL_DELIVERY_PROTOCOL, 0),
INVALID_COMMAND(StatusCodeSubject.MAIL_DELIVERY_PROTOCOL, 1),
SYNTAX_ERROR(StatusCodeSubject.MAIL_DELIVERY_PROTOCOL, 2),
TOO_MANY_RECIPIENTS(StatusCodeSubject.MAIL_DELIVERY_PROTOCOL, 3),
INVALID_COMMAND_ARGUMENTS(StatusCodeSubject.MAIL_DELIVERY_PROTOCOL, 4),
WRONG_PROTOCOL_VERSION(StatusCodeSubject.MAIL_DELIVERY_PROTOCOL, 5),
OTHER_MESSAGE_CONTENT_OR_MEDIA(StatusCodeSubject.MESSAGE_CONTENT_OR_MEDIA, 0),
MEDIA_NOT_SUPPORTED(StatusCodeSubject.MESSAGE_CONTENT_OR_MEDIA, 1),
CONVERSION_REQUIRED_AND_PROHIBITED(StatusCodeSubject.MESSAGE_CONTENT_OR_MEDIA, 2),
CONVERSION_REQUIRED_BUT_UNSUPPORTED(StatusCodeSubject.MESSAGE_CONTENT_OR_MEDIA, 3),
CONVERSION_WITH_LOSS_PERFORMED(StatusCodeSubject.MESSAGE_CONTENT_OR_MEDIA, 4),
CONVERSION_FAILED(StatusCodeSubject.MESSAGE_CONTENT_OR_MEDIA, 5),
OTHER_SECURITY_OR_POLICY_STATUS(StatusCodeSubject.SECURITY_OR_POLICY_STATUS, 0),
DELIVERY_NOT_AUTHORIZED(StatusCodeSubject.SECURITY_OR_POLICY_STATUS, 1),
MAILING_LIST_EXPANSION_PROHIBITED(StatusCodeSubject.SECURITY_OR_POLICY_STATUS, 2),
SECURITY_CONVERSION_REQUIRED(StatusCodeSubject.SECURITY_OR_POLICY_STATUS, 3),
SECURITY_FEATURES_UNSUPPORTED(StatusCodeSubject.SECURITY_OR_POLICY_STATUS, 4),
CRYPTOGRAPHIC_FAILURE(StatusCodeSubject.SECURITY_OR_POLICY_STATUS, 5),
CRYPTOGRAPHIC_ALGORITHM_UNSUPPORTED(StatusCodeSubject.SECURITY_OR_POLICY_STATUS, 6),
MESSAGE_INTEGRITY_FAILURE(StatusCodeSubject.SECURITY_OR_POLICY_STATUS, 7);
private final StatusCodeSubject subject;
private final int detail;
public static StatusCodeDetail parse(StatusCodeSubject statusCodeSubject, String statusCodeDetailString) {
int value = Integer.parseInt(statusCodeDetailString);
for (StatusCodeDetail detailEnum : StatusCodeDetail.values()) {
if (detailEnum.subject == statusCodeSubject && detailEnum.detail == value) {
return detailEnum;
}
}
return null;
}
StatusCodeDetail(StatusCodeSubject subject, int detail) {
this.subject = subject;
this.detail = detail;
}
}