private <T> MethodInvocation<T> throwValidationErrorOnFinalMethods(final Class<T> view, final List<Message> errors,
final T viewInstance) {
return new MethodInvocation<T>() {
public Object intercept(T proxy, Method method, Object[] args, SuperMethod superMethod) {
final Object instance = new Mirror().on(viewInstance).invoke().method(method).withArgs(args);
if (method.getReturnType() == void.class) {
throw new ValidationException(errors);
}
if (view.isAssignableFrom(method.getReturnType())) {