何故、IJavaElementのリソースツリーには、Acceptorがいないのか?

IResource#acceptはあるのに、何故、IJavaElement#acceptが無いんよ?
不思議だ。


と言う訳で、コードを書いてみた。まだリリースされてないDoltengには入ってるけど、こんな感じ。

public class JavaElementDeltaAcceptor {

    public static void accept(IJavaElementDelta delta, Visitor visitor) {
        if (visitor.preVisit(delta) && visitor.visit(delta.getElement())
                && visitor.postVisit(delta)) {
            accept(delta.getAffectedChildren(), visitor);
        }
    }

    public static void accept(IJavaElementDelta[] deltas, Visitor visitor) {
        for (int i = 0; i < deltas.length; i++) {
            accept(deltas[i], visitor);
        }
    }

    public static abstract class Visitor {

        protected boolean preVisit(IJavaElementDelta delta) {
            return true;
        }

        protected boolean postVisit(IJavaElementDelta delta) {
            return true;
        }

        protected boolean visit(IJavaElement element) {
            switch (element.getElementType()) {
            case IJavaElement.JAVA_MODEL: {
                return visit((IJavaModel) element);
            }
            case IJavaElement.JAVA_PROJECT: {
                return visit((IJavaProject) element);
            }
            case IJavaElement.PACKAGE_FRAGMENT: {
                return visit((IPackageFragment) element);
            }
            case IJavaElement.COMPILATION_UNIT: {
                return visit((ICompilationUnit) element);
            }
            case IJavaElement.CLASS_FILE: {
                return visit((IClassFile) element);
            }
            default:
                break;
            }
            return true;
        }

        protected boolean visit(IJavaModel model) {
            return true;
        }

        protected boolean visit(IJavaProject project) {
            return true;
        }

        protected boolean visit(IPackageFragmentRoot root) {
            return true;
        }

        protected boolean visit(IPackageFragment fragment) {
            return true;
        }

        protected boolean visit(ICompilationUnit unit) {
            return true;
        }

        protected boolean visit(IClassFile clazz) {
            return true;
        }
    }

コメントやツッコミを希望するます。
よろしくお願いするます。


よく見たら、IJavaElementDeltaに対するAcceptorになってるますが、
まぁ、それはそれって事で。