Package org.jboss.weld.event
Class ObserverMethodImpl<T,X>
- java.lang.Object
-
- org.jboss.weld.event.ObserverMethodImpl<T,X>
-
- All Implemented Interfaces:
jakarta.enterprise.inject.spi.ObserverMethod<T>,jakarta.enterprise.inject.spi.Prioritized,EventMetadataAwareObserverMethod<T>
- Direct Known Subclasses:
ExtensionObserverMethodImpl
public class ObserverMethodImpl<T,X> extends Object implements jakarta.enterprise.inject.spi.ObserverMethod<T>, EventMetadataAwareObserverMethod<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.
- Author:
- David Allen, Jozef Hartinger, Marko Luksa
-
-
Field Summary
Fields Modifier and Type Field Description protected BeanManagerImplbeanManagerprotected RIBean<X>declaringBeanstatic StringID_PREFIXstatic StringID_SEPARATORprotected MethodInjectionPoint<T,? super X>observerMethodprotected static Set<Class<? extends Annotation>>SPECIAL_PARAM_MARKERSprotected jakarta.enterprise.event.TransactionPhasetransactionPhase
-
Constructor Summary
Constructors Modifier Constructor Description protectedObserverMethodImpl(EnhancedAnnotatedMethod<T,? super X> observer, RIBean<X> declaringBean, BeanManagerImpl manager, boolean isAsync)Creates an Observer which describes and encapsulates an observer method (8.5).
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected <Y> voidcheckRequiredTypeAnnotations(EnhancedAnnotatedParameter<?,?> eventParameter, EnhancedAnnotatedMethod<T,Y> annotated)protected StringcreateId(EnhancedAnnotatedMethod<?,?> observer, RIBean<?> declaringBean)protected StringcreateTypeId(RIBean<?> declaringBean)booleanequals(Object obj)Class<X>getBeanClass()RIBean<X>getDeclaringBean()protected EnhancedAnnotatedParameter<?,? super X>getEventParameter(EnhancedAnnotatedMethod<T,? super X> observer)StringgetId()Set<WeldInjectionPointAttributes<?,?>>getInjectionPoints()MethodInjectionPoint<T,? super X>getMethod()Set<Annotation>getObservedQualifiers()TypegetObservedType()intgetPriority()protected ObjectgetReceiver(jakarta.enterprise.context.spi.CreationalContext<X> creationalContext)jakarta.enterprise.event.ReceptiongetReception()jakarta.enterprise.event.TransactionPhasegetTransactionPhase()inthashCode()voidinitialize(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)booleanisAsync()booleanisEventMetadataRequired()voidnotify(T event)voidnotify(T event, jakarta.enterprise.event.Reception reception)Used as default notify method from ObserverMethodConfiguratorImpl.protected voidpostNotify(T event, Object receiver)protected voidpreNotify(T event, Object receiver)Hooks allowing subclasses to perform additional logic just before and just after an event is delivered to an observer method.voidsendEvent(T event, jakarta.enterprise.event.Reception reception)Invokes the observer method immediately passing the event.protected voidsendEvent(T event, Object receiver, jakarta.enterprise.context.spi.CreationalContext<?> creationalContext)Note thatCreationalContext.release()is not invoked within this method.StringtoString()
-
-
-
Field Detail
-
ID_PREFIX
public static final String ID_PREFIX
-
ID_SEPARATOR
public static final String ID_SEPARATOR
- See Also:
- Constant Field Values
-
SPECIAL_PARAM_MARKERS
protected static final Set<Class<? extends Annotation>> SPECIAL_PARAM_MARKERS
-
beanManager
protected final BeanManagerImpl beanManager
-
observerMethod
protected final MethodInjectionPoint<T,? super X> observerMethod
-
transactionPhase
protected jakarta.enterprise.event.TransactionPhase transactionPhase
-
-
Constructor Detail
-
ObserverMethodImpl
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).- Parameters:
observer- The observerdeclaringBean- The observer beanmanager- The Bean manager
-
-
Method Detail
-
getEventParameter
protected EnhancedAnnotatedParameter<?,? super X> getEventParameter(EnhancedAnnotatedMethod<T,? super X> observer)
-
createId
protected String createId(EnhancedAnnotatedMethod<?,?> observer, RIBean<?> declaringBean)
-
initMethodInjectionPoint
protected MethodInjectionPoint<T,? super X> initMethodInjectionPoint(EnhancedAnnotatedMethod<T,? super X> observer, RIBean<X> declaringBean, BeanManagerImpl manager)
-
getInjectionPoints
public Set<WeldInjectionPointAttributes<?,?>> getInjectionPoints()
-
checkRequiredTypeAnnotations
protected <Y> void checkRequiredTypeAnnotations(EnhancedAnnotatedParameter<?,?> eventParameter, EnhancedAnnotatedMethod<T,Y> annotated)
-
getBeanClass
public Class<X> getBeanClass()
- Specified by:
getBeanClassin interfacejakarta.enterprise.inject.spi.ObserverMethod<T>
-
getDeclaringBean
public RIBean<X> getDeclaringBean()
- Specified by:
getDeclaringBeanin interfacejakarta.enterprise.inject.spi.ObserverMethod<T>
-
getReception
public jakarta.enterprise.event.Reception getReception()
- Specified by:
getReceptionin interfacejakarta.enterprise.inject.spi.ObserverMethod<T>
-
getObservedQualifiers
public Set<Annotation> getObservedQualifiers()
- Specified by:
getObservedQualifiersin interfacejakarta.enterprise.inject.spi.ObserverMethod<T>
-
getObservedType
public Type getObservedType()
- Specified by:
getObservedTypein interfacejakarta.enterprise.inject.spi.ObserverMethod<T>
-
getTransactionPhase
public jakarta.enterprise.event.TransactionPhase getTransactionPhase()
- Specified by:
getTransactionPhasein interfacejakarta.enterprise.inject.spi.ObserverMethod<T>
-
getMethod
public MethodInjectionPoint<T,? super X> getMethod()
- Returns:
- the observerMethod
-
initialize
public void initialize(EnhancedAnnotatedMethod<T,? super X> annotated)
Completes initialization of the observer and allows derived types to override behavior.
-
notify
public void notify(T event)
- Specified by:
notifyin interfacejakarta.enterprise.inject.spi.ObserverMethod<T>
-
notify
public void notify(T event, jakarta.enterprise.event.Reception reception)
Used as default notify method from ObserverMethodConfiguratorImpl. This allows Weld to respectReceptionset in the configurator.
-
sendEvent
public void sendEvent(T event, jakarta.enterprise.event.Reception reception)
Invokes the observer method immediately passing the event.- Parameters:
event- The event to notify observer with
-
sendEvent
protected void sendEvent(T event, Object receiver, jakarta.enterprise.context.spi.CreationalContext<?> creationalContext)
Note thatCreationalContext.release()is not invoked within this method.- Parameters:
event-receiver-creationalContext-
-
preNotify
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.
-
getReceiver
protected Object getReceiver(jakarta.enterprise.context.spi.CreationalContext<X> creationalContext)
-
getId
public String getId()
-
getPriority
public int getPriority()
- Specified by:
getPriorityin interfacejakarta.enterprise.inject.spi.ObserverMethod<T>- Specified by:
getPriorityin interfacejakarta.enterprise.inject.spi.Prioritized
-
isAsync
public boolean isAsync()
- Specified by:
isAsyncin interfacejakarta.enterprise.inject.spi.ObserverMethod<T>
-
isEventMetadataRequired
public boolean isEventMetadataRequired()
- Specified by:
isEventMetadataRequiredin interfaceEventMetadataAwareObserverMethod<T>- Returns:
trueifEventMetadatais required,falseotherwise
-
-