ONOS-574 - Complete REST APIs for flows

- codecs for all objects referenced by flows
- codecs for HostToHost and PointToPoint intents
- standardized on context.codec() rather than direct calls to new codec()

Change-Id: I94fcb6e31a9161132c6efc2793b9c46fa3cc4570
diff --git a/web/api/src/test/java/org/onosproject/rest/FlowsResourceTest.java b/web/api/src/test/java/org/onosproject/rest/FlowsResourceTest.java
index 5d50eac..8d6232e 100644
--- a/web/api/src/test/java/org/onosproject/rest/FlowsResourceTest.java
+++ b/web/api/src/test/java/org/onosproject/rest/FlowsResourceTest.java
@@ -49,7 +49,6 @@
 
 import com.eclipsesource.json.JsonArray;
 import com.eclipsesource.json.JsonObject;
-import com.eclipsesource.json.JsonValue;
 import com.google.common.collect.ImmutableSet;
 import com.sun.jersey.api.client.UniformInterfaceException;
 import com.sun.jersey.api.client.WebResource;
@@ -313,15 +312,17 @@
                 }
                 for (final Instruction instruction : flow.treatment().instructions()) {
                     boolean instructionFound = false;
-                    final String instructionString = instruction.toString();
                     for (int instructionIndex = 0; instructionIndex < jsonInstructions.size(); instructionIndex++) {
-                        final JsonValue value = jsonInstructions.get(instructionIndex);
-                        if (value.asString().equals(instructionString)) {
+                        final String jsonType =
+                                jsonInstructions.get(instructionIndex)
+                                        .asObject().get("type").asString();
+                        final String instructionType = instruction.type().name();
+                        if (jsonType.equals(instructionType)) {
                             instructionFound = true;
                         }
                     }
                     if (!instructionFound) {
-                        reason = "instruction " + instructionString;
+                        reason = "instruction " + instruction.toString();
                         return false;
                     }
                 }
@@ -338,15 +339,18 @@
                 }
                 for (final Criterion criterion : flow.selector().criteria()) {
                     boolean criterionFound = false;
-                    final String criterionString = criterion.toString();
+
                     for (int criterionIndex = 0; criterionIndex < jsonCriteria.size(); criterionIndex++) {
-                        final JsonValue value = jsonCriteria.get(criterionIndex);
-                        if (value.asString().equals(criterionString)) {
+                        final String jsonType =
+                                jsonCriteria.get(criterionIndex)
+                                        .asObject().get("type").asString();
+                        final String criterionType = criterion.type().name();
+                        if (jsonType.equals(criterionType)) {
                             criterionFound = true;
                         }
                     }
                     if (!criterionFound) {
-                        reason = "criterion " + criterionString;
+                        reason = "criterion " + criterion.toString();
                         return false;
                     }
                 }