001 package com.khubla.pragmatach.framework.controller.impl.stat; 002 003 import java.io.InputStream; 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 StaticResourceResponse extends AbstractResponse { 017 /** 018 * InputStream 019 */ 020 private final InputStream resourceInputStream; 021 022 /** 023 * ctor 024 */ 025 public StaticResourceResponse(Map<String, String> cacheHeaders, InputStream resourceInputStream) { 026 super(cacheHeaders); 027 this.resourceInputStream = resourceInputStream; 028 } 029 030 @Override 031 public String getContentType() throws PragmatachException { 032 /* 033 * dunno what content type 034 */ 035 return null; 036 } 037 038 @Override 039 public Map<String, String> getHeaders() throws PragmatachException { 040 return getCacheHeaders(); 041 } 042 043 @Override 044 public int getHTTPCode() { 045 if (null != resourceInputStream) { 046 return HttpServletResponse.SC_OK; 047 } else { 048 return HttpServletResponse.SC_NOT_FOUND; 049 } 050 } 051 052 @Override 053 public void render(HttpServletResponse httpServletResponse) throws PragmatachException { 054 try { 055 if (null != resourceInputStream) { 056 IOUtils.copy(resourceInputStream, httpServletResponse.getOutputStream()); 057 } 058 } catch (final Exception e) { 059 throw new PragmatachException("Exception in render", e); 060 } 061 } 062 }