@Override public <T> Set<ObserverMethod<? super T>> resolveObserverMethods(final T event, final EventMetadataImpl metadata) { final Set<ObserverMethod<? super T>> set = new HashSet<>(); set.addAll(getNotificationManager().resolveObservers(event, metadata, false)); if (isEvent(event)) { final BeanManagerImpl parentBm = getParentBm(); if (parentBm != null) { set.addAll(parentBm.getNotificationManager().resolveObservers(event, metadata, false)); } } // else nothing since extensions are loaded by classloader so we already have it return set; }
@Override public <T> Set<ObserverMethod<? super T>> resolveObserverMethods(final T event, final EventMetadata metadata) { final Class<?> eventClass = event.getClass(); if (ClassUtil.isDefinitionContainsTypeVariables(ClassUtil.getClass(metadata.getType()))) { throw new IllegalArgumentException("Event type can not contain type variables. Event class is : " + eventClass); } final Set<ObserverMethod<? super T>> set = new HashSet<ObserverMethod<? super T>>(); set.addAll(getNotificationManager().resolveObservers(event, metadata)); if (isEvent(eventClass)) { set.addAll(getParentBm().getNotificationManager().resolveObservers(event, metadata)); } // else nothing since extensions are loaded by classloader so we already have it return set; }
@Override public void fireEvent(final Object event, final EventMetadata metadata, final boolean isLifecycleEvent) { final Class<?> eventClass = event.getClass(); if (ClassUtil.isDefinitionContainsTypeVariables(ClassUtil.getClass(metadata.getType()))) { throw new IllegalArgumentException("Event class : " + event.getClass().getName() + " can not be defined as generic type"); } getNotificationManager().fireEvent(event, metadata, isLifecycleEvent); if (isEvent(eventClass)) { getParentBm().getNotificationManager().fireEvent(event, metadata, isLifecycleEvent); } }
@Override public void fireEvent(final Object event, final EventMetadataImpl metadata, final boolean isLifecycleEvent) { getNotificationManager().fireEvent(event, metadata, isLifecycleEvent); if (isEvent(event)) { final BeanManagerImpl parentBm = getParentBm(); if (parentBm != null) { parentBm.getNotificationManager().fireEvent(event, metadata, isLifecycleEvent); } } }