org.apache.webbeans.event
Class ObserverMethodImpl<T>

java.lang.Object
  extended by org.apache.webbeans.event.ObserverMethodImpl<T>
Type Parameters:
T - event type
All Implemented Interfaces:
javax.enterprise.inject.spi.ObserverMethod<T>

public class ObserverMethodImpl<T>
extends Object
implements javax.enterprise.inject.spi.ObserverMethod<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 ObserverMethod#notify() method is called.

Version:
$Rev: 1296509 $ $Date: 2012-03-03 00:07:23 +0100 (Sa, 03 Mär 2012) $

Constructor Summary
ObserverMethodImpl(InjectionTargetBean<?> bean, Method observerMethod, boolean ifExist)
          Creates a new bean observer instance.
ObserverMethodImpl(InjectionTargetBean<?> bean, Method observerMethod, boolean ifExist, Annotation[] qualifiers, Type observedEventType)
          used if the qualifiers and event type are already known, e.g. from the XML.
 
Method Summary
protected  List<org.apache.webbeans.event.ObserverMethodImpl.ObserverParams> getAnnotatedMethodArguments(Object event)
          Gets observer method parameters.
 Class<?> getBeanClass()
          Returns observer owner bean.
protected  List<org.apache.webbeans.event.ObserverMethodImpl.ObserverParams> getMethodArguments(Object event)
          Returns list of observer method parameters.
 Set<Annotation> getObservedQualifiers()
          
 Type getObservedType()
          
 Method getObserverMethod()
           
 javax.enterprise.event.Reception getReception()
          
 javax.enterprise.event.TransactionPhase getTransactionPhase()
           
protected  WebBeansContext getWebBeansContext()
           
 void notify(T event)
          
 void setAnnotatedMethod(javax.enterprise.inject.spi.AnnotatedMethod<T> annotatedMethod)
          Sets annotated method.
 void setObserverMethod(Method m)
          Provides a way to set the observer method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ObserverMethodImpl

public ObserverMethodImpl(InjectionTargetBean<?> bean,
                          Method observerMethod,
                          boolean ifExist)
Creates a new bean observer instance.

Parameters:
bean - owner
observerMethod - method
ifExist - if exist parameter

ObserverMethodImpl

public ObserverMethodImpl(InjectionTargetBean<?> bean,
                          Method observerMethod,
                          boolean ifExist,
                          Annotation[] qualifiers,
                          Type observedEventType)
used if the qualifiers and event type are already known, e.g. from the XML.

Parameters:
bean -
observerMethod -
ifExist -
qualifiers -
observedEventType -
Method Detail

setAnnotatedMethod

public void setAnnotatedMethod(javax.enterprise.inject.spi.AnnotatedMethod<T> annotatedMethod)
Sets annotated method.

Parameters:
annotatedMethod - annotated method

notify

public void notify(T event)

Specified by:
notify in interface javax.enterprise.inject.spi.ObserverMethod<T>

getMethodArguments

protected List<org.apache.webbeans.event.ObserverMethodImpl.ObserverParams> getMethodArguments(Object event)
Returns list of observer method parameters.

Parameters:
event - event instance
Returns:
list of observer method parameters

getAnnotatedMethodArguments

protected List<org.apache.webbeans.event.ObserverMethodImpl.ObserverParams> getAnnotatedMethodArguments(Object event)
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 Method getObserverMethod()

getWebBeansContext

protected WebBeansContext getWebBeansContext()

setObserverMethod

public void setObserverMethod(Method 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:
method - to be invoked as the observer


Copyright © 2008-2012 The Apache Software Foundation. All Rights Reserved.