public class ContinuousQueryListenerAdapter extends Object implements ContinuousQueryListener
Modeled as much as possible after the JMS MessageListenerAdapter in the core Spring Framework.
By default, the content of incoming Pivotal GemFire/Apache Geode CQ events gets extracted before being passed into
the target listener method, to let the target method operate on event content types such as Object or Operation
instead of the raw CqEvent
.
Find below some examples of method signatures compliant with this adapter class.
This first example handles all CqEvent
types and gets passed the contents of each
event
type as an argument.
public interface PojoListener { void handleEvent(CqEvent event); void handleEvent(Operation baseOp); void handleEvent(Object key); void handleEvent(Object key, Object newValue); void handleEvent(Throwable cause); void handleEvent(CqEvent event, Operation baseOp, byte[] deltaValue); void handleEvent(CqEvent event, Operation baseOp, Operation queryOp, Object key, Object newValue); }
Method
,
Operation
,
CqEvent
,
CqQuery
,
ContinuousQueryListener
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_LISTENER_METHOD_NAME |
protected org.slf4j.Logger |
logger |
Constructor and Description |
---|
ContinuousQueryListenerAdapter()
Constructs a new instance of
ContinuousQueryListenerAdapter with default settings. |
ContinuousQueryListenerAdapter(Object delegate)
Constructs a new instance of
ContinuousQueryListenerAdapter initialized with
the given delegate . |
Modifier and Type | Method and Description |
---|---|
protected String |
getDefaultListenerMethod()
Return the name of the default listener method to delegate to.
|
Object |
getDelegate()
Returns a reference to the target object used to listen for and handle CQ events.
|
protected String |
getListenerMethodName(org.apache.geode.cache.query.CqEvent event)
Determine the name of the listener method that is supposed to
handle the given event.
|
protected void |
handleListenerException(Throwable cause)
Handle the given exception that arose during listener execution.
|
protected void |
invokeListenerMethod(org.apache.geode.cache.query.CqEvent event,
String methodName)
Invoke the specified listener method.
|
void |
onEvent(org.apache.geode.cache.query.CqEvent event)
Standard
ContinuousQueryListener callback method for handling CQ events. |
void |
setDefaultListenerMethod(String defaultListenerMethod)
Specify the name of the default listener method to delegate to in the case where no specific listener method
has been determined.
|
void |
setDelegate(Object delegate)
Sets the target object to which CQ events are delegated.
|
public static final String DEFAULT_LISTENER_METHOD_NAME
protected final org.slf4j.Logger logger
public ContinuousQueryListenerAdapter()
ContinuousQueryListenerAdapter
with default settings.public ContinuousQueryListenerAdapter(Object delegate)
ContinuousQueryListenerAdapter
initialized with
the given delegate
.delegate
- delegate
of the listener method event callback.setDelegate(Object)
public final void setDelegate(Object delegate)
delegate
- Object
to delegate listening for CQ events.IllegalArgumentException
- if delegate
is null.public Object getDelegate()
public void setDefaultListenerMethod(String defaultListenerMethod)
"handleEvent
.defaultListenerMethod
- the name of the default listener method to invoke.getListenerMethodName(org.apache.geode.cache.query.CqEvent)
protected String getDefaultListenerMethod()
protected String getListenerMethodName(org.apache.geode.cache.query.CqEvent event)
The default implementation simply returns the configured default listener method, if any.
event
- the Pivotal GemFire eventnull
)setDefaultListenerMethod(java.lang.String)
public void onEvent(org.apache.geode.cache.query.CqEvent event)
ContinuousQueryListener
callback method for handling CQ events.
Delegates the CQ event to the target listener method, with appropriate conversion of the event arguments.
In case of an exception, the handleListenerException(Throwable)
method will be invoked.
onEvent
in interface ContinuousQueryListener
event
- incoming CQ event
.handleListenerException(java.lang.Throwable)
protected void handleListenerException(Throwable cause)
cause
- the exception to handleprotected void invokeListenerMethod(org.apache.geode.cache.query.CqEvent event, String methodName)
event
- the event arguments to be passed inmethodName
- the method to invokegetListenerMethodName(org.apache.geode.cache.query.CqEvent)
Copyright © 2011–2021 Pivotal Software, Inc.. All rights reserved.