Preperation for the FloodlightModule implementaion of MatchActionModule.

- Marked MatchActionFloodlightService interface as IFloodlightService.
- MatchActionFloodlightService extends MatchActionService and IFloodlightService.
- Added methods for getting ID generators to MatchActionService.
- Updated to use the MatchActionService in FlowManagerModule.
- This task is a part of ONOS-1730.

Change-Id: I86726939a2af905c378af57a9337c49a2a2425d5
diff --git a/src/main/java/net/onrc/onos/core/flowmanager/FlowManagerModule.java b/src/main/java/net/onrc/onos/core/flowmanager/FlowManagerModule.java
index 1a3523b..ccf6081 100644
--- a/src/main/java/net/onrc/onos/core/flowmanager/FlowManagerModule.java
+++ b/src/main/java/net/onrc/onos/core/flowmanager/FlowManagerModule.java
@@ -26,10 +26,12 @@
 import net.onrc.onos.api.flowmanager.FlowManagerFloodlightService;
 import net.onrc.onos.api.flowmanager.FlowManagerListener;
 import net.onrc.onos.core.datagrid.ISharedCollectionsService;
-import net.onrc.onos.core.matchaction.MatchActionIdGeneratorWithIdBlockAllocator;
+import net.onrc.onos.core.matchaction.MatchActionFloodlightService;
+import net.onrc.onos.core.matchaction.MatchActionIdGenerator;
 import net.onrc.onos.core.matchaction.MatchActionOperationEntry;
 import net.onrc.onos.core.matchaction.MatchActionOperations;
-import net.onrc.onos.core.matchaction.MatchActionOperationsIdGeneratorWithIdBlockAllocator;
+import net.onrc.onos.core.matchaction.MatchActionOperationsIdGenerator;
+import net.onrc.onos.core.matchaction.MatchActionService;
 import net.onrc.onos.core.registry.IControllerRegistryService;
 import net.onrc.onos.core.util.IdBlockAllocator;
 
@@ -43,8 +45,9 @@
     private ConflictDetectionPolicy conflictDetectionPolicy;
     private FlowIdGeneratorWithIdBlockAllocator flowIdGenerator;
     private FlowBatchIdGeneratorWithIdBlockAllocator flowBatchIdGenerator;
-    private MatchActionIdGeneratorWithIdBlockAllocator maIdGenerator;
-    private MatchActionOperationsIdGeneratorWithIdBlockAllocator maoIdGenerator;
+    private MatchActionIdGenerator maIdGenerator;
+    private MatchActionOperationsIdGenerator maoIdGenerator;
+    private MatchActionService matchActionService;
     private IControllerRegistryService registryService;
     private ISharedCollectionsService sharedCollectionService;
     private FlowMap flowMap;
@@ -69,33 +72,27 @@
     @Override
     public Collection<Class<? extends IFloodlightService>> getModuleDependencies() {
         return Arrays.asList(
-                // TODO: Add MatchActionService.class.
-                // The class has to be an instance of IFloodlightService.
+                MatchActionFloodlightService.class,
                 ISharedCollectionsService.class,
                 IControllerRegistryService.class);
     }
 
     @Override
     public void init(FloodlightModuleContext context) throws FloodlightModuleException {
+        matchActionService = context.getServiceImpl(MatchActionFloodlightService.class);
         registryService = context.getServiceImpl(IControllerRegistryService.class);
         sharedCollectionService = context.getServiceImpl(ISharedCollectionsService.class);
     }
 
     @Override
     public void startUp(FloodlightModuleContext context) throws FloodlightModuleException {
-
         IdBlockAllocator idBlockAllocator = registryService;
         flowIdGenerator =
                 new FlowIdGeneratorWithIdBlockAllocator(idBlockAllocator);
         flowBatchIdGenerator =
                 new FlowBatchIdGeneratorWithIdBlockAllocator(idBlockAllocator);
-
-        // TODO: MatchAction related ID generator should be retrieved from
-        // MatchAction Module.
-        maIdGenerator =
-                new MatchActionIdGeneratorWithIdBlockAllocator(idBlockAllocator);
-        maoIdGenerator =
-                new MatchActionOperationsIdGeneratorWithIdBlockAllocator(idBlockAllocator);
+        maIdGenerator = matchActionService.getMatchActionIdGenerator();
+        maoIdGenerator = matchActionService.getMatchActionOperationsIdGenerator();
 
         flowMap = new SharedFlowMap(sharedCollectionService);
         flowBatchMap = new SharedFlowBatchMap(sharedCollectionService);