ONOS-3758 restructuring driver module with sub-modules for different drivers

Change-Id: I3c65d19be87066448655610abf9d8b89385a4141
diff --git a/core/api/src/main/java/org/onosproject/net/driver/DefaultDriver.java b/core/api/src/main/java/org/onosproject/net/driver/DefaultDriver.java
index f1d1fb4..781faf9 100644
--- a/core/api/src/main/java/org/onosproject/net/driver/DefaultDriver.java
+++ b/core/api/src/main/java/org/onosproject/net/driver/DefaultDriver.java
@@ -101,7 +101,6 @@
     public Driver merge(Driver other) {
         checkArgument(parents == null || Objects.equals(parent(), other.parent()),
                       "Parent drivers are not the same");
-
         // Merge the behaviours.
         Map<Class<? extends Behaviour>, Class<? extends Behaviour>>
                 behaviours = Maps.newHashMap();
@@ -261,4 +260,23 @@
                 .toString();
     }
 
+    @Override
+    public boolean equals(Object driverToBeCompared) {
+        if (this == driverToBeCompared) {
+            return true;
+        }
+        if (driverToBeCompared == null || getClass() != driverToBeCompared.getClass()) {
+            return false;
+        }
+
+        DefaultDriver driver = (DefaultDriver) driverToBeCompared;
+
+        return name.equals(driver.name());
+
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hashCode(name);
+    }
 }