public class ObserverNotifier extends Object
| Modifier and Type | Field and Description |
|---|---|
protected CurrentEventMetadata |
currentEventMetadata |
| Modifier | Constructor and Description |
|---|---|
protected |
ObserverNotifier(TypeSafeObserverResolver resolver,
ServiceRegistry services,
boolean strict) |
| Modifier and Type | Method and Description |
|---|---|
protected Resolvable |
buildEventResolvable(Type eventType,
Annotation... qualifiers) |
protected Resolvable |
buildEventResolvable(Type eventType,
Set<Annotation> qualifiers) |
protected void |
checkEventObjectType(Object event) |
void |
checkEventObjectType(Type eventType)
If strict checks are enabled this method performs event type checks on the given type.
|
void |
clear()
Clears cached observer method resolutions and event type checks.
|
void |
fireEvent(Object event,
EventMetadata metadata,
Annotation... qualifiers)
Delivers the given event object to observer methods resolved based on the runtime type of the event object and given event qualifiers.
|
void |
fireEvent(Object event,
Resolvable resolvable)
Delivers the given event object to observer methods resolved based on the given resolvable.
|
void |
fireEvent(Type eventType,
Object event,
Annotation... qualifiers)
Delivers the given event object to observer methods resolved based on the given event type and qualifiers.
|
void |
fireEvent(Type eventType,
Object event,
EventMetadata metadata,
Annotation... qualifiers) |
<T> void |
notify(ResolvedObservers<T> observers,
T event,
EventMetadata metadata)
Delivers the given event object to given observer methods.
|
<T,U extends T> |
notifyAsync(ResolvedObservers<T> observers,
U event,
EventMetadata metadata,
Executor executor)
Delivers the given event object to given observer methods asynchronously.
|
protected <T,U extends T> |
notifyAsyncObservers(List<ObserverMethod<? super T>> observers,
U event,
EventMetadata metadata,
Executor executor) |
protected <T> void |
notifySyncObservers(List<ObserverMethod<? super T>> observers,
T event,
EventMetadata metadata) |
protected <T> void |
notifyTransactionObservers(List<ObserverMethod<? super T>> observers,
T event,
EventMetadata metadata) |
<T> ResolvedObservers<T> |
resolveObserverMethods(Resolvable resolvable)
Resolves observer methods using the given resolvable.
|
<T> ResolvedObservers<T> |
resolveObserverMethods(Type eventType,
Annotation... qualifiers)
Resolves observer methods based on the given event type and qualifiers.
|
<T> ResolvedObservers<T> |
resolveObserverMethods(Type eventType,
Set<Annotation> qualifiers)
Resolves observer methods based on the given event type and qualifiers.
|
protected final CurrentEventMetadata currentEventMetadata
protected ObserverNotifier(TypeSafeObserverResolver resolver, ServiceRegistry services, boolean strict)
public <T> ResolvedObservers<T> resolveObserverMethods(Type eventType, Annotation... qualifiers)
event - the event objectqualifiers - given event qualifierspublic <T> ResolvedObservers<T> resolveObserverMethods(Type eventType, Set<Annotation> qualifiers)
event - the event objectqualifiers - given event qualifierspublic <T> ResolvedObservers<T> resolveObserverMethods(Resolvable resolvable)
resolvable - the given resolvablepublic void fireEvent(Object event, EventMetadata metadata, Annotation... qualifiers)
event - the event objectmetadata - event metadataqualifiers - event qualifierspublic void fireEvent(Type eventType, Object event, Annotation... qualifiers)
eventType - the given event typeevent - the given event objectqualifiers - event qualifierspublic void fireEvent(Type eventType, Object event, EventMetadata metadata, Annotation... qualifiers)
public void fireEvent(Object event, Resolvable resolvable)
event - the given event objectresolvable - protected Resolvable buildEventResolvable(Type eventType, Set<Annotation> qualifiers)
protected Resolvable buildEventResolvable(Type eventType, Annotation... qualifiers)
public void clear()
protected void checkEventObjectType(Object event)
public void checkEventObjectType(Type eventType)
eventType - the given event typeIllegalArgumentException - if the strict mode is enabled and the event type contains a type variable, wildcard or is
assignable to a container lifecycle event typepublic <T> void notify(ResolvedObservers<T> observers, T event, EventMetadata metadata)
observers - the given observer methodsevent - the given event objectmetadata - event metadataprotected <T> void notifySyncObservers(List<ObserverMethod<? super T>> observers, T event, EventMetadata metadata)
protected <T> void notifyTransactionObservers(List<ObserverMethod<? super T>> observers, T event, EventMetadata metadata)
public <T,U extends T> CompletionStage<U> notifyAsync(ResolvedObservers<T> observers, U event, EventMetadata metadata, Executor executor)
TransactionPhase.IN_PROGRESS are called asynchronously in a separate thread. Observer methods with other transaction phase
are scheduled for the corresponding transaction phase. This behavior is the same as for notify(ResolvedObservers, Object, EventMetadata). See
ExperimentalEvent.fireAsync(Object) for more information. EventMetadata is made available for injection into observer methods, if needed.
If an executor is provided then observer methods are notified using this executor. Otherwise, Weld's task executor is used.observers - the given observer methodsevent - the given event objectmetadata - event metadataexecutor - the executor to be used for asynchronous delivery - may be nullprotected <T,U extends T> CompletionStage<U> notifyAsyncObservers(List<ObserverMethod<? super T>> observers, U event, EventMetadata metadata, Executor executor)
Copyright © 2015. All Rights Reserved.