예제 #1
0
 /**
  * 生成します。
  *
  * @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()));
   }
 }
예제 #2
0
 /**
  * {@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));
 }