I actually think QueryInterceptor is too big: hugely bloated with too much logic in it. This is one step towards proper decoupling, we should refactor  more code in the same way. It also takes away the _scope_ from it, it's generally cleaner code in _QI_.
I agree it's not generally reusable: note the class is package private.