-クラスリスト

HDD故障の不安と失意の中、ふと帰りのバス(普段は歩くところ、ダルダルになっちゃったので)で考えました。S2とかでも自動登録でクラスをイテレートするのに、普通にはできないためいろいろ工夫しています。というところ、コンパイル時に、各パッケージ毎にクラスのリストを特定の名前のファイルに書いておけばいいわけね。たとえばclass.listとかで。。。loader.getResources("class.list")と取ってループかければごっそりいけるわけですな。
で、このリストにいろいろあらかじめ細工しておくと激しくズル(?)ができるように思います。クラスパス全体がコンテナになるような仕組みも作れるかなと。sampleというパッケージに例えば以下のような内容で書くとする。。。

package db
DefaultUserManager
UserManager {
  sample.DefaultUserManager
  sample.db.JdbcUserManager
}

こんな状態で、UserManagerというインターフェイスがDefaultUserManagerとJdbcUserManagerにて実装されていると分かるように、あらかじめ書いておく、と。また、sampleパッケージの下には、dbパッケージがあることも分かる。こういうのも、コンパイルの間、目の前を通っていくクラス群を逐一チェックしておいて分類しておいたものを、コンパイル完了後、各パッケージフォルダに書き出せばいいのだから、実装は単純に思えます。