@Override
  public <R> Optional<R> intercept(MethodInvocation methodInvocation) {
    return getDelegate().intercept(methodInvocation);
  }
@ Override public < R > Optional < R > intercept ( MethodInvocation methodInvocation ) { return getDelegate ( ) . intercept ( methodInvocation ) ; }
Intercepts the {@link MethodInvocation} and handles it by forwarding the invocation
to the required, configured {@link #getDelegate() delegate}.

@param <R> {@link Class} type of the {@link Method} return value.
@param methodInvocation {@link MethodInvocation} being intercepted.
@see org.cp.elements.lang.reflect.MethodInterceptor#intercept(MethodInvocation)
@see org.cp.elements.lang.reflect.MethodInvocation
@see java.util.Optional
@see #getDelegate()