/**
*
*/
package org.inbio.m3s.web.exception.handler;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.inbio.m3s.web.exception.ValidationException;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
/**
* @author jgutierrez
*
*/
public class GenericExceptionHandler implements HandlerExceptionResolver {
protected static Log logger = LogFactory.getLog(GenericExceptionHandler.class);
private String errorMessageKey = "errorMessageKey";
/* (non-Javadoc)
* @see org.springframework.web.servlet.HandlerExceptionResolver#resolveException(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, java.lang.Object, java.lang.Exception)
*/
public ModelAndView resolveException(HttpServletRequest request,
HttpServletResponse response, Object handler, Exception ex) {
ModelAndView errorMav;
logger.debug("resolving Exception");
if (ex instanceof ValidationException){
logger.debug("is a ValidationException");
ValidationException ve = (ValidationException) ex;
errorMav = new ModelAndView(ve.getViewName());
errorMav.addObject(errorMessageKey, ve.getErrorMessageKey());
errorMav.addAllObjects(ve.getModelElements());
return errorMav;
}else if (ex instanceof IllegalArgumentException){
errorMav = new ModelAndView("editStep2");
errorMav.addObject("error", "ERROR: "+ex.getMessage());
return errorMav;
//return new ModelAndView("arraystoreView");
} else
return null;
}
}