public void executeEvent(MethodSpecifier eventMethodSpecifier, Scope scope) { Set<Method> beforeMethods = eventMethodSpecifier.getMethods(scope); for (Method beforeMethod : beforeMethods) { ReflectionUtil.invokeWithArgs( beforeMethod, addAndGetComponent(beforeMethod.getDeclaringClass())); } }
Object invokeMethod(Object objectToInvoke) { Method method = getNaturalLanguageMethod().getMethod(); List<ArgumentConverter> argumentConverters = naturalLanguageMethod.getArgumentConverters(); Object[] args = new Object[matcher.groupCount()]; for (int i = 0; i < matcher.groupCount(); i++) { String group = matcher.group(i + 1); args[i] = argumentConverters.get(i).convertArgument(group, naturalLanguageMethod, i); } return ReflectionUtil.invokeWithArgs(method, objectToInvoke, args); }