ListenersBroker requires DOMDataBroker
[netconf.git] / restconf / restconf-nb / src / main / java / org / opendaylight / restconf / nb / rfc8040 / streams / ListenersBroker.java
index 1146ad7230d6a1a7076e3743f6566e42ecca32bb..6cb40860c0369517d40a7e11a3948f0cc86f7961 100644 (file)
@@ -71,6 +71,10 @@ public abstract sealed class ListenersBroker {
      * A ListenersBroker working with Server-Sent Events.
      */
     public static final class ServerSentEvents extends ListenersBroker {
+        public ServerSentEvents(final DOMDataBroker dataBroker) {
+            super(dataBroker);
+        }
+
         @Override
         public URI prepareUriByStreamName(final UriInfo uriInfo, final String streamName) {
             return uriInfo.getBaseUriBuilder()
@@ -83,6 +87,10 @@ public abstract sealed class ListenersBroker {
      * A ListenersBroker working with WebSockets.
      */
     public static final class WebSockets extends ListenersBroker {
+        public WebSockets(final DOMDataBroker dataBroker) {
+            super(dataBroker);
+        }
+
         @Override
         public URI prepareUriByStreamName(final UriInfo uriInfo, final String streamName) {
             final var scheme = switch (uriInfo.getAbsolutePath().getScheme()) {
@@ -209,9 +217,10 @@ public abstract sealed class ListenersBroker {
         NodeIdentifier.create(QName.create(CreateDataChangeEventSubscriptionOutput.QNAME, "stream-name").intern());
 
     private final ConcurrentMap<String, AbstractStream<?>> streams = new ConcurrentHashMap<>();
+    private final DOMDataBroker dataBroker;
 
-    private ListenersBroker() {
-        // Hidden on purpose
+    private ListenersBroker(final DOMDataBroker dataBroker) {
+        this.dataBroker = requireNonNull(dataBroker);
     }
 
     /**
@@ -252,7 +261,7 @@ public abstract sealed class ListenersBroker {
      *
      * @param stream Stream to remove
      */
-    final void removeStream(final DOMDataBroker dataBroker, final AbstractStream<?> stream) {
+    final void removeStream(final AbstractStream<?> stream) {
         // Defensive check to see if we are still tracking the stream
         final var streamName = stream.getStreamName();
         if (streams.get(streamName) != stream) {
@@ -393,7 +402,7 @@ public abstract sealed class ListenersBroker {
 //
 //        final var dataBroker = handlersHolder.dataBroker();
 //        final var schemaHandler = handlersHolder.databindProvider();
-//        listener.setCloseVars(dataBroker, schemaHandler);
+//        listener.setCloseVars(schemaHandler);
 //        listener.listen(dataBroker);
 //
 //        final var uri = prepareUriByStreamName(uriInfo, streamName);
@@ -480,7 +489,7 @@ public abstract sealed class ListenersBroker {
 //        notificationListenerAdapter.setQueryParams(notificationQueryParams);
 //        notificationListenerAdapter.listen(handlersHolder.notificationService());
 //        final DOMDataBroker dataBroker = handlersHolder.dataBroker();
-//        notificationListenerAdapter.setCloseVars(dataBroker, handlersHolder.databindProvider());
+//        notificationListenerAdapter.setCloseVars(handlersHolder.databindProvider());
 //        final MapEntryNode mapToStreams = RestconfStateStreams.notificationStreamEntry(streamName,
 //            notificationListenerAdapter.qnames(), notificationListenerAdapter.getOutputType(), uri);
 //