code: public static void validateObserverMethod(ObserverMethod<?> observerMethod, BeanManager beanManager, ObserverMethod<?> originalObserverMethod) {
          Set<Annotation> qualifiers = observerMethod.getObservedQualifiers();
          if (observerMethod.getBeanClass() == null) {
              throw EventLogger.LOG.observerMethodsMethodReturnsNull("getBeanClass", observerMethod);
          }
          if (observerMethod.getObservedType() == null) {
              throw EventLogger.LOG.observerMethodsMethodReturnsNull("getObservedType", observerMethod);
          }
          Bindings.validateQualifiers(qualifiers, beanManager, observerMethod, "ObserverMethod.getObservedQualifiers");
          if (observerMethod.getReception() == null) {
              throw EventLogger.LOG.observerMethodsMethodReturnsNull("getReception", observerMethod);
          }
          if (observerMethod.getTransactionPhase() == null) {
              throw EventLogger.LOG.observerMethodsMethodReturnsNull("getTransactionPhase", observerMethod);
          }
          if (originalObserverMethod != null && (!observerMethod.getBeanClass().equals(originalObserverMethod.getBeanClass()))) {
              throw EventLogger.LOG.beanClassMismatch(originalObserverMethod, observerMethod);
          }
          if (!(observerMethod instanceof SyntheticObserverMethod) && !hasNotifyOverriden(observerMethod.getClass(), observerMethod)) {
              throw EventLogger.LOG.notifyMethodNotImplemented(observerMethod);
          }
      }
docs: Validates given external observer method.
  
  @param observerMethod the given observer method
  @param beanManager
  @param originalObserverMethod observer method replaced by given observer method (this parameter is optional)