/** * 生成します。 * * @param context コンテキスト */ public void generate(GenerationContext context) { boolean exists = exists(context.getFile()); if (!context.isOverwrite() && exists) { Logger.info(Message.YUIGEN0004.getMessage(context.getFile().getPath())); return; } File dir = context.getFile().getParentFile(); if (dir != null) { mkdirs(dir); } Writer writer = openWriter(context); try { Template template = getTemplate(context.getTemplateName()); process(template, context.getModel(), writer); } finally { IOUtil.close(writer); } if (exists) { Logger.info(Message.YUIGEN0003.getMessage(context.getFile().getPath())); } else { Logger.info(Message.YUIGEN0002.getMessage(context.getFile().getPath())); } }
/** * {@link Writer}を開きます。 * * @param context コンテキスト * @return {@link Writer} */ protected Writer openWriter(GenerationContext context) { Charset charset = Charset.forName(context.getEncoding()); return new BufferedWriter( new OutputStreamWriter(createFileOutputStream(context.getFile()), charset)); }