package plugins.CENO;
/**
* CENO specific error codes.
* They are defined in errorConditions under doc and is the way
* to exchange error messages with the other agents.
*/
public enum CENOErrCode {
//////////////////////
// LCS Agent Errors //
//////////////////////
// LCS Agent internal errors
LCS_HANDLER_URL(2110, CENODocCode.LCS_MALFORMED_URL, ErrAction.LOG),
LCS_HANDLER_URL_MALFORMED(2111, CENODocCode.LCS_MALFORMED_URL, ErrAction.LOG),
LCS_HANDLER_URL_DECODE(2112, CENODocCode.LCS_URL_DECODE_ERR, ErrAction.LOG),
LCS_HANDLER_URL_INVALID(2113, CENODocCode.LCS_WILL_NOT_SERVE, ErrAction.LOG),
LCS_HANDLER_URL_TO_USK(2114, CENODocCode.LCS_MALFORMED_URL, ErrAction.LOG),
LCS_HANDLER_URL_WONT_SERVE(2115, CENODocCode.LCS_WILL_NOT_SERVE, ErrAction.LOG),
LCS_HANDLER_STATIC(2120, CENODocCode.LCS_INTERNAL, ErrAction.LOG),
LCS_HANDLER_STATIC_NOT_FOUND(2121, CENODocCode.LCS_INTERNAL, ErrAction.LOG),
LCS_HANDLER_STATIC_IO(2122, CENODocCode.LCS_INTERNAL, ErrAction.LOG),
LCS_LOOKUP_LOCAL(2130, CENODocCode.LCS_LOOKUP_FAILURE, ErrAction.LOG),
LCS_LOOKUP_ULPR(2140, CENODocCode.LCS_LOOKUP_FAILURE, ErrAction.LOG),
LCS_LOOKUP_ULPR_INIT(2141, CENODocCode.LCS_LOOKUP_FAILURE, ErrAction.RETRY),
LCS_LOOKUP_ULPR_FAILED(2142, CENODocCode.LCS_LOOKUP_FAILURE, ErrAction.LOG),
LCS_DATABASE_CONNECT_FAILED(2150, CENODocCode.RR_DATABASE_FAILURE, ErrAction.LOG),
// LCS inter-agent errors
LCS_CC(2210, CENODocCode.HANDLE_INTERNALLY, ErrAction.LOG),
LCS_CC_COMPOSE(2211, CENODocCode.LCS_INTERNAL, ErrAction.RETRY),
LCS_CC_REACH(2212, CENODocCode.HANDLE_INTERNALLY, ErrAction.RETRY),
LCS_CC_RESPOND(2213, CENODocCode.HANDLE_INTERNALLY, ErrAction.LOG),
// Freenet node errors
LCS_NODE(2300, CENODocCode.LCS_FREENET_NODE_NOT_READY, ErrAction.LOG),
LCS_NODE_INITIALIZING(2301, CENODocCode.LCS_FREENET_NODE_NOT_READY, ErrAction.WAIT),
LCS_NODE_NOT_ENOUGH_PEERS(2302, CENODocCode.LCS_FREENET_COULD_NOT_CONNECT_TO_PEERS, ErrAction.WAIT),
/////////////////////
// RS Agent Errors //
/////////////////////
// RS Agent internal errors
RS_URL(3100, CENODocCode.RS_MALFORMED_URL, ErrAction.LOG),
RS_URL_MALFORMED(3111, CENODocCode.RS_MALFORMED_URL, ErrAction.LOG),
RS_URL_DECODE(3112, CENODocCode.RS_URL_DECODE_ERR, ErrAction.LOG),
RS_HANDLER_URL_INVALID(3113, CENODocCode.RS_WILL_NOT_SERVE, ErrAction.LOG),
RS_URL_TO_USK(3114, CENODocCode.RS_MALFORMED_URL, ErrAction.LOG),
RS_URL_WONT_SERVE(3115, CENODocCode.RS_WILL_NOT_SERVE, ErrAction.LOG),
// RS WoT errors
RS_WOT(3310, CENODocCode.RS_WOT_ERR, ErrAction.LOG),
RS_WOT_NOT_LOADED(3311, CENODocCode.RS_WOT_ERR, ErrAction.WAIT),
RS_WOT_NOT_RESPONDING(3312, CENODocCode.RS_WOT_ERR, ErrAction.RETRY),
RS_WOT_DOWNLOADING(3313, CENODocCode.RS_WOT_ERR, ErrAction.WAIT),
RS_WOT_INIT(3314, CENODocCode.RS_WOT_ERR, ErrAction.WAIT),
RS_WOT_IDENT(3320, CENODocCode.RS_WOT_ERR, ErrAction.LOG),
RS_WOT_IDENT_NOT_AVAIL(3321, CENODocCode.RS_WOT_ERR, ErrAction.LOG),
RS_WOT_IDENT_DOWNLOADING(3322, CENODocCode.RS_WOT_ERR, ErrAction.WAIT),
RS_WOT_IDENT_INSERTION_FAILED(3323, CENODocCode.RS_WOT_ERR, ErrAction.RETRY),
// RS Freemail errors
RS_FREEMAIL(3330, CENODocCode.RS_FREEMAIL_ERR, ErrAction.LOG),
RS_FREEMAIL_NOT_LOADED(3331, CENODocCode.RS_FREEMAIL_ERR, ErrAction.WAIT),
RS_FREEMAIL_NOT_RESPONDING(3332, CENODocCode.RS_FREEMAIL_ERR, ErrAction.RETRY),
RS_FREEMAIL_DOWNLOADING(3333, CENODocCode.RS_FREEMAIL_ERR, ErrAction.WAIT),
RS_FREEMAIL_INIT(3334, CENODocCode.RS_FREEMAIL_ERR, ErrAction.WAIT),
RS_FREEMAIL_NOT_WOT(3335, CENODocCode.RS_FREEMAIL_ERR, ErrAction.LOG),
RS_FREEMAIL_ACC(3340, CENODocCode.RS_FREEMAIL_ERR, ErrAction.LOG),
RS_FREEMAIL_ACC_SETUP(3341, CENODocCode.RS_FREEMAIL_ERR, ErrAction.RETRY),
RS_FREEMAIL_ACC_CONNECT(3342, CENODocCode.RS_FREEMAIL_ERR, ErrAction.RETRY),
RS_FREEMAIL_ACC_CONNECT_NOPROPS(3343, CENODocCode.RS_FREEMAIL_ERR, ErrAction.LOG),
// RS SMTP/IMAP errors
RS_SMTP_ERR(3410, CENODocCode.RS_FREEMAIL_SMTP, ErrAction.RETRY),
RS_IMAP_ERR(3420, CENODocCode.HANDLE_INTERNALLY, ErrAction.RETRY),
/////////////////////
// RR Agent Errors //
/////////////////////
RR(4000, CENODocCode.HANDLE_INTERNALLY, ErrAction.LOG),
RR_DATABASE_OPERATION_FAILED(4001, CENODocCode.RR_DATABASE_FAILURE, ErrAction.LOG),
/////////////////////
// BI Agent Errors //
/////////////////////
BI(6000, CENODocCode.HANDLE_INTERNALLY, ErrAction.LOG);
private final int errCode;
private final CENODocCode docCode;
private final ErrAction errAction;
private CENOErrCode(int errCode, CENODocCode docCode, ErrAction errAction) {
this.errCode = errCode;
this.docCode = docCode;
this.errAction = errAction;
}
/**
* Returns the error code
*/
public int getCode() {
return errCode;
}
/**
* Returns the corresponding error code from the errorConditions document
* Use this method when you need to forward an error code to
* another agent.
*/
public int getDocCode() {
return docCode.getCode();
}
/**
* Returns the appropriate action for the specific error code
*/
public ErrAction getAction() {
return errAction;
}
/**
* Returns an explanatory message
*/
@Override
public String toString() {
return CENOL10n.getInstance().getString(name());
}
/*
* Default action for handling each errCode
*/
public enum ErrAction {
TERMINATE,
RETRY,
WAIT,
LOG,
IGNORE,
}
}