-セッションその後

http://d.hatena.ne.jp/masataka_k/20070524/1179971795
SeasarConにてセッションやらせていただきました。基本的に、あなたは知らなくてよかった世界、なのですが思ったよりたくさんの方でした。ありがとうございます。反応としてはソースコードからテンプレート的にASTを取り出して再利用するところにあったかな。

/**
 * @when ...
 *    template = {@link #foo()}
 */
public void bar(CtMethod template, ...) {
   ... template.newInvocation(...) ...
}

こんな感じでJavadocのlinkインラインタグを利用するアイディアをプレゼン&デモでは示しましたが、これは自分的にはヒットだと思ってるところです。メソッドリテラルJavaには無いのでその指示表記が悩ましかったところ、Javaエディタでこの「{@link ...}」はコード補完が利くことを思い出し、採用した仕様でした。特別にプラグインを作らなくても、それっぽく動くわけです。Javadoc中に書かれたASTに対するクエリー言語の型解決および戻りの受け入れは、自由に定義できる処理メソッドの引数で行うというのもアイディアでした。SQLに例えると、メソッド引数の「CtMethod template, ...」のところがselect句で、Javadocの「template = {@link #foo()}」などがwhere句のような仕組みです。抽出したタブラの行数分、メソッドが呼ばれるというのもカーソルフェッチだとでも考えましょうか。

開発は粛々進めていってIrenkaは6月末にα版、9月末にリリースというスケジュールで。ドキュメントも手間隙と金かけてw作ります。