ONOS-7066 ONOS-7067 PI abstractions refactoring and P4Info model parser

Includes changes previously reviewed in #15607, #15877, and #15955.

Change-Id: Ie2ff62e415f2099832ebfe05961a879b7b188fc3
diff --git a/core/api/src/main/java/org/onosproject/net/pi/model/PiActionModel.java b/core/api/src/main/java/org/onosproject/net/pi/model/PiActionModel.java
index 8fd8dc4..4dad230 100644
--- a/core/api/src/main/java/org/onosproject/net/pi/model/PiActionModel.java
+++ b/core/api/src/main/java/org/onosproject/net/pi/model/PiActionModel.java
@@ -18,7 +18,7 @@
 
 import com.google.common.annotations.Beta;
 
-import java.util.List;
+import java.util.Collection;
 import java.util.Optional;
 
 /**
@@ -26,26 +26,27 @@
  */
 @Beta
 public interface PiActionModel {
-    /**
-     * Returns the name of this action.
-     *
-     * @return a string value
-     */
-    String name();
 
     /**
-     * Returns the model of this action's parameter defined by the given name, if present.
+     * Returns the ID of the action.
      *
-     * @param name action name
+     * @return action ID
+     */
+    PiActionId id();
+
+    /**
+     * Returns the model of the action's parameter defined by the given ID, if present.
+     *
+     * @param paramId parameter ID
      * @return action parameter model
      */
-    Optional<PiActionParamModel> param(String name);
+    Optional<PiActionParamModel> param(PiActionParamId paramId);
 
     /**
-     * Returns the list of action parameter models, ordered according to the same action parameters
-     * defined in the pipeline model.
+     * Returns the collection of all parameter models for the action, or an empty collection if this action has no
+     * parameters.
      *
-     * @return list of action parameter models
+     * @return collection of action parameter models
      */
-    List<PiActionParamModel> params();
+    Collection<PiActionParamModel> params();
 }