ひととおりJavaのコードの操作は出来るようになったかな

NetBeansプラットフォームAPIJavaのコードをある程度動的にいじれるようになったかな。

例えば既存のソースコードを開いてクラスにアノテーションをつけたり、メソッドを追加、引数を削除したりもとりあえずできるようになった。5.5.1までと6.0までと操作方法がまったく違うのでかなりつらかったけど。5.5.1まではどちらかといえばStringとListによる階層構造でシンプルに扱えた半面、型が弱かった。

6.0からはCompiler Tree APIを使う。

具体的にはこの辺を参照。
http://java.sun.com/javase/6/docs/jdk/api/javac/tree/index.html?com/sun/source/tree/Tree.html


そしてそれらを操作するためのTreeMaker。
http://bits.netbeans.org/netbeans/6.5.1/javadoc/org-netbeans-modules-java-source/org/netbeans/api/java/source/TreeMaker.html
これらが扱えればJavaのソースに特定の要素を追加したり、逆に特定のメソッドにアノテーションがついてるかどうか見たりすることも可能。


しかし、ひたすら地道な作業(メソッドをpublicにするだけでもすごいめんどい)が必要になるのでラップしたクラス作らないとたぶんきつい。

新規に作る場合は大概テンプレートを使うだけでいいのであんまり使わないかもしれないけどね。でも、ユーザーがカスタマイズしたコードフォーマットにあわせて設定してくれるので、これらは結構便利かもしれない。

とりあえず英語のドキュメント一切読まずにそれなりにいけるようになったくさい。

さすがに他の言語用のプラグイン作ったり、新しい言語用のプラグイン作る場合はちょっとむずかしそうだけれども、Javaまわりだけならだいたい大丈夫そう。



ひとつのことにはまると英語のドキュメントが読めればおそらく10分くらいで解決できるような単純なものも、一切読まずに進める場合4時間くらいはかかる感じ。それでも、ソースが読めるおかげで大分楽なのかな。オープンソースじゃない場合はドキュメントが読めないと使い方もすべてお手上げだったりするけどその点はオープンソースの利点かも。

逆に言えば英語がまったく読めなくても歩みが遅くていらいらしながらも先には進める。英語がまったく読めないという新人もおいらくらいの一般的な技術力は見につけられるから安心してといいたい。ただし、歩みが遅くても泣かないこと。


Compiler Tree APIはcom.sunパッケージではなくjavaxあたりの標準APIにあっても良いようなきがする。


これで最低限のプラグインの使い方が分かったので(時間が取れれば)1週間以内にはT2FrameworkCubbyプラグイン公開できると思う。ただ、バイナリ置くスペースがないや。レンタルサーバーを追加で借りようかな。食費削ればなんとかなるはず。一食分に使う肉200gを150gに減らしてスパゲティ大目にすればOKかな。ただ、今すんでるところの近くにあるいくつかのスーパーはパスタソースの品揃えがよろしくない。山手線沿いでパスタソースの品揃えが真っ当な駅から近めのスーパーを探すときが来たようだ。