Class ObserverMethodImpl<T>

  • Type Parameters:
    T - event type
    All Implemented Interfaces:
    javax.enterprise.inject.spi.ObserverMethod<T>, javax.enterprise.inject.spi.Prioritized, OwbObserverMethod<T>
    Direct Known Subclasses:
    ContainerEventObserverMethodImpl

    public class ObserverMethodImpl<T>
    extends Object
    implements OwbObserverMethod<T>
    Defines observers that are declared in observer methods.

    Example:

      public class X {
          
          public void afterLoggedIn(@Observes @Current LoggedInEvent event)
          {
              .....
          }
      }
     
    Above class X instance observes for the event with type LoggedInEvent and event qualifier is Current. Whenever event is fired, its javax.enterprise.inject.spi.ObserverMethod#notify() method is called.

    Version:
    $Rev$ $Date$
    • Constructor Detail

      • ObserverMethodImpl

        public ObserverMethodImpl​(AbstractOwbBean<?> ownerBean,
                                  javax.enterprise.inject.spi.AnnotatedMethod<T> annotatedObserverMethod,
                                  javax.enterprise.inject.spi.AnnotatedParameter<T> annotatedObservesParameter)
        used if the qualifiers and event type are already known, e.g. from the XML.
      • ObserverMethodImpl

        protected ObserverMethodImpl​(AbstractOwbBean<?> ownerBean,
                                     javax.enterprise.inject.spi.AnnotatedMethod<T> annotatedObserverMethod,
                                     javax.enterprise.inject.spi.AnnotatedParameter<T> annotatedObservesParameter,
                                     boolean fireEvent)
    • Method Detail

      • checkObserverCondition

        protected void checkObserverCondition​(javax.enterprise.inject.spi.AnnotatedParameter<T> annotatedObservesParameter)
      • isAsync

        public boolean isAsync()
        Specified by:
        isAsync in interface javax.enterprise.inject.spi.ObserverMethod<T>
      • getPriority

        public int getPriority()
        Specified by:
        getPriority in interface javax.enterprise.inject.spi.ObserverMethod<T>
        Specified by:
        getPriority in interface javax.enterprise.inject.spi.Prioritized
      • getInjectionPoints

        public Set<javax.enterprise.inject.spi.InjectionPoint> getInjectionPoints()
        Returns the InjectionPoints for the parameters of this observer method.
        Specified by:
        getInjectionPoints in interface OwbObserverMethod<T>
      • notify

        public void notify​(T event)
        Deprecated.
        actually. Use the method with the EventContext instead
        Specified by:
        notify in interface javax.enterprise.inject.spi.ObserverMethod<T>
      • notify

        public void notify​(javax.enterprise.inject.spi.EventContext<T> eventContext)
        Specified by:
        notify in interface javax.enterprise.inject.spi.ObserverMethod<T>
      • getMethodArguments

        protected List<org.apache.webbeans.event.ObserverMethodImpl.ObserverParams> getMethodArguments​(Object event,
                                                                                                       javax.enterprise.inject.spi.EventMetadata metadata)
        Gets observer method parameters.
        Parameters:
        event - event payload
        Returns:
        observer method parameters
      • getBeanClass

        public Class<?> getBeanClass()
        Returns observer owner bean.
        Specified by:
        getBeanClass in interface javax.enterprise.inject.spi.ObserverMethod<T>
        Returns:
        the bean
      • getObservedQualifiers

        public Set<Annotation> getObservedQualifiers()
        Specified by:
        getObservedQualifiers in interface javax.enterprise.inject.spi.ObserverMethod<T>
      • getObservedType

        public Type getObservedType()
        Specified by:
        getObservedType in interface javax.enterprise.inject.spi.ObserverMethod<T>
      • getReception

        public javax.enterprise.event.Reception getReception()
        Specified by:
        getReception in interface javax.enterprise.inject.spi.ObserverMethod<T>
      • getTransactionPhase

        public javax.enterprise.event.TransactionPhase getTransactionPhase()
        Specified by:
        getTransactionPhase in interface javax.enterprise.inject.spi.ObserverMethod<T>
      • getObserverMethod

        public javax.enterprise.inject.spi.AnnotatedMethod<T> getObserverMethod()
      • setObserverMethod

        public void setObserverMethod​(javax.enterprise.inject.spi.AnnotatedMethod<T> m)
        Provides a way to set the observer method. This may need to be done for EJBs so that the method used will be from an interface and not the EJB class that likely can not be invoked on the EJB proxy
        Parameters:
        m - method to be invoked as the observer