- * <p>
- * This method returns a {@link ListenerRegistration} object. To
- * "unregister" your listener for changes call the {@link ListenerRegistration#close()}
- * method on this returned object.
- * <p>
- * 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.