@Override public EventConfig getEventByName(String name) { EventConfig event = eventsByName.get(name); if (event == null) { throw new NoSuchEventException("Can not find any event by name " + name); } return event; }
/** * Validates that the event is registered. * * @param event Event to inspect * * @throws IllegalArgumentException if the event is not registered. **/ protected void validateEvent(EventObject event) throws IllegalArgumentException{ if(!eventRegister.hasEventByClass(event.getClass())) { throw new IllegalArgumentException(event.getClass() + " is not a registerd event."); } }
@Override public void registerEvent(Class<? extends EventObject> eventClass) { EventConfig eventConfig = eventBuilderFactory.getBuilder(eventClass).build(); registerEvent(eventConfig); }
/** * Register a new Event type to the register. * * @param eventClass * New event type to handle * * @throws NoSuchEventException if no event can be found of type eventClass. **/ @Override public void registerEvent(Class<? extends EventObject> eventClass) throws NoSuchEventException { EventConfig eventConfig = eventRegister.getEventByClass(eventClass); if (!eventMap.containsKey(eventClass)) { eventMap.put(eventClass, eventConfig.getListener()); channelRegister.registerEventHandler(this, eventClass); } }
/** * Register @Event annotated events with the channels referenced in the channels attribute. * * @param config The configuration build this far. */ protected void registerEventsAtChannels(EventRegister eventRegister, ChannelFactory channelFactory, ChannelRegister channelRegister) { for (Class<? extends EventObject> eventClass : eventRegister.getEventClasses()) { Event eventAnno = eventClass.getAnnotation(Event.class); if (eventAnno != null && eventAnno.channels().length > 0) { registerEventAtChannelByAnnotation(channelFactory, channelRegister, eventClass, eventAnno); } } }
/** * Import and register events from the eventExporter provided. * * @param eventExporter * Creates the events to register. * @param eventBuilderFactory * Used by the exporter. * @param eventRegister * Event Register. **/ protected void importAndRegisterEvents(EventExporter eventExporter, EventBuilderFactory eventBuilderFactory, EventRegister eventRegister) { Set<EventConfig> events; try { events = eventExporter.exportEvents(eventBuilderFactory); for (EventConfig event : events) { eventRegister.registerEvent(event); } } catch (RuntimeException re) { LOG.error("Error when importing annotated events", re); throw re; } catch (IOException e) { throw new IllegalStateException("Could not import events", e); } }
/** * Returns all lister interfaces form the listener object that is a Ka-Event registered event. * * @param listener * Listener object to inspect. * * @return All interfaces from listener object that is registered with Ka-Event. **/ @SuppressWarnings("unchecked") private Set<Class<? extends EventListener>> getRegisteredInterfaces(EventListener listener) { Set<Class<?>> interfaces = InterfaceUtils.getInterfacesExtending(listener, EventListener.class); Set<Class<? extends EventListener>> registeredEvents = new HashSet<Class<? extends EventListener>>(); for (Class<?> interfaceClass : interfaces) { if (eventRegister.hasEventByInterface((Class<? extends EventListener>) interfaceClass)) { registeredEvents.add((Class<? extends EventListener>) interfaceClass); } } filterInterfaces(registeredEvents); return registeredEvents; }
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); }
public EventConfig getEventByAnnotation(Class<? extends Annotation> eventAnnotation) { EventConfig event = eventsByAnnotation.get(eventAnnotation); if (event == null) { throw new NoSuchEventException("Can not find any event by annotation " + eventAnnotation); } return event; }
/** * Register a new Event type to the register. * * @param eventClass * New event type to handle * * @throws NoSuchEventException if no event can be found of type eventClass. **/ @Override public void registerEvent(Class<? extends EventObject> eventClass) throws NoSuchEventException { EventConfig eventConfig = eventRegister.getEventByClass(eventClass); if (!eventMap.containsKey(eventClass)) { if(eventConfig.getListener() != null) { eventMap.put(eventClass, eventConfig.getListener()); } channelRegister.registerEventHandler(this, eventClass); } }
@Override public void registerEvent(Class<? extends EventObject> eventClass) { EventConfig eventConfig = eventBuilderFactory.getBuilder(eventClass).build(); registerEvent(eventConfig); }
/** * Register @Event annotated events with the channels referenced in the channels attribute. * * @param config The configuration build this far. */ protected void registerEventsAtChannels(EventRegister eventRegister, ChannelFactory channelFactory, ChannelRegister channelRegister) { for (Class<? extends EventObject> eventClass : eventRegister.getEventClasses()) { Event eventAnno = eventClass.getAnnotation(Event.class); if (eventAnno != null && eventAnno.channels().length > 0) { registerEventAtChannelByAnnotation(channelFactory, channelRegister, eventClass, eventAnno); } } }
public void bridgeEvent(EventObject event) { if(eventRegister.hasEventByClass(event.getClass()) && filterExecutor.passFilters(bridgeFilters, event)){ fire(event); } }
@Override public EventConfig getEventByInterface(Class<? extends EventListener> interfaceClass) { EventConfig event = eventsByInterface.get(interfaceClass); if (event == null) { throw new NoSuchEventException("Can not find any event for interface " + interfaceClass); } return event; }
@Override public void fire(EventObject event) throws IllegalArgumentException { EventConfig config = eventRegister.getEventByClass(event.getClass()); if(config == null) { throw new IllegalArgumentException(event.getClass() + " is not a registerd event."); } if(config.getEventQueue() != null) { config.getEventQueue().enqueue(event); } else { eventQueue.enqueue(event); } }
public EventConfig getEventByAnnotation(Class<? extends Annotation> eventAnnotation) { EventConfig event = eventsByAnnotation.get(eventAnnotation); if (event == null) { throw new NoSuchEventException("Can not find any event by annotation " + eventAnnotation); } return event; }
@Override public EventConfig getEventByInterface(Class<? extends EventListener> interfaceClass) { EventConfig event = eventsByInterface.get(interfaceClass); if (event == null) { throw new NoSuchEventException("Can not find any event for interface " + interfaceClass); } return event; }
@Override public EventConfig getEventByName(String name) { EventConfig event = eventsByName.get(name); if (event == null) { throw new NoSuchEventException("Can not find any event by name " + name); } return event; }
/** * Returns Event Configuration by event class. * * @param eventClass Event Class. * * @return Event Configuration associated with eventClass. * @throws NoSuchEventException if no event can be found of type eventClass. **/ @Override public EventConfig getEventByClass(Class<? extends EventObject> eventClass) throws NoSuchEventException{ EventConfig event = eventsByClass.get(eventClass); if (event == null) { throw new NoSuchEventException("Can not find any event for event class " + eventClass); } return event; }
/** * Returns Event Configuration by event class. * * @param eventClass Event Class. * * @return Event Configuration associated with eventClass. * @throws NoSuchEventException if no event can be found of type eventClass. **/ @Override public EventConfig getEventByClass(Class<? extends EventObject> eventClass) throws NoSuchEventException{ EventConfig event = eventsByClass.get(eventClass); if (event == null) { throw new NoSuchEventException("Can not find any event for event class " + eventClass); } return event; }