@Override
    public Void call() throws Exception {
        try {
            // By default , the template calls the flush method on the writer
            // after the template is processed.
            // http://freemarker.org/docs/api/freemarker/template/Template.html#process-java.lang.Object-java.io.Writer-
            template.process(dataModel, writer);
        } finally {
            closeQuietly(writer);
        }
        return null;
    }
Runs the template on the data model. By default the freemarker template calls the flush at the
end of template processing.
aws-java-sdk-code-generator/src/main/java/com/amazonaws/codegen/emitters/FreemarkerGeneratorTask.java