-コードテンプレート

Javaコードテンプレートエンジンを考え、飲みネタにディスカッションしたところ、有効な感じかつ出来そうだということに。コードジェネレートの仕組みは生成コードの組み立てが結局は文字列リテラルの連結操作によって泥臭くやることになるのだけれども、普通にコンパイル可能のJavaソースからパース結果構造(AST)の一部を取り出してテンプレートとして再利用できると泥臭いことなく、テンプレートとするJavaソース中のメソッドも普通にユニットテストができて良いかと思う。

write("return _name != null ? _name :\"\"");

なんてことをするところ、

public Clazz {
  @Var
  private String _member;
  public Clazz(String test) {
    _member = test;
  }
  public String template() {
    return _member != null ? _member : "";
  }  
}
Fragment f = FragmentFactory.getFragment(Clazz.class);
f.apply("_name");
f = f.getMethod("template").getBody();
write(f.toString());

とまあ、こんな風な趣旨ね。深く検討できてないんで、支離滅裂だが。。。