package syslog.controller;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.web.servlet.ModelAndView;
import syslog.business.CsvTransformer;
import syslog.business.SimpleFilterManager;
import syslog.model.DataObject;
/**
* Controller pro zobrazeni filtru ve formatu CSV na webu
* @author fero
* @version 1.0
* @created 20-XI-2008 16:22:46
*/
public class WebController extends AbstractController {
private static Logger logger = Logger.getLogger("syslog.controller.WebController");
/**
* Zpracuje pozadavek na zobrazeni filtru z weboveho prohlizece
* @param HttpServletRequest request
* @param HttpServletResponse response
* @return ModelAndView
*/
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response){
if (!request.getParameterMap().containsKey("filter")) {
response.setStatus(response.SC_NOT_FOUND);
logger.warn("Neexistujici parametr filtru");
return null;
}
String url = request.getParameter("filter");
SimpleFilterManager manager = new SimpleFilterManager();
manager.setTransformer( new CsvTransformer() );
DataObject dataObj = manager.realizeFilter(url);
Map<String, Object> model = new HashMap<String, Object>();
model.put("data", dataObj.getData());
response.setHeader("Content-Type:", "text/plain");
logger.info("Zobrazen filtr " + url + " ve formatu CSV");
return new ModelAndView("filter", "output", model);
}
}