[ONOS-5833] (vCore) Refactor vnet services
to enable event delivery mechanism

Changes
1. Abstact Vnet Listener Manager is added
2. Refactor Vnet services to use it

Change-Id: I178342bfc882c0739f216960358a281903e1385a
diff --git a/incubator/net/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkPathManager.java b/incubator/net/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkPathManager.java
index ad81141..7d6555a 100644
--- a/incubator/net/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkPathManager.java
+++ b/incubator/net/src/main/java/org/onosproject/incubator/net/virtual/impl/VirtualNetworkPathManager.java
@@ -15,7 +15,7 @@
  */
 package org.onosproject.incubator.net.virtual.impl;
 
-import org.onosproject.incubator.net.virtual.VirtualNetwork;
+import org.onosproject.incubator.net.virtual.NetworkId;
 import org.onosproject.incubator.net.virtual.VirtualNetworkService;
 import org.onosproject.incubator.net.virtual.VnetService;
 import org.onosproject.net.DisjointPath;
@@ -31,8 +31,6 @@
 import java.util.Map;
 import java.util.Set;
 
-import static com.google.common.base.Preconditions.checkNotNull;
-
 /**
  * Path service implementation built on the virtual network service.
  */
@@ -40,23 +38,21 @@
         extends AbstractPathService
         implements PathService, VnetService {
 
-    private static final String NETWORK_NULL = "Network ID cannot be null";
-
-    private final VirtualNetwork network;
+    private final NetworkId networkId;
 
     /**
      * Creates a new virtual network path service object.
      *
      * @param virtualNetworkManager virtual network manager service
-     * @param network               virtual network
+     * @param networkId a virtual network identifier
      */
 
     public VirtualNetworkPathManager(VirtualNetworkService virtualNetworkManager,
-                                     VirtualNetwork network) {
-        checkNotNull(network, NETWORK_NULL);
-        this.network = network;
-        topologyService = virtualNetworkManager.get(network.id(), TopologyService.class);
-        hostService = virtualNetworkManager.get(network.id(), HostService.class);
+                                     NetworkId networkId) {
+        this.networkId = networkId;
+
+        topologyService = virtualNetworkManager.get(networkId(), TopologyService.class);
+        hostService = virtualNetworkManager.get(networkId(), HostService.class);
     }
 
     @Override
@@ -76,7 +72,7 @@
     }
 
     @Override
-    public VirtualNetwork network() {
-        return network;
+    public NetworkId networkId() {
+        return this.networkId;
     }
 }