public class ObserverMethodImpl<T,X> extends Object implements ObserverMethod<T>
Reference implementation for the ObserverMethod interface, which represents an observer method. Each observer method has an event type which is the class of the event object being observed, and event binding types that are annotations applied to the event parameter to narrow the event notifications delivered.
| Modifier and Type | Field and Description |
|---|---|
protected BeanManagerImpl |
beanManager |
protected RIBean<X> |
declaringBean |
static String |
ID_PREFIX |
static String |
ID_SEPARATOR |
protected MethodInjectionPoint<T,? super X> |
observerMethod |
protected static Set<Class<? extends Annotation>> |
SPECIAL_PARAM_MARKERS |
protected TransactionPhase |
transactionPhase |
| Modifier | Constructor and Description |
|---|---|
protected |
ObserverMethodImpl(EnhancedAnnotatedMethod<T,? super X> observer,
RIBean<X> declaringBean,
BeanManagerImpl manager,
boolean isAsync)
Creates an Observer which describes and encapsulates an observer method (8.5).
|
| Modifier and Type | Method and Description |
|---|---|
protected static String |
createId(EnhancedAnnotatedMethod<?,?> observer,
RIBean<?> declaringBean) |
boolean |
equals(Object obj) |
Class<X> |
getBeanClass()
Obtains the class of the type that declares the observer method.
|
RIBean<X> |
getDeclaringBean() |
protected EnhancedAnnotatedParameter<?,? super X> |
getEventParameter(EnhancedAnnotatedMethod<T,? super X> observer) |
String |
getId() |
Set<WeldInjectionPointAttributes<?,?>> |
getInjectionPoints() |
MethodInjectionPoint<T,? super X> |
getMethod() |
Set<WeldInjectionPointAttributes<?,?>> |
getNewInjectionPoints() |
Set<Annotation> |
getObservedQualifiers()
Obtains the set of observed event qualifiers.
|
Type |
getObservedType()
Obtains the observed event type.
|
int |
getPriority()
The priority that will be used by the container to determine the notification order in which event observer
methods are invoked.
|
protected Object |
getReceiver(CreationalContext<X> creationalContext) |
Reception |
getReception()
Obtains the specified
Reception for the observer method. |
TransactionPhase |
getTransactionPhase()
Obtains the specified
TransactionPhase for the observer method. |
int |
hashCode() |
protected void |
checkRequiredTypeAnnotations(EnhancedAnnotatedParameter<?,?> eventParameter) |
void |
initialize(EnhancedAnnotatedMethod<T,? super X> annotated)
Completes initialization of the observer and allows derived types to override behavior.
|
protected MethodInjectionPoint<T,? super X> |
initMethodInjectionPoint(EnhancedAnnotatedMethod<T,? super X> observer,
RIBean<X> declaringBean,
BeanManagerImpl manager) |
boolean |
isAsync()
Determines if this observer method is asynchronous
|
boolean |
isEventMetadataRequired() |
void |
notify(T event)
Calls the observer method, passing the given event object.
|
protected void |
postNotify(T event,
Object receiver) |
protected void |
preNotify(T event,
Object receiver)
Hooks allowing subclasses to perform additional logic just before and just after an event is delivered to an observer method.
|
protected void |
sendEvent(T event)
Invokes the observer method immediately passing the event.
|
protected void |
sendEvent(T event,
Object receiver,
CreationalContext<?> creationalContext)
Note that
CreationalContext.release() is not invoked within this method. |
String |
toString() |
public static final String ID_PREFIX
public static final String ID_SEPARATOR
protected static final Set<Class<? extends Annotation>> SPECIAL_PARAM_MARKERS
protected final BeanManagerImpl beanManager
protected final MethodInjectionPoint<T,? super X> observerMethod
protected TransactionPhase transactionPhase
protected ObserverMethodImpl(EnhancedAnnotatedMethod<T,? super X> observer, RIBean<X> declaringBean, BeanManagerImpl manager, boolean isAsync)
observer - The observerdeclaringBean - The observer beanmanager - The Bean managerprotected EnhancedAnnotatedParameter<?,? super X> getEventParameter(EnhancedAnnotatedMethod<T,? super X> observer)
protected static String createId(EnhancedAnnotatedMethod<?,?> observer, RIBean<?> declaringBean)
protected MethodInjectionPoint<T,? super X> initMethodInjectionPoint(EnhancedAnnotatedMethod<T,? super X> observer, RIBean<X> declaringBean, BeanManagerImpl manager)
public Set<WeldInjectionPointAttributes<?,?>> getInjectionPoints()
public Set<WeldInjectionPointAttributes<?,?>> getNewInjectionPoints()
protected void checkRequiredTypeAnnotations(EnhancedAnnotatedParameter<?,?> eventParameter)
public Class<X> getBeanClass()
ObserverMethodObtains the class of the type that declares the observer method.
getBeanClass in interface ObserverMethod<T>public Reception getReception()
ObserverMethodReception for the observer method. This indicates if the observer is conditional or not.getReception in interface ObserverMethod<T>Receptionpublic Set<Annotation> getObservedQualifiers()
ObserverMethodgetObservedQualifiers in interface ObserverMethod<T>public Type getObservedType()
ObserverMethodgetObservedType in interface ObserverMethod<T>public TransactionPhase getTransactionPhase()
ObserverMethodTransactionPhase for the observer method.getTransactionPhase in interface ObserverMethod<T>TransactionPhasepublic MethodInjectionPoint<T,? super X> getMethod()
public void initialize(EnhancedAnnotatedMethod<T,? super X> annotated)
public void notify(T event)
ObserverMethodCalls the observer method, passing the given event object.
The implementation of this method for a custom observer method is responsible for deciding whether to call
the method if the ObserverMethod.getReception() returns Reception.IF_EXISTS.
notify in interface ObserverMethod<T>event - the event objectprotected void sendEvent(T event)
event - The event to notify observer withprotected void sendEvent(T event, Object receiver, CreationalContext<?> creationalContext)
CreationalContext.release() is not invoked within this method.event - receiver - creationalContext - protected void preNotify(T event, Object receiver)
protected Object getReceiver(CreationalContext<X> creationalContext)
public String getId()
public int getPriority()
ObserverMethodgetPriority in interface ObserverMethod<T>getPriority in interface Prioritizedpublic boolean isAsync()
ObserverMethodDetermines if this observer method is asynchronous
isAsync in interface ObserverMethod<T>ObservesAsync),
otherwise returns falsepublic boolean isEventMetadataRequired()
Copyright © 2015. All Rights Reserved.