Add Id generator implementation to Match Action

Implement the ID generators for MatchActionId
and MatchActionOperationsId

Change-Id: Iee90771999ed79870c0a3b686f6ddb1228440a91
diff --git a/src/main/java/net/onrc/onos/core/matchaction/MatchActionComponent.java b/src/main/java/net/onrc/onos/core/matchaction/MatchActionComponent.java
index a415316..52e7dd9 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/MatchActionComponent.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/MatchActionComponent.java
@@ -22,7 +22,9 @@
 import net.onrc.onos.core.datagrid.IEventChannel;
 import net.onrc.onos.core.datagrid.IEventChannelListener;
 import net.onrc.onos.core.flowprogrammer.IFlowPusherService;
+import net.onrc.onos.core.registry.IControllerRegistryService;
 import net.onrc.onos.core.util.Dpid;
+import net.onrc.onos.core.util.IdBlockAllocator;
 import net.onrc.onos.core.util.IdGenerator;
 import net.onrc.onos.core.util.SwitchPort;
 
@@ -31,7 +33,6 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-
 /**
  * Manages Match-Action entries.
  * <p>
@@ -57,16 +58,28 @@
     private Thread coordinator;
     private Thread installer;
     private final IDatagridService datagrid;
+    private IControllerRegistryService registryService;
+
+    private MatchActionIdGeneratorWithIdBlockAllocator matchActionIdGenerator;
+    private MatchActionOperationsIdGeneratorWithIdBlockAllocator matchActionOperationsIdGenerator;
 
     public MatchActionComponent(final IDatagridService newDatagrid,
                                 final IFlowPusherService newPusher,
-                                final IFloodlightProviderService newProvider) {
+                                final IFloodlightProviderService newProvider,
+                                final IControllerRegistryService newRegistryService) {
         datagrid = newDatagrid;
         pusher = newPusher;
         provider = newProvider;
+        registryService = newRegistryService;
     }
 
     public void start() {
+        IdBlockAllocator idBlockAllocator = registryService;
+        matchActionIdGenerator =
+                new MatchActionIdGeneratorWithIdBlockAllocator(idBlockAllocator);
+        matchActionOperationsIdGenerator =
+                new MatchActionOperationsIdGeneratorWithIdBlockAllocator(idBlockAllocator);
+
         installSetChannel = datagrid.createChannel("onos.matchaction.installSetChannel",
                 String.class,
                 MatchActionOperations.class);
@@ -387,12 +400,12 @@
 
     @Override
     public IdGenerator<MatchActionId> getMatchActionIdGenerator() {
-        return null;
+        return matchActionIdGenerator;
     }
 
     @Override
     public IdGenerator<MatchActionOperationsId> getMatchActionOperationsIdGenerator() {
-        return null;
+        return matchActionOperationsIdGenerator;
     }
 
 }