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/runtime/PiTernaryFieldMatch.java b/core/api/src/main/java/org/onosproject/net/pi/runtime/PiTernaryFieldMatch.java
index 29679ba..8406aed 100644
--- a/core/api/src/main/java/org/onosproject/net/pi/runtime/PiTernaryFieldMatch.java
+++ b/core/api/src/main/java/org/onosproject/net/pi/runtime/PiTernaryFieldMatch.java
@@ -19,13 +19,14 @@
 import com.google.common.annotations.Beta;
 import com.google.common.base.Objects;
 import org.onlab.util.ImmutableByteSequence;
+import org.onosproject.net.pi.model.PiMatchFieldId;
 import org.onosproject.net.pi.model.PiMatchType;
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 
 /**
- * Ternary field match in a protocol-independent pipeline.
+ * Instance of a ternary field match in a protocol-independent pipeline.
  */
 @Beta
 public final class PiTernaryFieldMatch extends PiFieldMatch {
@@ -37,10 +38,10 @@
      * Creates a new ternary field match.
      *
      * @param fieldId field identifier
-     * @param value value
-     * @param mask  mask
+     * @param value   value
+     * @param mask    mask
      */
-    public PiTernaryFieldMatch(PiHeaderFieldId fieldId, ImmutableByteSequence value,
+    public PiTernaryFieldMatch(PiMatchFieldId fieldId, ImmutableByteSequence value,
                                ImmutableByteSequence mask) {
         super(fieldId);
         this.value = checkNotNull(value);
@@ -49,11 +50,6 @@
                       "Value and mask must have same non-zero size");
     }
 
-    @Override
-    public PiMatchType type() {
-        return PiMatchType.TERNARY;
-    }
-
     /**
      * Returns the value matched by this field.
      *
@@ -73,6 +69,11 @@
     }
 
     @Override
+    public PiMatchType type() {
+        return PiMatchType.TERNARY;
+    }
+
+    @Override
     public boolean equals(Object o) {
         if (this == o) {
             return true;