flows cmd pretty print

Change-Id: I29b0971a5a862c602f8cd36f864f173c6d8330d6
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/criteria/Criteria.java b/core/api/src/main/java/org/onlab/onos/net/flow/criteria/Criteria.java
index e27cc4d..758c51c 100644
--- a/core/api/src/main/java/org/onlab/onos/net/flow/criteria/Criteria.java
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/criteria/Criteria.java
@@ -1,5 +1,7 @@
 package org.onlab.onos.net.flow.criteria;
 
+import static com.google.common.base.MoreObjects.toStringHelper;
+
 import org.onlab.onos.net.PortNumber;
 import org.onlab.onos.net.flow.criteria.Criterion.Type;
 import org.onlab.packet.IpPrefix;
@@ -129,6 +131,12 @@
         public PortNumber port() {
             return this.port;
         }
+
+        @Override
+        public String toString() {
+            return toStringHelper(type().toString())
+                    .add("port", port).toString();
+        }
     }
 
 
@@ -149,6 +157,13 @@
         public MacAddress mac() {
             return this.mac;
         }
+
+        @Override
+        public String toString() {
+            return toStringHelper(type().toString())
+                    .add("mac", mac).toString();
+        }
+
     }
 
     public static final class EthTypeCriterion implements Criterion {
@@ -168,6 +183,12 @@
             return ethType;
         }
 
+        @Override
+        public String toString() {
+            return toStringHelper(type().toString())
+                    .add("ethType", Long.toHexString(ethType)).toString();
+        }
+
     }
 
 
@@ -190,6 +211,11 @@
             return this.ip;
         }
 
+        @Override
+        public String toString() {
+            return toStringHelper(type().toString())
+                    .add("ip", ip).toString();
+        }
 
     }
 
@@ -211,6 +237,12 @@
             return proto;
         }
 
+        @Override
+        public String toString() {
+            return toStringHelper(type().toString())
+                    .add("protocol", Long.toHexString(proto)).toString();
+        }
+
     }
 
 
@@ -231,6 +263,12 @@
             return vlanPcp;
         }
 
+        @Override
+        public String toString() {
+            return toStringHelper(type().toString())
+                    .add("pcp", Long.toHexString(vlanPcp)).toString();
+        }
+
     }
 
 
@@ -252,6 +290,12 @@
             return vlanId;
         }
 
+        @Override
+        public String toString() {
+            return toStringHelper(type().toString())
+                    .add("id", vlanId).toString();
+        }
+
     }
 
 
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/instructions/Instructions.java b/core/api/src/main/java/org/onlab/onos/net/flow/instructions/Instructions.java
index ada96a5..1bf5531 100644
--- a/core/api/src/main/java/org/onlab/onos/net/flow/instructions/Instructions.java
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/instructions/Instructions.java
@@ -1,5 +1,6 @@
 package org.onlab.onos.net.flow.instructions;
 
+import static com.google.common.base.MoreObjects.toStringHelper;
 import static com.google.common.base.Preconditions.checkNotNull;
 
 import org.onlab.onos.net.PortNumber;
@@ -47,7 +48,7 @@
      */
     public static L2ModificationInstruction modL2Src(MacAddress addr) {
         checkNotNull(addr, "Src l2 address cannot be null");
-        return new ModEtherInstruction(L2SubType.L2_SRC, addr);
+        return new ModEtherInstruction(L2SubType.ETH_SRC, addr);
     }
 
     /**
@@ -57,7 +58,7 @@
      */
     public static L2ModificationInstruction modL2Dst(MacAddress addr) {
         checkNotNull(addr, "Dst l2 address cannot be null");
-        return new L2ModificationInstruction.ModEtherInstruction(L2SubType.L2_DST, addr);
+        return new L2ModificationInstruction.ModEtherInstruction(L2SubType.ETH_DST, addr);
     }
 
     /**
@@ -87,7 +88,7 @@
      */
     public static L3ModificationInstruction modL3Src(IpPrefix addr) {
         checkNotNull(addr, "Src l3 address cannot be null");
-        return new ModIPInstruction(L3SubType.L3_SRC, addr);
+        return new ModIPInstruction(L3SubType.IP_SRC, addr);
     }
 
     /**
@@ -97,7 +98,7 @@
      */
     public static L3ModificationInstruction modL3Dst(IpPrefix addr) {
         checkNotNull(addr, "Dst l3 address cannot be null");
-        return new ModIPInstruction(L3SubType.L3_DST, addr);
+        return new ModIPInstruction(L3SubType.IP_DST, addr);
     }
 
 
@@ -110,6 +111,12 @@
         public Type type() {
             return Type.DROP;
         }
+
+        @Override
+        public String toString() {
+            return toStringHelper(type()).toString();
+
+        }
     }
 
 
@@ -128,6 +135,11 @@
         public Type type() {
             return Type.OUTPUT;
         }
+        @Override
+        public String toString() {
+            return toStringHelper(type().toString())
+                    .add("port", port).toString();
+        }
     }
 
 }
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/instructions/L2ModificationInstruction.java b/core/api/src/main/java/org/onlab/onos/net/flow/instructions/L2ModificationInstruction.java
index a0ab04c..8c51624 100644
--- a/core/api/src/main/java/org/onlab/onos/net/flow/instructions/L2ModificationInstruction.java
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/instructions/L2ModificationInstruction.java
@@ -1,5 +1,7 @@
 package org.onlab.onos.net.flow.instructions;
 
+import static com.google.common.base.MoreObjects.toStringHelper;
+
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
 
@@ -15,12 +17,12 @@
         /**
          * Ether src modification.
          */
-        L2_SRC,
+        ETH_SRC,
 
         /**
          * Ether dst modification.
          */
-        L2_DST,
+        ETH_DST,
 
         /**
          * VLAN id modification.
@@ -66,6 +68,13 @@
             return this.mac;
         }
 
+        @Override
+        public String toString() {
+            return toStringHelper(subtype().toString())
+                    .add("mac", mac).toString();
+        }
+
+
     }
 
     /**
@@ -88,6 +97,12 @@
             return this.vlanId;
         }
 
+        @Override
+        public String toString() {
+            return toStringHelper(subtype().toString())
+                    .add("id", vlanId).toString();
+        }
+
     }
 
     /**
@@ -110,6 +125,12 @@
             return this.vlanPcp;
         }
 
+        @Override
+        public String toString() {
+            return toStringHelper(subtype().toString())
+                    .add("pcp", Long.toHexString(vlanPcp)).toString();
+        }
+
     }
 
 
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/instructions/L3ModificationInstruction.java b/core/api/src/main/java/org/onlab/onos/net/flow/instructions/L3ModificationInstruction.java
index aa47634..ae82cd9 100644
--- a/core/api/src/main/java/org/onlab/onos/net/flow/instructions/L3ModificationInstruction.java
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/instructions/L3ModificationInstruction.java
@@ -1,5 +1,7 @@
 package org.onlab.onos.net.flow.instructions;
 
+import static com.google.common.base.MoreObjects.toStringHelper;
+
 import org.onlab.packet.IpPrefix;
 
 /**
@@ -14,12 +16,12 @@
         /**
          * Ether src modification.
          */
-        L3_SRC,
+        IP_SRC,
 
         /**
          * Ether dst modification.
          */
-        L3_DST
+        IP_DST
 
         //TODO: remaining types
     }
@@ -58,5 +60,11 @@
             return this.ip;
         }
 
+        @Override
+        public String toString() {
+            return toStringHelper(subtype().toString())
+                    .add("ip", ip).toString();
+        }
+
     }
 }