-いい感じ

http://d.hatena.ne.jp/ashigeru/20060215
トラバが来たので読む。アノテーションを使うやり方でなく、謎言語の枠内で解決していてスマート。問題は謎言語をどこに書くか。順当なら外部テキストファイルかな。このぐらいのものなら、Eclipseでエディタを作るのもちょろい。

class c1 name ClassTmpl declares template() as m1
class c2 name Mixin declares setMember(java.lang.String) as m2 
apply procs.TemplateProcessor.process(c1, m1, m2)
apply procs.TemplateLogger.log(environment, c1, m1, c2, m2)

これが"sample.bind"だとして、コンパイラに食わす。>irenka -bind sample *.java

package procs;
public class TemplateProcessor {
  public void process(ASTClass c, ASTMethod m1, ASTMethod m2) {
    c.delete(m1);
    c.replaceName("Hoge");
    m2.replaceName("setProperty");
    c.add(m2);
    c.deploy();
  }
}

こっちはこのぐらい直感的にシンプルになるといいな。