import java.lang.reflect.Constructor; public class OperationInvokeInterceptor implements Interceptor { private Context context; @Override public boolean before() { System.out.println(DateTimeHelper.now() + " - " + getClass().getName() + " before - création dynamique de l'instance de " + context.getClasseName()); return false; } @Override public Object intercept(Context context) throws Exception { this.context = context; before(); Class classe = Class.forName("Operation" + context.getClasseName()); Constructor methodCtr = classe.getConstructor(new Class[] {}); Operation op = (Operation) methodCtr.newInstance(); Object ob = op.execute(context.getData()); after(); return ob; } @Override public boolean after() { System.out.println(DateTimeHelper.now() + " - " + getClass().getName() + " after"); return false; } }