001 package com.khubla.pragmatach.framework.controller.impl.streaming; 002 003 import java.io.InputStream; 004 import java.util.Map; 005 006 import javax.servlet.http.HttpServletResponse; 007 008 import com.khubla.pragmatach.framework.api.PragmatachException; 009 import com.khubla.pragmatach.framework.controller.impl.AbstractResponse; 010 011 /** 012 * @author tome 013 */ 014 public class StreamingResponse extends AbstractResponse { 015 /** 016 * streaming controller 017 */ 018 private final StreamingController streamingController; 019 /** 020 * input stream 021 */ 022 private final InputStream inputStream; 023 024 public StreamingResponse(Map<String, String> cacheHeaders, StreamingController streamingController, InputStream inputStream) { 025 super(cacheHeaders); 026 this.streamingController = streamingController; 027 this.inputStream = inputStream; 028 } 029 030 @Override 031 public String getContentType() throws PragmatachException { 032 return null; 033 } 034 035 @Override 036 public Map<String, String> getHeaders() throws PragmatachException { 037 return null; 038 } 039 040 public StreamingController getStreamingController() { 041 return streamingController; 042 } 043 044 @Override 045 public void render(HttpServletResponse httpServletResponse) throws PragmatachException { 046 try { 047 streamingController.render(inputStream, httpServletResponse.getOutputStream()); 048 } catch (final Exception e) { 049 throw new PragmatachException("Exception in render", e); 050 } 051 } 052 }