Add a API to process a port description using consumer

Originally, there is a only API to discover the ports from device.
It fetches all ports from devices and returns as list.

If port fetching takes long, we cannot see the port update immediately until all ports are fetched.
So, I have added a API to fetch a port immediately, so that caller can get the updated port immediately when it is discovered.

Change-Id: I76571f9d015ee436edb8fe30ba5436352cc3c1ed
diff --git a/core/api/src/main/java/org/onosproject/net/device/DeviceDescriptionDiscovery.java b/core/api/src/main/java/org/onosproject/net/device/DeviceDescriptionDiscovery.java
index 29ea15b..ea4bf07 100644
--- a/core/api/src/main/java/org/onosproject/net/device/DeviceDescriptionDiscovery.java
+++ b/core/api/src/main/java/org/onosproject/net/device/DeviceDescriptionDiscovery.java
@@ -19,6 +19,7 @@
 import org.onosproject.net.driver.HandlerBehaviour;
 
 import java.util.List;
+import java.util.function.Consumer;
 
 /**
  * Handler behaviour capable of creating device and port descriptions.
@@ -52,4 +53,12 @@
      */
     List<PortDescription> discoverPortDetails();
 
+    /**
+     * Invoke given lamda function when port descriptions are discovered.
+     *
+     * @param consumer consumer to process port description
+     */
+    default void discoverPortDetails(Consumer<PortDescription> consumer) {
+        throw new UnsupportedOperationException("Need to be implemented by subclass");
+    }
 }