X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=dom%2Fmdsal-dom-spi%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fmdsal%2Fdom%2Fspi%2Fstore%2FDOMStoreTreeChangePublisher.java;h=bbf7c184e353d192966490051c79020fe9661d34;hb=b8a896e6dfc47374f99efee157683dc8a7ef8860;hp=0d21f7dd02f1b0200a5c1ee0a452365ee3190257;hpb=6a192f0eeedc302ae0b506d04f9d79b34406aef5;p=mdsal.git diff --git a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/store/DOMStoreTreeChangePublisher.java b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/store/DOMStoreTreeChangePublisher.java index 0d21f7dd02..bbf7c184e3 100644 --- a/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/store/DOMStoreTreeChangePublisher.java +++ b/dom/mdsal-dom-spi/src/main/java/org/opendaylight/mdsal/dom/spi/store/DOMStoreTreeChangePublisher.java @@ -7,51 +7,44 @@ */ package org.opendaylight.mdsal.dom.spi.store; +import org.eclipse.jdt.annotation.NonNull; +import org.opendaylight.mdsal.dom.api.DOMDataBroker.DataTreeChangeExtension; import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener; - -import javax.annotation.Nonnull; -import org.opendaylight.yangtools.concepts.ListenerRegistration; +import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; /** - * Interface implemented by DOMStore implementations which allow registration - * of {@link DOMDataTreeChangeListener} instances. + * Interface implemented by DOMStore implementations which allow registration of {@link DOMDataTreeChangeListener} + * instances. */ public interface DOMStoreTreeChangePublisher { /** - * Registers a {@link DOMDataTreeChangeListener} to receive - * notifications when data changes under a given path in the conceptual data - * tree. - *

- * You are able to register for notifications for any node or subtree - * which can be represented using {@link YangInstanceIdentifier}. - *

- * - * You are able to register for data change notifications for a subtree or leaf - * even if it does not exist. You will receive notification once that node is - * created. - *

- * If there is any pre-existing data in data tree on path for which you are - * registering, you will receive initial data change event, which will - * contain all pre-existing data, marked as created. + * Registers a {@link DOMDataTreeChangeListener} to receive notifications when data changes under a given path in + * the conceptual data tree. See + * {@link DataTreeChangeExtension#registerTreeChangeListener(DOMDataTreeIdentifier, DOMDataTreeChangeListener)} for + * full semantics. * - *

- * This method returns a {@link ListenerRegistration} object. To - * "unregister" your listener for changes call the {@link ListenerRegistration#close()} - * method on this returned object. - *

- * You MUST explicitly unregister your listener when you no longer want to receive - * notifications. This is especially true in OSGi environments, where failure to - * do so during bundle shutdown can lead to stale listeners being still registered. + * @param treeId Data tree identifier of the subtree which should be watched for changes. + * @param listener Listener instance which is being registered + * @return A {@link Registration} registration object, which may be used to unregister your listener using + * {@link Registration#close()} to stop delivery of change events. + */ + @NonNull Registration registerTreeChangeListener(@NonNull YangInstanceIdentifier treeId, + @NonNull DOMDataTreeChangeListener listener); + + /** + * Registers a {@link DOMDataTreeChangeListener} to receive notifications when data changes under a given path in + * the conceptual data tree. See {@link DataTreeChangeExtension#registerLegacyTreeChangeListener( + * DOMDataTreeIdentifier, DOMDataTreeChangeListener)} for full semantics. * - * @param treeId - * Data tree identifier of the subtree which should be watched for - * changes. - * @param listener - * Listener instance which is being registered - * @return Listener registration object, which may be used to unregister - * your listener using {@link ListenerRegistration#close()} to stop - * delivery of change events. + * @param treeId Data tree identifier of the subtree which should be watched for changes. + * @param listener Listener instance which is being registered + * @return A {@link Registration} registration object, which may be used to unregister your listener using + * {@link Registration#close()} to stop delivery of change events. + * @deprecated Legacy support class */ - @Nonnull ListenerRegistration registerTreeChangeListener(@Nonnull YangInstanceIdentifier treeId, @Nonnull L listener); + @Deprecated(since = "13.0.0", forRemoval = true) + @NonNull Registration registerLegacyTreeChangeListener(@NonNull YangInstanceIdentifier treeId, + @NonNull DOMDataTreeChangeListener listener); }