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