ONOS-7898 Action profile group/member refactoring

Also includes:
- New abstract P4Runtime codec implementation. Currently used for action
profile members/groups encoding/deconding, the plan is to handle all
other codecs via this.
- Improved read requests in P4RuntimeClientImpl
- Removed handling of max group size in P4Runtime driver. Instead, added
modified group translator to specify a max group size by using
information from the pipeline model.

Change-Id: I684bae0184d683bb448ba19863c561f9848479d2
diff --git a/core/api/src/main/java/org/onosproject/net/pi/runtime/PiAction.java b/core/api/src/main/java/org/onosproject/net/pi/runtime/PiAction.java
index 24655b6..78a62fd 100644
--- a/core/api/src/main/java/org/onosproject/net/pi/runtime/PiAction.java
+++ b/core/api/src/main/java/org/onosproject/net/pi/runtime/PiAction.java
@@ -30,21 +30,24 @@
 import static com.google.common.base.Preconditions.checkNotNull;
 
 /**
- * Instance of an action, and its runtime parameters, of a table entry in a protocol-independent pipeline.
+ * Instance of an action, and its runtime parameters, of a table entry in a
+ * protocol-independent pipeline.
  */
 @Beta
 public final class PiAction implements PiTableAction {
 
     private final PiActionId actionId;
-    private final Map<PiActionParamId, PiActionParam> runtimeParams;
+    private final ImmutableMap<PiActionParamId, PiActionParam> runtimeParams;
 
     /**
-     * Creates a new action instance for the given action identifier and runtime parameters.
+     * Creates a new action instance for the given action identifier and runtime
+     * parameters.
      *
      * @param actionId      action identifier
      * @param runtimeParams list of runtime parameters
      */
-    private PiAction(PiActionId actionId, Map<PiActionParamId, PiActionParam> runtimeParams) {
+    private PiAction(PiActionId actionId,
+                     Map<PiActionParamId, PiActionParam> runtimeParams) {
         this.actionId = actionId;
         this.runtimeParams = ImmutableMap.copyOf(runtimeParams);
     }
@@ -64,8 +67,8 @@
     }
 
     /**
-     * Returns all runtime parameters of this action. Return an empty collection if the action doesn't take any runtime
-     * parameters.
+     * Returns all runtime parameters of this action. Return an empty collection
+     * if the action doesn't take any runtime parameters.
      *
      * @return list of byte sequences
      */