001 package com.khubla.pragmatach.plugin.json; 002 003 import java.util.Map; 004 005 import javax.servlet.http.HttpServletResponse; 006 007 import com.khubla.pragmatach.framework.api.PragmatachException; 008 import com.khubla.pragmatach.framework.controller.PragmatachController; 009 import com.khubla.pragmatach.framework.controller.impl.AbstractResponse; 010 011 /** 012 * @author tome 013 */ 014 public class JSONResponse extends AbstractResponse { 015 /** 016 * the controller 017 */ 018 private final PragmatachController pragmatachController; 019 020 /** 021 * ctor 022 */ 023 public JSONResponse(Map<String, String> cacheHeaders, PragmatachController pragmatachController) { 024 super(cacheHeaders); 025 this.pragmatachController = pragmatachController; 026 } 027 028 @Override 029 public String getContentType() throws PragmatachException { 030 return "application/json"; 031 } 032 033 @Override 034 public Map<String, String> getHeaders() throws PragmatachException { 035 return super.getCacheHeaders(); 036 } 037 038 @Override 039 public void render(HttpServletResponse httpServletResponse) throws PragmatachException { 040 try { 041 PragmaticControllerSerializer.serialize(pragmatachController, httpServletResponse.getOutputStream()); 042 } catch (final Exception e) { 043 throw new PragmatachException("Exception in render", e); 044 } 045 } 046 }