コンポーネントの登録時にフィルタリングしつつ行いたい


Lucyでコンポーネント登録する際に登録をフィルタリングしつつ行いたいようなケースが自分で少しだけ出てきた.
Iterableを継承しているようなコンポーネントで、そのままIterableまで登録されててこれはあかんと思った次第である.
自動で全部登録しちゃうといきつくところまで行ってしまうので、そこをフィルタリングするケースか、と少考してみる.
例えばdepthで見てもいいし、Classで見て指示子を返すのでもいいかもしれない.
そんな要望があるだろうか、とちょっと考える.


例えば、

lucy.register(HogeImpl.class, new LucyRegistrationFilter() {
    Status acceptRegisteration(Class<?> c) {
        //AbstractHogeの場合は案件上の理由で却下
        if(c == AbstractHoge.class) {
            return Status.DENY;
        }
        //javaパッケージでの登録も却下
        if(c.getName().startsWith("java")) {
            return Status.DENY;
        }
        //それ以外はおけ。
        return Status.ACCEPT;
    }
});


とかかな.
どうだろうか.