Define a class representing a set of discrete resources

Change-Id: Iaafc5ca68ae3b1330e6c8b0b2476d835a42731b6
diff --git a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentDiscreteResourceSubStore.java b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentDiscreteResourceSubStore.java
index a67ebb2..c19e6c3 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentDiscreteResourceSubStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/resource/impl/ConsistentDiscreteResourceSubStore.java
@@ -30,7 +30,6 @@
 import org.onosproject.store.service.TransactionContext;
 import org.onosproject.store.service.Versioned;
 
-import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -42,19 +41,19 @@
 
 class ConsistentDiscreteResourceSubStore {
     private ConsistentMap<DiscreteResourceId, ResourceConsumerId> consumers;
-    private ConsistentMap<DiscreteResourceId, Set<DiscreteResource>> childMap;
+    private ConsistentMap<DiscreteResourceId, DiscreteResources> childMap;
 
     ConsistentDiscreteResourceSubStore(StorageService service) {
         this.consumers = service.<DiscreteResourceId, ResourceConsumerId>consistentMapBuilder()
                 .withName(MapNames.DISCRETE_CONSUMER_MAP)
                 .withSerializer(SERIALIZER)
                 .build();
-        this.childMap = service.<DiscreteResourceId, Set<DiscreteResource>>consistentMapBuilder()
+        this.childMap = service.<DiscreteResourceId, DiscreteResources>consistentMapBuilder()
                 .withName(MapNames.DISCRETE_CHILD_MAP)
                 .withSerializer(SERIALIZER)
                 .build();
 
-        Tools.retryable(() -> childMap.put(Resource.ROOT.id(), new LinkedHashSet<>()),
+        Tools.retryable(() -> childMap.put(Resource.ROOT.id(), DiscreteResources.empty()),
                 ConsistentMapException.class, MAX_RETRIES, RETRY_DELAY);
     }
 
@@ -73,13 +72,13 @@
     }
 
     Set<DiscreteResource> getChildResources(DiscreteResourceId parent) {
-        Versioned<Set<DiscreteResource>> children = childMap.get(parent);
+        Versioned<DiscreteResources> children = childMap.get(parent);
 
         if (children == null) {
             return ImmutableSet.of();
         }
 
-        return children.value();
+        return children.value().values();
     }
 
     boolean isAvailable(DiscreteResource resource) {