001    package com.khubla.pragmatach.framework.controller.impl.trivial;
002    
003    import java.io.PrintWriter;
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 TrivialResponse extends AbstractResponse {
015            /**
016             * http code
017             */
018            private final int httpCode;
019            /**
020             * response
021             */
022            private final String response;
023    
024            /**
025             * ctor
026             */
027            public TrivialResponse(Map<String, String> cacheHeaders, int httpCode) {
028                    super(cacheHeaders);
029                    response = null;
030                    this.httpCode = httpCode;
031            }
032    
033            /**
034             * ctor
035             */
036            public TrivialResponse(Map<String, String> cacheHeaders, String response,
037                            int httpCode) {
038                    super(cacheHeaders);
039                    this.response = response;
040                    this.httpCode = httpCode;
041            }
042    
043            @Override
044            public String getContentType() throws PragmatachException {
045                    // dunno
046                    return null;
047            }
048    
049            @Override
050            public Map<String, String> getHeaders() throws PragmatachException {
051                    return getCacheHeaders();
052            }
053    
054            @Override
055            public int getHTTPCode() {
056                    return httpCode;
057            }
058    
059            @Override
060            public void render(HttpServletResponse httpServletResponse)
061                            throws PragmatachException {
062                    try {
063                            if (null != response) {
064                                    final PrintWriter printWriter = new PrintWriter(
065                                                    httpServletResponse.getOutputStream());
066                                    printWriter.write(response);
067                                    printWriter.flush();
068                                    printWriter.close();
069                            }
070                    } catch (final Exception e) {
071                            throw new PragmatachException("Exception in render", e);
072                    }
073            }
074    }