I have the code which can be done in two ways :
SWITCH WITHOUT BREAK(for common code in case)
ResultCodes resCode = ResultCodes.fromResponseCode(resultCode);
switch (resCode) {
case SUCCESS:
if(userIdentity != null)
Logger.logInfo(MODULE, "User Authenticated Successfully, UseIdentity: " +userIdentity);
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = SUCCESS;
break;
case REDIRECT:
url = resultMap.get(WebinKeyConstants.REDIRECTION_URL.val);
Logger.logInfo(MODULE, "Redirecting to URL : " + url);
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = REDIRECT;
break;
case AUTHENTICATION_FAIL:
case USER_ACCOUNT_BLOCKED:
case USER_ACCOUNT_INACTIVE:
case USER_ACCOUNT_SUSPENDED:
case USER_ACCOUNT_TERMINATED:
case USER_ACCOUNT_BLOCKED_ALERT:
case OTP_SEND_SUCCESS:
case USER_PROFILE_NOT_FOUND:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
}
In above scenario there is only one break implying that all case will execute the same code.
WITH BREAK FOR EACH CASE(for common code in case)
Above scenario can be achieved in other way too, as shown below
ResultCodes resCode = ResultCodes.fromResponseCode(resultCode);
switch (resCode) {
case SUCCESS:
if(userIdentity != null)
Logger.logInfo(MODULE, "User Authenticated Successfully, UseIdentity: " +userIdentity);
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = SUCCESS;
break;
case REDIRECT:
url = resultMap.get(WebinKeyConstants.REDIRECTION_URL.val);
Logger.logInfo(MODULE, "Redirecting to URL : " + url);
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = REDIRECT;
break;
case AUTHENTICATION_FAIL:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
case USER_ACCOUNT_BLOCKED:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
case USER_ACCOUNT_INACTIVE:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
case USER_ACCOUNT_SUSPENDED:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
case USER_ACCOUNT_TERMINATED:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
case USER_ACCOUNT_BLOCKED_ALERT:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
case OTP_SEND_SUCCESS:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
case USER_PROFILE_NOT_FOUND:
resultMessage=getText(resCode.responseCode.toString());
RESPONSE = ERROR;
break;
}
Which one is better to use? Is there any performance issue?