-
- Type Parameters:
T- the type of the event object
public interface Event<T>Allows the application to fire events of a particular type.
Beans fire events via an instance of the
Eventinterface, which may be injected:@Inject @Any Event<LoggedInEvent> loggedInEvent;
The
fire()method accepts an event object:public void login() { ... loggedInEvent.fire( new LoggedInEvent(user) ); }Any combination of qualifiers may be specified at the injection point:
@Inject @Admin Event<LoggedInEvent> adminLoggedInEvent;
Or, the
@Anyqualifier may be used, allowing the application to specify qualifiers dynamically:@Inject @Any Event<LoggedInEvent> loggedInEvent;
For an injected
Event:- the specified type is the type parameter specified at the injection point, and
- the specified qualifiers are the qualifiers specified at the injection point.
Events may also be fired asynchronously with
fireAsync(Object)andfireAsync(Object, NotificationOptions)methods- Author:
- Gavin King, Pete Muir, David Allen, Antoine Sabot-Durand
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidfire(T event)Fires an event with the specified qualifiers and notifies observers.<U extends T>
java.util.concurrent.CompletionStage<U>fireAsync(U event)Fires an event asynchronously with the specified qualifiers and notifies asynchronous observers.<U extends T>
java.util.concurrent.CompletionStage<U>fireAsync(U event, NotificationOptions options)Fires an event asynchronously with the specified qualifiers and notifies asynchronous observers.<U extends T>
Event<U>select(TypeLiteral<U> subtype, java.lang.annotation.Annotation... qualifiers)Obtains a childEventfor the given required type and additional required qualifiers.Event<T>select(java.lang.annotation.Annotation... qualifiers)Obtains a childEventfor the given additional required qualifiers.<U extends T>
Event<U>select(java.lang.Class<U> subtype, java.lang.annotation.Annotation... qualifiers)Obtains a childEventfor the given required type and additional required qualifiers.
-
-
-
Method Detail
-
fire
void fire(T event)
Fires an event with the specified qualifiers and notifies observers.
- Parameters:
event- the event object- Throws:
java.lang.IllegalArgumentException- if the runtime type of the event object contains a type variableObserverException- if a notified observer throws a checked exception, it will be wrapped and rethrown as an (unchecked)ObserverException
-
fireAsync
<U extends T> java.util.concurrent.CompletionStage<U> fireAsync(U event)
Fires an event asynchronously with the specified qualifiers and notifies asynchronous observers.
- Type Parameters:
U- event type- Parameters:
event- the event object- Returns:
- a
CompletionStageallowing further pipeline composition on the asynchronous operation. Default asynchronous execution facility is container specific. If any observer notified by this event throws an exception then the resulting CompletionStage is completed exceptionally withCompletionExceptionthat wraps all the exceptions raised by observers as suppressed exception. If no exception is thrown by observers then the resulting CompletionStage is completed normally with the event payload. - Throws:
java.lang.IllegalArgumentException- if the runtime type of the event object contains a type variable- Since:
- 2.0
-
fireAsync
<U extends T> java.util.concurrent.CompletionStage<U> fireAsync(U event, NotificationOptions options)
Fires an event asynchronously with the specified qualifiers and notifies asynchronous observers. A custom
Executorwill be used to make asynchronous calls- Type Parameters:
U- event type- Parameters:
event- the event objectoptions- the notification options- Returns:
- a
CompletionStageallowing further pipeline composition on the asynchronous operation. Default asynchronous execution facility is container specific. If any observer notified by this event throws an exception then the resulting CompletionStage is completed exceptionally withCompletionExceptionthat wraps all the exceptions raised by observers as suppressed exception. If no exception is thrown by observers then the resulting CompletionStage is completed normally with the event payload. - Throws:
java.lang.IllegalArgumentException- if the runtime type of the event object contains a type variable- Since:
- 2.0
-
select
Event<T> select(java.lang.annotation.Annotation... qualifiers)
Obtains a child
Eventfor the given additional required qualifiers.- Parameters:
qualifiers- the additional specified qualifiers- Returns:
- the child
Event - Throws:
java.lang.IllegalArgumentException- if passed two instances of the same non repeating qualifier type, or an instance of an annotation that is not a qualifier type
-
select
<U extends T> Event<U> select(java.lang.Class<U> subtype, java.lang.annotation.Annotation... qualifiers)
Obtains a child
Eventfor the given required type and additional required qualifiers.- Type Parameters:
U- the specified type- Parameters:
subtype- aClassrepresenting the specified typequalifiers- the additional specified qualifiers- Returns:
- the child
Event - Throws:
java.lang.IllegalArgumentException- if passed two instances of the same non repeating qualifier type, or an instance of an annotation that is not a qualifier type
-
select
<U extends T> Event<U> select(TypeLiteral<U> subtype, java.lang.annotation.Annotation... qualifiers)
Obtains a child
Eventfor the given required type and additional required qualifiers.- Type Parameters:
U- the specified type- Parameters:
subtype- aTypeLiteralrepresenting the specified typequalifiers- the additional specified qualifiers- Returns:
- the child
Event - Throws:
java.lang.IllegalArgumentException- if passed two instances of the same non repeating qualifier type, or an instance of an annotation that is not a qualifier type
-
-