Skip navigation links

Oracle® Fusion Middleware Java API Reference for Oracle Coherence
12c (12.1.3.0.0)

E47890-01


com.tangosol.net.events
Interface Event

All Known Subinterfaces:
EntryEvent, EntryProcessorEvent, Event, Event, EventDispatcher.InterceptorRegistrationEvent, LifecycleEvent, TransactionEvent, TransferEvent

public interface Event

An Event object captures the necessary information required to adequately describe some activity that has occurred. Events can fire before a change has been committed to memory (pre-committed) or after the change has been committed (post-commit). Semantically EventInterceptors listening to pre-committed events will have the opportunity to change the state of the request before it has been committed.

Note that an Event object itself is immutable and is only valid in the context of a single chain of EventInterceptor.onEvent(Event) calls. Holding a reference to the Event outside of that scope is unsafe.

Since:
Coherence 12.1.2
Author:
bo, nsa, rhan, rhl, hr 2011.03.29

Method Summary
 EventDispatcher getDispatcher()
          Return the EventDispatcher this event was raised by.
 java.lang.Enum getType()
          Return the Event's type.
 void nextInterceptor()
          Dispatch this event to the next EventInterceptor in the chain if one exists.

 

Method Detail

getType

java.lang.Enum getType()
Return the Event's type.
Returns:
the Event's type

getDispatcher

EventDispatcher getDispatcher()
Return the EventDispatcher this event was raised by.
Returns:
the EventDispatcher this event was raised by

nextInterceptor

void nextInterceptor()
                     throws java.lang.RuntimeException
Dispatch this event to the next EventInterceptor in the chain if one exists. After each subsequent interceptor has run, this method will return giving the caller the opportunity to observe any side effects caused by down stream EventInterceptors. EventInterceptors that do not explicitly call this method will not prevent other interceptors from being executed, but rather will not have the opportunity to see any side effects of those interceptors.

In the following example an interceptor looks for an INSERTING storage event, and calls nextInterceptor. This allows "more application logic" to look at the effects of other interceptors down stream. If the event is not an INSERTING storage event, the interceptor is not interested in the side effects, and simply returns. public void onEvent(Event event) { if (event.getType() == StorageEntryEvent.INSERTING) { // application logic event.nextInterceptor(); // more application logic } return; } If an Exception is thrown by an interceptor's onEvent method and this event is pre-committed, the processing of further interceptors will be terminated, the exception is re-thrown and the operation that generated the event will fail. If this event is immutable however, the exception will be caught and logged and normal processing of subsequent interceptors will continue.

Throws:
java.lang.RuntimeException

Skip navigation links

Oracle® Fusion Middleware Java API Reference for Oracle Coherence
12c (12.1.3.0.0)

E47890-01


Copyright © 2000, 2014, Oracle and/or its affiliates. All rights reserved.