001 package com.hammurapi.render;
002
003 import java.io.File;
004 import java.io.IOException;
005 import java.io.OutputStream;
006 import java.io.OutputStreamWriter;
007 import java.util.Locale;
008 import java.util.Map;
009
010 import com.hammurapi.common.Context;
011
012 /**
013 * Adapter to make FileRenderer from InlineRenderer
014 * @author Pavel Vlasov
015 *
016 */
017 public class OutputStreamRendererAdapter implements OutputStreamRenderer {
018
019 private WriterRenderer renderer;
020
021 /**
022 * Constructs FileRenderer from WriterRenderer.
023 * @param writerRenderer
024 */
025 public OutputStreamRendererAdapter(WriterRenderer writerRenderer) {
026 this.renderer = writerRenderer;
027 }
028
029
030 @Override
031 public boolean render(
032 OutputStream out,
033 Map<String, Object> environment,
034 Context context,
035 String profile,
036 Locale locale,
037 File outputDir) throws RenderingException {
038
039 OutputStreamWriter writer = new OutputStreamWriter(out);
040 try {
041 return renderer.render(writer, environment, context, profile, locale, outputDir);
042 } finally {
043 try {
044 writer.flush();
045 } catch (IOException e) {
046 throw new RenderingException(e);
047 }
048 }
049 }
050
051 }