[SDFAB-90] Implement priority mechanism in the Policy framework.

Change-Id: I738956566bfcf1bd5e2d4fcd9bfef153b5fb674a
diff --git a/impl/src/main/java/org/onosproject/segmentrouting/cli/TrafficMatchAddCommand.java b/impl/src/main/java/org/onosproject/segmentrouting/cli/TrafficMatchAddCommand.java
index ad9a432..ddab52e 100644
--- a/impl/src/main/java/org/onosproject/segmentrouting/cli/TrafficMatchAddCommand.java
+++ b/impl/src/main/java/org/onosproject/segmentrouting/cli/TrafficMatchAddCommand.java
@@ -33,6 +33,7 @@
 import org.onosproject.segmentrouting.policy.api.PolicyService;
 import org.onosproject.segmentrouting.policy.api.TrafficMatch;
 import org.onosproject.segmentrouting.policy.api.TrafficMatchId;
+import org.onosproject.segmentrouting.policy.api.TrafficMatchPriority;
 
 /**
  * Command to add a traffic match.
@@ -47,6 +48,11 @@
             required = true, multiValued = false)
     String policyId;
 
+    @Argument(index = 1, name = "priority",
+            description = "priority",
+            required = true, multiValued = false)
+    int priority;
+
     @Option(name = "-sip", aliases = "--srcIp",
             description = "src IP",
             valueToShowInHelp = "10.0.0.1",
@@ -103,10 +109,17 @@
             print("Empty traffic selector is not allowed");
             return;
         }
+        TrafficMatchPriority trafficMatchPriority;
+        try {
+            trafficMatchPriority = new TrafficMatchPriority(priority);
+        } catch (IllegalArgumentException ex) {
+            print(ex.getMessage());
+            return;
+        }
 
         PolicyService policyService = AbstractShellCommand.get(PolicyService.class);
         TrafficMatchId trafficMatchId = policyService.addOrUpdateTrafficMatch(
-                new TrafficMatch(trafficSelector, PolicyId.of(policyId)));
+                new TrafficMatch(trafficSelector, PolicyId.of(policyId), trafficMatchPriority));
         print("Traffic match %s has been submitted", trafficMatchId);
     }