public Set<Element> process( SetMultimap<Class<? extends Annotation>, Element> elementsByAnnotation) { for (Element element : elementsByAnnotation.get(Event.class)) { String eventBusName = Utils.findEnclosingTypeElement(element).getQualifiedName().toString(); // check if an event with the same name already exits! Set<String> eventBusNames = processorContext.getEventContextMap().keySet(); for (String ebName : eventBusNames) { Set<String> eventNames = processorContext.getEventContextMap().get(ebName).keySet(); for (String eName : eventNames) { if (element.getSimpleName().toString().equals(eName)) { messager.printMessage( Diagnostic.Kind.ERROR, String.format( "Event-name: %s is already used. Please choose another name. (It is not possible to work with same event-name and different signatures.", element.getSimpleName().toString())); return ImmutableSet.of(); } } } // create context EventContext eventContext = EventContext.create(messager, types, elements, element); // save eventContext this.processorContext.put(eventBusName, element.getSimpleName().toString(), eventContext); System.out.println("Processing Mvp4gInternalEvent: " + element.getSimpleName()); if (eventContext == null) { return ImmutableSet.of(); // error message already emitted } try { EventWriter writer = EventWriter.builder() .messenger(super.messager) .context(super.processorContext) .elements(super.elements) .filer(super.filer) .types(super.types) .eventContext(eventContext) .build(); writer.write(); } catch (IOException ioe) { createErrorMessage( "Error generating source file for type " + eventContext.getEventClassName(), ioe); } } return ImmutableSet.of(); }