private void merge(OutputBuilder builder, Writer writer) throws IOException { VelocityContext context = builder.getContext(); Optional<Type> type = builder.getType(); Collection<String> imports = cleanupImports(builder.getImports(), type); if (type.isPresent()) { context.put("impl", type.get()); } context.put("processor", builder.getProcessor()); context.put("processingDate", PROCESSING_DATE_FORMAT.format(new Date())); context.put("imports", imports); getEngine().mergeTemplate(builder.getTemplateFile(), ENCODING, context, writer); }