@Override public Object invoke(final Object proxy,final Method method,final Object[] parameters) throws Throwable {
  if (eventTypes.isEmpty() || eventTypes.contains(method.getName())) {
    if (hasMatchingParametersMethod(method)) {
      return MethodUtils.invokeMethod(target,methodName,parameters);
    }
    return MethodUtils.invokeMethod(target,methodName);
  }
  return null;
}

@ Override public Object invoke ( final Object proxy , final Method method , final Object [ ] parameters ) throws Throwable { if ( eventTypes . isEmpty ( ) || eventTypes . contains ( method . getName ( ) ) ) { if ( hasMatchingParametersMethod ( method ) ) { return MethodUtils . invokeMethod ( target , methodName , parameters ) ; } return MethodUtils . invokeMethod ( target , methodName ) ; } return null ; }
handles a method invocation on the proxy object .
