Specialize RemoteDeviceHandler to NetconfSessionPreferences
[netconf.git] / netconf / sal-netconf-connector / src / main / java / org / opendaylight / netconf / sal / connect / api / RemoteDeviceHandler.java
index 699c39945bd2788eb3151af022b3d940d736bba2..650149d7e83bc20302f9b3eaafc19c31655b8f5e 100644 (file)
@@ -7,20 +7,53 @@
  */
 package org.opendaylight.netconf.sal.connect.api;
 
-import org.opendaylight.controller.md.sal.dom.api.DOMNotification;
-import org.opendaylight.controller.md.sal.dom.api.DOMRpcService;
-import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.mdsal.dom.api.DOMActionService;
+import org.opendaylight.mdsal.dom.api.DOMNotification;
+import org.opendaylight.mdsal.dom.api.DOMRpcService;
+import org.opendaylight.netconf.sal.connect.netconf.listener.NetconfSessionPreferences;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.netconf.node.topology.rev150114.NetconfNode;
+import org.opendaylight.yangtools.rfc8528.data.api.MountPointContext;
 
-public interface RemoteDeviceHandler<PREF> extends AutoCloseable {
+public interface RemoteDeviceHandler extends AutoCloseable {
+    /**
+     * When device connected, init new mount point with specific schema context and DOM services.
+     *
+     * @param remoteSchemaContext - schema context of connected device
+     * @param sessionPreferences - session of device
+     * @param deviceRpc - {@link DOMRpcService} of device
+     */
+    default void onDeviceConnected(final MountPointContext remoteSchemaContext,
+            final NetconfSessionPreferences sessionPreferences, final DOMRpcService deviceRpc) {
+        // DO NOTHING
+    }
 
-    void onDeviceConnected(SchemaContext remoteSchemaContext,
-                           PREF netconfSessionPreferences, DOMRpcService deviceRpc);
+    /**
+     * When device connected, init new mount point with specific schema context and DOM services.
+     *
+     * @param mountContext - MountPointContext of connected device
+     * @param sessionPreferences - session of device
+     * @param deviceRpc - {@link DOMRpcService} of device
+     * @param deviceAction - {@link DOMActionService} of device
+     */
+    default void onDeviceConnected(final MountPointContext mountContext,
+            final NetconfSessionPreferences sessionPreferences,
+            final DOMRpcService deviceRpc, final DOMActionService deviceAction) {
+        // DO NOTHING
+    }
 
+    default void onDeviceReconnected(final NetconfSessionPreferences sessionPreferences, final NetconfNode node) {
+        // DO NOTHING
+    }
+
+    // FIXME: document this node
     void onDeviceDisconnected();
 
+    // FIXME: document this node
     void onDeviceFailed(Throwable throwable);
 
+    // FIXME: document this node
     void onNotification(DOMNotification domNotification);
 
+    @Override
     void close();
 }