@Override protected boolean matches(Resolvable resolvable, ObserverMethod<?> observer) { if (!rules.matches(observer.getObservedType(), resolvable.getTypes())) { return false; } if (!Beans.containsAllQualifiers(QualifierInstance.of(observer.getObservedQualifiers(), metaAnnotationStore), resolvable.getQualifiers())) { return false; } if (observer instanceof ContainerLifecycleEventObserverMethod) { ContainerLifecycleEventObserverMethod<?> lifecycleObserver = (ContainerLifecycleEventObserverMethod<?>) observer; if (resolvable instanceof ProcessAnnotatedTypeEventResolvable && !lifecycleObserver.getRequiredAnnotations().isEmpty()) { // this is a ProcessAnnotatedType observer method with @WithAnnotations and a resolvable for ProcessAnnotatedType ProcessAnnotatedTypeEventResolvable patResolvable = (ProcessAnnotatedTypeEventResolvable) resolvable; return patResolvable.containsRequiredAnnotations(lifecycleObserver.getRequiredAnnotations()); } } else { return !isContainerLifecycleEvent(resolvable); // container lifecycle events are only delivered to extensions } return true; }
@Override protected boolean matches(Resolvable resolvable, ObserverMethod<?> observer) { if (!rules.matches(observer.getObservedType(), resolvable.getTypes())) { return false; } if (!Beans.containsAllQualifiers(QualifierInstance.of(observer.getObservedQualifiers(), metaAnnotationStore), resolvable.getQualifiers())) { return false; } if (observer instanceof ContainerLifecycleEventObserverMethod) { ContainerLifecycleEventObserverMethod<?> lifecycleObserver = (ContainerLifecycleEventObserverMethod<?>) observer; if (resolvable instanceof ProcessAnnotatedTypeEventResolvable && !lifecycleObserver.getRequiredAnnotations().isEmpty()) { // this is a ProcessAnnotatedType observer method with @WithAnnotations and a resolvable for ProcessAnnotatedType ProcessAnnotatedTypeEventResolvable patResolvable = (ProcessAnnotatedTypeEventResolvable) resolvable; return patResolvable.containsRequiredAnnotations(lifecycleObserver.getRequiredAnnotations()); } } else { return !isContainerLifecycleEvent(resolvable); // container lifecycle events are only delivered to extensions } return true; }
@Override protected boolean matches(Resolvable resolvable, ObserverMethod<?> observer) { if (!rules.matches(observer.getObservedType(), resolvable.getTypes())) { return false; } if (!Beans.containsAllQualifiers(QualifierInstance.of(observer.getObservedQualifiers(), metaAnnotationStore), resolvable.getQualifiers())) { return false; } if (observer instanceof ExtensionObserverMethodImpl<?, ?>) { ExtensionObserverMethodImpl<?, ?> extensionObserver = (ExtensionObserverMethodImpl<?, ?>) observer; if (resolvable instanceof ProcessAnnotatedTypeEventResolvable && !extensionObserver.getRequiredAnnotations().isEmpty()) { // this is a ProcessAnnotatedType observer method with @WithAnnotations and a resolvable for ProcessAnnotatedType ProcessAnnotatedTypeEventResolvable patResolvable = (ProcessAnnotatedTypeEventResolvable) resolvable; return patResolvable.containsRequiredAnnotations(extensionObserver.getRequiredAnnotations()); } } else { return !isContainerLifecycleEvent(resolvable); // container lifecycle events are only delivered to extensions } return true; }
@Override protected boolean matches(Resolvable resolvable, ObserverMethod<?> observer) { if (!rules.matches(observer.getObservedType(), resolvable.getTypes())) { return false; } if (!Beans.containsAllQualifiers(QualifierInstance.of(observer.getObservedQualifiers(), metaAnnotationStore), resolvable.getQualifiers())) { return false; } if (observer instanceof ContainerLifecycleEventObserverMethod) { ContainerLifecycleEventObserverMethod<?> lifecycleObserver = (ContainerLifecycleEventObserverMethod<?>) observer; if (resolvable instanceof ProcessAnnotatedTypeEventResolvable && !lifecycleObserver.getRequiredAnnotations().isEmpty()) { // this is a ProcessAnnotatedType observer method with @WithAnnotations and a resolvable for ProcessAnnotatedType ProcessAnnotatedTypeEventResolvable patResolvable = (ProcessAnnotatedTypeEventResolvable) resolvable; return patResolvable.containsRequiredAnnotations(lifecycleObserver.getRequiredAnnotations()); } } else { return !isContainerLifecycleEvent(resolvable); // container lifecycle events are only delivered to extensions } return true; }
@Override protected boolean matches(Resolvable resolvable, ObserverMethod<?> observer) { if (!rules.matches(observer.getObservedType(), resolvable.getTypes())) { return false; } if (!Beans.containsAllQualifiers(QualifierInstance.of(observer.getObservedQualifiers(), metaAnnotationStore), resolvable.getQualifiers())) { return false; } if (observer instanceof ContainerLifecycleEventObserverMethod) { ContainerLifecycleEventObserverMethod<?> lifecycleObserver = (ContainerLifecycleEventObserverMethod<?>) observer; if (resolvable instanceof ProcessAnnotatedTypeEventResolvable && !lifecycleObserver.getRequiredAnnotations().isEmpty()) { // this is a ProcessAnnotatedType observer method with @WithAnnotations and a resolvable for ProcessAnnotatedType ProcessAnnotatedTypeEventResolvable patResolvable = (ProcessAnnotatedTypeEventResolvable) resolvable; return patResolvable.containsRequiredAnnotations(lifecycleObserver.getRequiredAnnotations()); } } else { return !isContainerLifecycleEvent(resolvable); // container lifecycle events are only delivered to extensions } return true; }
@Override protected boolean matches(Resolvable resolvable, ObserverMethod<?> observer) { if (!rules.matches(observer.getObservedType(), resolvable.getTypes())) { return false; } if (!Beans.containsAllQualifiers(QualifierInstance.of(observer.getObservedQualifiers(), metaAnnotationStore), resolvable.getQualifiers())) { return false; } if (observer instanceof ContainerLifecycleEventObserverMethod) { ContainerLifecycleEventObserverMethod<?> lifecycleObserver = (ContainerLifecycleEventObserverMethod<?>) observer; if (resolvable instanceof ProcessAnnotatedTypeEventResolvable && !lifecycleObserver.getRequiredAnnotations().isEmpty()) { // this is a ProcessAnnotatedType observer method with @WithAnnotations and a resolvable for ProcessAnnotatedType ProcessAnnotatedTypeEventResolvable patResolvable = (ProcessAnnotatedTypeEventResolvable) resolvable; return patResolvable.containsRequiredAnnotations(lifecycleObserver.getRequiredAnnotations()); } } else { return !isContainerLifecycleEvent(resolvable); // container lifecycle events are only delivered to extensions } return true; }