1 package com.atlassian.plugin.webresource.transformer;
2
3 import com.atlassian.plugin.servlet.DownloadException;
4 import com.atlassian.plugin.servlet.DownloadableResource;
5 import org.apache.commons.lang.StringUtils;
6
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
9 import java.io.*;
10
11
12
13
14
15
16
17
18 public abstract class AbstractTransformedDownloadableResource implements DownloadableResource
19 {
20 private final DownloadableResource originalResource;
21
22 public AbstractTransformedDownloadableResource(DownloadableResource originalResource) {
23 this.originalResource = originalResource;
24 }
25
26 public boolean isResourceModified(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) {
27 return originalResource.isResourceModified(httpServletRequest, httpServletResponse);
28 }
29
30 public void serveResource(HttpServletRequest httpServletRequest, HttpServletResponse response) throws DownloadException
31 {
32
33 final String contentType = getContentType();
34 if (StringUtils.isNotBlank(contentType))
35 {
36 response.setContentType(contentType);
37 }
38
39 OutputStream out;
40 try
41 {
42 out = response.getOutputStream();
43 }
44 catch (final IOException e)
45 {
46 throw new DownloadException(e);
47 }
48
49 streamResource(out);
50 }
51
52 public String getContentType() {
53 return originalResource.getContentType();
54 }
55
56 protected DownloadableResource getOriginalResource()
57 {
58 return originalResource;
59 }
60 }