private boolean isValidInvocation(Method method, Object[] arguments) {
        // all listener methods are valid
        if (listenerMethodName == null) {
            return true;
        }

        // method's name matches
        if (listenerMethodName.equals(method.getName())) {
            // no arguments in call are valid
            if (eventPropertyName == null
                    && (arguments == null || arguments.length == 0)) {
                return true;
            }
            // one-argument call is also valid
            if (arguments != null && arguments.length == 1) {
                return true;
            }
        }
        return false;
    }