private void addAnnotatedListenerMethod(Object listener, Object sourceObject, Class<? extends Annotation> annotation, Method method, List<EventFilter<? extends EventObject>> filters){ List<EventFilter<? extends EventObject>> regFilters = new ArrayList<EventFilter<? extends EventObject>>(); regFilters.addAll(filters); addEventFilterByAnnotation(listener, method, regFilters); validateAnnotatedEventMethod(listener, method, annotation, eventRegister.getEventByAnnotation(annotation).getEventClass()); addListener(listener, eventRegister.getEventByAnnotation(annotation) .getEventClass(), sourceObject, regFilters); }
Map<Class<? extends Annotation>, Method> methodAnnotations = AnnotationsUtils.findAnnotatedMethods(listener.getClass(), registeredAnnotations); for (Map.Entry<Class<? extends Annotation>, Method> annotation : methodAnnotations.entrySet()){ validateAnnotatedEventMethod(listener, annotation.getValue(), annotation.getKey(), eventRegister.getEventByAnnotation(annotation.getKey()).getEventClass()); addListener(listener, eventRegister.getEventByAnnotation(annotation.getKey()) .getEventClass(), sourceObject, filters); listenerAdded = true;