Because Meta Programming must be easy.

Usage

SomeClass proxy = new Mirror().proxify(SomeClass.class)
       
.interceptingWith(new YourCustomMethodInterceptor());
The method interceptingWith receives any number of objects that implement net.vidageek.mirror.proxy.dsl.MethodInterceptor. These are called one after another until one of them accepts intercepting the invoked method.