1 | package com.hammurapi.render; |
2 | |
3 | import java.io.File; |
4 | import java.io.IOException; |
5 | import java.io.OutputStream; |
6 | import java.io.OutputStreamWriter; |
7 | import java.util.Locale; |
8 | import java.util.Map; |
9 | |
10 | import com.hammurapi.common.Context; |
11 | |
12 | /** |
13 | * Adapter to make FileRenderer from InlineRenderer |
14 | * @author Pavel Vlasov |
15 | * |
16 | */ |
17 | public class OutputStreamRendererAdapter implements OutputStreamRenderer { |
18 | |
19 | private WriterRenderer renderer; |
20 | |
21 | /** |
22 | * Constructs FileRenderer from WriterRenderer. |
23 | * @param writerRenderer |
24 | */ |
25 | public OutputStreamRendererAdapter(WriterRenderer writerRenderer) { |
26 | this.renderer = writerRenderer; |
27 | } |
28 | |
29 | |
30 | @Override |
31 | public boolean render( |
32 | OutputStream out, |
33 | Map<String, Object> environment, |
34 | Context context, |
35 | String profile, |
36 | Locale locale, |
37 | File outputDir) throws RenderingException { |
38 | |
39 | OutputStreamWriter writer = new OutputStreamWriter(out); |
40 | try { |
41 | return renderer.render(writer, environment, context, profile, locale, outputDir); |
42 | } finally { |
43 | try { |
44 | writer.flush(); |
45 | } catch (IOException e) { |
46 | throw new RenderingException(e); |
47 | } |
48 | } |
49 | } |
50 | |
51 | } |