ONOS-895: Group manager implementation

Change-Id: Ie183f722fa39012f8de056961715c325e2388e63
diff --git a/core/api/src/main/java/org/onosproject/net/group/GroupBuckets.java b/core/api/src/main/java/org/onosproject/net/group/GroupBuckets.java
index 10f4eca..5ca8f30 100644
--- a/core/api/src/main/java/org/onosproject/net/group/GroupBuckets.java
+++ b/core/api/src/main/java/org/onosproject/net/group/GroupBuckets.java
@@ -45,4 +45,25 @@
         return buckets;
     }
 
+    @Override
+    public int hashCode() {
+        int result = 17;
+        int combinedHash = 0;
+        for (GroupBucket bucket:buckets) {
+            combinedHash = combinedHash + bucket.hashCode();
+        }
+        result = 31 * result + combinedHash;
+
+        return result;
+    }
+
+    @Override
+    public boolean equals(Object obj) {
+        if (obj instanceof GroupBuckets) {
+            return (this.buckets.containsAll(((GroupBuckets) obj).buckets) &&
+                    ((GroupBuckets) obj).buckets.containsAll(this.buckets));
+        }
+        return false;
+    }
+
 }
\ No newline at end of file