in wilma-extras/lookAndSayService/src/main/java/com/epam/wilma/extras/lookandsayservice/LookAndSayServiceInterceptor.java [63:108]
public String handleRequest(HttpServletRequest httpServletRequest, String request, HttpServletResponse httpServletResponse) {
String myMethod = httpServletRequest.getMethod();
boolean myCall = request.equalsIgnoreCase(this.getClass().getSimpleName() + HANDLED_SERVICE);
//set default response
String response = "{ \"incorrectServiceCall\": \"" + myMethod + ":" + request + "\" }";
httpServletResponse.setStatus(HttpServletResponse.SC_NOT_FOUND);
String startingText = httpServletRequest.getParameter("number");
String iterationText = httpServletRequest.getParameter("iterations");
int iterations;
try {
iterations = Integer.parseInt(iterationText);
} catch (NumberFormatException e) {
iterations = 1;
}
long startingSequence;
try {
startingSequence = Long.parseLong(startingText);
} catch (NumberFormatException e) {
startingSequence = -1;
}
//handle the call
if (myCall && startingSequence >= 0) {
if (isRequestIssue(startingText.length(), iterations)) {
response = "{\n \"serviceCalculationProblem\": \"Specified initial string and requested number of iterations would take unacceptable long time.\"\n}";
} else {
response = startingText;
while (iterations > 0) {
response = handleIteration(response);
iterations--;
}
//formulate the response
response = "{\n \"number\": \"" + startingSequence
+ "\",\n \"iterations\": \"" + iterationText
+ "\",\n \"serviceResult\": \"" + response
+ "\",\n \"length\": \"" + response.length() + "\"\n}";
httpServletResponse.setStatus(HttpServletResponse.SC_OK);
}
}
return response;
}