snippet compiler
粘着snippet。
スニペットが否定されるなら、そのコンパイラ作ればいいだけじゃないか。
List<IqConstraint> snippets = new ArrayList<IqConstraint>(); // cast.type = T // cast.expression = a snippets.addAll(Snippet.compile("cast", "($T) ($a)", context.expression())); // override.spec = {@link Override} // override.elements = () snippets.addAll(Snippet.compile("override", "@Override", context.annotation()));
基本的にコンパイルしたコードはソース上に残したくないわけで、でもコンパイル後のコードを変更するだろうから逆コンパイル必須な予感。逆コンパイラって調べたことないんだよなぁ…
しかも、テキストベースなのでalpha変換必須っぽい。しかもalpha変換はパラメータドライブと妙に相性が悪い。道のりは遠い。
追記
// override.spec = {@link Override} // override.elements = () snippets.addAll(Snippet.compile("override", "@Override", context.annotation()));
ってちょっと誤解がありますね。"@Override"っていうスニペットがあったら、普通はコメントにあるような制約ではなく、「@Overrideという注釈そのもの」を新しく作ってドライブしてくれないと気持ちが悪いかも。
んー、こういうときはファクトリを叩くクエリがないといけないのかな。でもそれだと明らかに黒魔術だorz