-
- Type Parameters:
T
- The type of the event being observedX
- The bean type containing the observer method
- All Known Subinterfaces:
ProcessSyntheticObserverMethod<T,X>
public interface ProcessObserverMethod<T,X>
The container fires an event of this type for each observer method of each enabled bean, before registering the
ObserverMethod
object.For a custom implementation of
ObserverMethod
, the container must raise an event of typeProcessSyntheticObserverMethod
.Any observer of this event is permitted to wrap and/or replace the
ObserverMethod
by calling eithersetObserverMethod(ObserverMethod)
orconfigureObserverMethod()
. If both methods are called within an observer notification anIllegalStateException
is thrown. The container must use the final value of this property, after all observers have been called, he container must use the final value of this property, after all observers have been called, whenever it performs observer resolution.If any observer method of a
ProcessObserverMethod
event throws an exception, the exception is treated as a definition error by the container.CDI Lite implementations are not required to provide support for Portable Extensions.
- Author:
- Gavin King, David Allen, Antoine Sabot-Durand
- See Also:
ObserverMethod
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
addDefinitionError(java.lang.Throwable t)
Registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.ObserverMethodConfigurator<T>
configureObserverMethod()
Returns aObserverMethodConfigurator
initialized with theObserverMethod
processed by this event, to configure a new ObserverMethod that will replace the original one at the end of the observer invocation.AnnotatedMethod<X>
getAnnotatedMethod()
TheAnnotatedMethod
representing the observer method.ObserverMethod<T>
getObserverMethod()
TheObserverMethod
object that will be used by the container to invoke the observer when a matching event is fired.void
setObserverMethod(ObserverMethod<T> observerMethod)
Replaces theObserverMethod
.void
veto()
Forces the container to ignore the observer method.
-
-
-
Method Detail
-
getAnnotatedMethod
AnnotatedMethod<X> getAnnotatedMethod()
TheAnnotatedMethod
representing the observer method.If invoked upon a
ProcessSyntheticObserverMethod
event, non-portable behavior results and the returned value should be ignored.- Returns:
- the
AnnotatedMethod
representing the observer method - Throws:
java.lang.IllegalStateException
- if called outside of the observer method invocation
-
getObserverMethod
ObserverMethod<T> getObserverMethod()
TheObserverMethod
object that will be used by the container to invoke the observer when a matching event is fired.- Returns:
- the
ObserverMethod
object that will be used by the container to call the observer method - Throws:
java.lang.IllegalStateException
- if called outside of the observer method invocation
-
addDefinitionError
void addDefinitionError(java.lang.Throwable t)
Registers a definition error with the container, causing the container to abort deployment after bean discovery is complete.- Parameters:
t
- AThrowable
representing the definition error- Throws:
java.lang.IllegalStateException
- if called outside of the observer method invocation
-
setObserverMethod
void setObserverMethod(ObserverMethod<T> observerMethod)
Replaces theObserverMethod
.- Parameters:
observerMethod
- the newObserverMethod
object to use- Throws:
java.lang.IllegalStateException
- if called outside of the observer method invocation- Since:
- 2.0
-
configureObserverMethod
ObserverMethodConfigurator<T> configureObserverMethod()
Returns aObserverMethodConfigurator
initialized with theObserverMethod
processed by this event, to configure a new ObserverMethod that will replace the original one at the end of the observer invocation. Each call returns the same ObserverMethodConfigurator- Returns:
- a non reusable
ObserverMethodConfigurator
to configure the replacing ObserverMethod - Throws:
java.lang.IllegalStateException
- if called outside of the observer method invocation- Since:
- 2.0
-
veto
void veto()
Forces the container to ignore the observer method.- Throws:
java.lang.IllegalStateException
- if called outside of the observer method invocation- Since:
- 2.0
-
-