Extract common ID generation logic using IdBlockAllocator

- Define IdGenerator<T> interface
- Implement AbstractIdBlockAllocatorBasedIdGenerator<T>, which
  has the common logic for the existing IntentId, FlowId, MatchActionId,
  and MatchActionOperationsId generator implementations.

Change-Id: I7aeea249df1710719760ed477bffe62853577e0f
diff --git a/src/main/java/net/onrc/onos/core/matchaction/MatchActionModule.java b/src/main/java/net/onrc/onos/core/matchaction/MatchActionModule.java
index 78e528c..6ae5d5e 100644
--- a/src/main/java/net/onrc/onos/core/matchaction/MatchActionModule.java
+++ b/src/main/java/net/onrc/onos/core/matchaction/MatchActionModule.java
@@ -7,6 +7,7 @@
 import java.util.Set;
 
 import net.onrc.onos.api.flowmanager.ConflictDetectionPolicy;
+import net.onrc.onos.core.util.IdGenerator;
 
 /**
  * Manages Match-Action entries.
@@ -56,14 +57,14 @@
     }
 
     @Override
-    public MatchActionIdGenerator getMatchActionIdGenerator() {
+    public IdGenerator<MatchActionId> getMatchActionIdGenerator() {
         // TODO Auto-generated method stub
         // use MatchActionIdGeneratorWithIdBlockAllocator.
         return null;
     }
 
     @Override
-    public MatchActionOperationsIdGenerator getMatchActionOperationsIdGenerator() {
+    public IdGenerator<MatchActionOperationsId> getMatchActionOperationsIdGenerator() {
         // TODO Auto-generated method stub
         // use MatchActionOperationsIdGeneratorWithIdBlockAllocator.
         return null;