Class AbstractClusteredAsyncDataTreeChangeListener<T extends org.opendaylight.yangtools.yang.binding.DataObject>
java.lang.Object
org.opendaylight.serviceutils.tools.listener.AbstractClusteredAsyncDataTreeChangeListener<T>
- Type Parameters:
T
- type of the data object the listener is registered to.
- All Implemented Interfaces:
AutoCloseable
,EventListener
,org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener<T>
,org.opendaylight.mdsal.binding.api.DataTreeChangeListener<T>
,ChainableDataTreeChangeListener<T>
public abstract class AbstractClusteredAsyncDataTreeChangeListener<T extends org.opendaylight.yangtools.yang.binding.DataObject>
extends Object
implements org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener<T>
Abstract class providing some common functionality to specific listeners. This is the clustered version of the
AbstractAsyncDataTreeChangeListener
. Please carefully consider whether you really need an async listener,
or if AbstractClusteredSyncDataTreeChangeListener
wouldn't work just fine for your use case.- Author:
- David Suárez (david.suarez.fuentes@gmail.com)
- See Also:
-
Constructor Summary
ConstructorDescriptionAbstractClusteredAsyncDataTreeChangeListener
(org.opendaylight.mdsal.binding.api.DataBroker dataBroker, org.opendaylight.mdsal.binding.api.DataTreeIdentifier<T> dataTreeIdentifier, ExecutorService executorService) AbstractClusteredAsyncDataTreeChangeListener
(org.opendaylight.mdsal.binding.api.DataBroker dataBroker, org.opendaylight.mdsal.common.api.LogicalDatastoreType datastoreType, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> instanceIdentifier, ExecutorService executorService) AbstractClusteredAsyncDataTreeChangeListener
(org.opendaylight.mdsal.binding.api.DataBroker dataBroker, org.opendaylight.mdsal.common.api.LogicalDatastoreType datastoreType, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> instanceIdentifier, ExecutorService executorService, MetricProvider metricProvider) -
Method Summary
Modifier and TypeMethodDescriptiondefault void
add
(@NonNull org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> instanceIdentifier, T newDataObject) Invoked when a new data object is added.void
Deprecated.void
addAfterListener
(org.opendaylight.mdsal.binding.api.DataTreeChangeListener<T> listener) Adds a "chained" DataTreeChangeListener, to whichDataTreeChangeListener.onDataTreeChanged(java.util.Collection)
calls are forwarded AFTER having been processed by this DataTreeChangeListener.void
addBeforeListener
(org.opendaylight.mdsal.binding.api.DataTreeChangeListener<T> listener) Adds a "chained" DataTreeChangeListener, to whichDataTreeChangeListener.onDataTreeChanged(java.util.Collection)
calls are forwarded BEFORE having been processed by this DataTreeChangeListener.void
close()
protected org.opendaylight.mdsal.binding.api.DataBroker
protected org.opendaylight.serviceutils.tools.listener.DataStoreMetrics
protected ExecutorService
Returns the ExecutorService provided when constructing this instance.final void
onDataTreeChanged
(Collection<org.opendaylight.mdsal.binding.api.DataTreeModification<T>> collection) default void
onDataTreeChanged
(Collection<org.opendaylight.mdsal.binding.api.DataTreeModification<T>> changes, org.opendaylight.serviceutils.tools.listener.DataStoreMetrics dataStoreMetrics) Default method invoked upon data tree change, in turn it calls the appropriate method (add, update, remove) depending on the type of change.void
register()
default void
remove
(@NonNull org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> instanceIdentifier, T removedDataObject) Invoked when the data object has been removed.void
Deprecated.default void
update
(@NonNull org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> instanceIdentifier, T originalDataObject, T updatedDataObject) Invoked when there is a change in the data object.void
Deprecated.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.opendaylight.mdsal.binding.api.DataTreeChangeListener
onInitialData
-
Constructor Details
-
AbstractClusteredAsyncDataTreeChangeListener
public AbstractClusteredAsyncDataTreeChangeListener(org.opendaylight.mdsal.binding.api.DataBroker dataBroker, org.opendaylight.mdsal.binding.api.DataTreeIdentifier<T> dataTreeIdentifier, ExecutorService executorService) -
AbstractClusteredAsyncDataTreeChangeListener
public AbstractClusteredAsyncDataTreeChangeListener(org.opendaylight.mdsal.binding.api.DataBroker dataBroker, org.opendaylight.mdsal.common.api.LogicalDatastoreType datastoreType, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> instanceIdentifier, ExecutorService executorService) -
AbstractClusteredAsyncDataTreeChangeListener
public AbstractClusteredAsyncDataTreeChangeListener(org.opendaylight.mdsal.binding.api.DataBroker dataBroker, org.opendaylight.mdsal.common.api.LogicalDatastoreType datastoreType, org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> instanceIdentifier, ExecutorService executorService, MetricProvider metricProvider)
-
-
Method Details
-
onDataTreeChanged
public final void onDataTreeChanged(Collection<org.opendaylight.mdsal.binding.api.DataTreeModification<T>> collection) - Specified by:
onDataTreeChanged
in interfaceorg.opendaylight.mdsal.binding.api.DataTreeChangeListener<T extends org.opendaylight.yangtools.yang.binding.DataObject>
-
getExecutorService
Returns the ExecutorService provided when constructing this instance. If the subclass owns the ExecutorService, it should be shut down when closing the listener using this getter.- Returns:
- executor service
-
addBeforeListener
public void addBeforeListener(org.opendaylight.mdsal.binding.api.DataTreeChangeListener<T> listener) Description copied from interface:ChainableDataTreeChangeListener
Adds a "chained" DataTreeChangeListener, to whichDataTreeChangeListener.onDataTreeChanged(java.util.Collection)
calls are forwarded BEFORE having been processed by this DataTreeChangeListener.If an asychronous DataTreeChangeListener supports chaining, it must forward the onDataTreeChanged() call BEFORE event are submitted to its async executor for processing.
- Specified by:
addBeforeListener
in interfaceChainableDataTreeChangeListener<T extends org.opendaylight.yangtools.yang.binding.DataObject>
- Parameters:
listener
- the chained DataTreeChangeListener to invoke after this one
-
addAfterListener
Description copied from interface:ChainableDataTreeChangeListener
Adds a "chained" DataTreeChangeListener, to whichDataTreeChangeListener.onDataTreeChanged(java.util.Collection)
calls are forwarded AFTER having been processed by this DataTreeChangeListener.If an asychronous DataTreeChangeListener supports chaining, it must forward the onDataTreeChanged() call ONLY AFTER its async executor processed the event.
- Specified by:
addAfterListener
in interfaceChainableDataTreeChangeListener<T extends org.opendaylight.yangtools.yang.binding.DataObject>
- Parameters:
listener
- the chained DataTreeChangeListener to invoke after this one
-
register
@PostConstruct public void register() -
getDataBroker
protected org.opendaylight.mdsal.binding.api.DataBroker getDataBroker() -
getDataStoreMetrics
protected org.opendaylight.serviceutils.tools.listener.DataStoreMetrics getDataStoreMetrics() -
close
@PreDestroy public void close()- Specified by:
close
in interfaceAutoCloseable
-
add
Deprecated. -
remove
Deprecated. -
update
Deprecated. -
onDataTreeChanged
default void onDataTreeChanged(Collection<org.opendaylight.mdsal.binding.api.DataTreeModification<T>> changes, org.opendaylight.serviceutils.tools.listener.DataStoreMetrics dataStoreMetrics) Default method invoked upon data tree change, in turn it calls the appropriate method (add, update, remove) depending on the type of change.- Parameters:
changes
- collection of changesdataStoreMetrics
- data store metrics
-
add
default void add(@NonNull org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> instanceIdentifier, T newDataObject) Invoked when a new data object is added.- Parameters:
instanceIdentifier
- instance id for this data objectnewDataObject
- newly added object
-
remove
default void remove(@NonNull org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> instanceIdentifier, T removedDataObject) Invoked when the data object has been removed.- Parameters:
instanceIdentifier
- instance id for this data objectremovedDataObject
- existing object being removed
-
update
default void update(@NonNull org.opendaylight.yangtools.yang.binding.InstanceIdentifier<T> instanceIdentifier, T originalDataObject, T updatedDataObject) Invoked when there is a change in the data object.- Parameters:
instanceIdentifier
- instance id for this data objectoriginalDataObject
- existing object being modifiedupdatedDataObject
- modified data object
-