-package-info.java

この前のVisitorパターンもそうでしたが、あることは知ってるけど使いどころが見つからなかったり、何かきっかけがなくて使ってなかったりという機能は多くあります。特にJava1.4やJava5.0あたりで増えた機能は私のJava習得期がJava1.1〜Java1.2のあたりなので特に必要にならなければスルーしてるものが多い。
そんな中、ふとJavaDocの最近の機能であるpackage-info.javaをIkushipeの中に導入してみました。これは5.0からの機能です。昔はHTMLで書いてたものを、Java言語で書けるというものです。Eclipseでもちゃんと認識します。前にOSSのソースコード読んでるときにどこかで見つけ、「あ、HTMLで書かなくてよくなったんだ〜」ぐらいに思っただけなのですが、夏休み3日目にして意に反しなにもやる気がでない中、それでもヒマをもてあましはじめてしまったので書くかな、というもんです。

/**
 * Ikushipeのユーザーアプリケーションにて用いるAPIアノテーションと補助的な
 * APIインターフェイス定義が納められたパッケージ。ユーザーは基本的に、
 * このパッケージのAPI群のみを利用するだけでよいように設計されている。
 * 特に、WebApplication、WebPage、PageModelでPOJO/POJIの型宣言を修飾し、
 * 機能を付加していく。
 */
package org.ashikunep.ikushipe;

各パッケージ内に、package-info.javaというファイルを作ります。これを特につくるウィザードはEclipseで用意されていないので、そういうファイルを作る。で、パッケージ宣言だけします。あとはそのパッケージ宣言に対するJavaDocコメント記述を行えば、JavaDocコンパイラがpackage-info.htmlと同様に取り扱ってくれます。Javaファイル中に記述ができますので、追加的プラグインなしでコード補完でクラス名が書けたりして便利(かと思ったけど、@linkは効かない。残念)。
いくつか手元にあったOSSプロダクトを見てみたけど、あまりこの機能は使われていないみたいです。とりあえず手元ではゼロでした。Tiger機能だからですかね。