Add an option to flows/groups command that print flow/group count only

Change-Id: Iaf66eac2fffbb14756d48164f8469e4afa1b9fb8
diff --git a/cli/src/main/java/org/onosproject/cli/net/FlowsListCommand.java b/cli/src/main/java/org/onosproject/cli/net/FlowsListCommand.java
index b6477c3..2480131 100644
--- a/cli/src/main/java/org/onosproject/cli/net/FlowsListCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/FlowsListCommand.java
@@ -78,6 +78,11 @@
             required = false, multiValued = false)
     private boolean shortOutput = false;
 
+    @Option(name = "-c", aliases = "--count",
+            description = "Print flow count only",
+            required = false, multiValued = false)
+    private boolean countOnly = false;
+
     private Predicate<FlowEntry> predicate = TRUE_PREDICATE;
 
     @Override
@@ -193,7 +198,7 @@
                               CoreService coreService) {
         boolean empty = flows == null || flows.isEmpty();
         print("deviceId=%s, flowRuleCount=%d", d.id(), empty ? 0 : flows.size());
-        if (empty) {
+        if (empty || countOnly) {
             return;
         }
 
diff --git a/cli/src/main/java/org/onosproject/cli/net/GroupsListCommand.java b/cli/src/main/java/org/onosproject/cli/net/GroupsListCommand.java
index 8083c96..1428ff5 100644
--- a/cli/src/main/java/org/onosproject/cli/net/GroupsListCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/GroupsListCommand.java
@@ -23,6 +23,7 @@
 
 import org.apache.karaf.shell.commands.Argument;
 import org.apache.karaf.shell.commands.Command;
+import org.apache.karaf.shell.commands.Option;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.cli.Comparators;
 import org.onosproject.net.Device;
@@ -60,6 +61,11 @@
             required = false, multiValued = false)
     String state;
 
+    @Option(name = "-c", aliases = "--count",
+            description = "Print group count only",
+            required = false, multiValued = false)
+    private boolean countOnly = false;
+
     private JsonNode json(Map<Device, List<Group>> sortedGroups) {
         ArrayNode result = mapper().createArrayNode();
 
@@ -122,6 +128,11 @@
 
     private void printGroups(DeviceId deviceId, List<Group> groups) {
         print("deviceId=%s, groupCount=%s", deviceId, groups.size());
+
+        if (countOnly) {
+            return;
+        }
+
         for (Group group : groups) {
             print(FORMAT, Integer.toHexString(group.id().id()), group.state(), group.type(),
                   group.bytes(), group.packets(), group.appId().name());