ONOS-743 - Use REST API Codecs to generate JSON for CLI commands

Change-Id: I25e0840d1af03341c638f837498c95275e6cf31b
diff --git a/cli/src/main/java/org/onosproject/cli/net/HostsListCommand.java b/cli/src/main/java/org/onosproject/cli/net/HostsListCommand.java
index 10d015f..a90627e 100644
--- a/cli/src/main/java/org/onosproject/cli/net/HostsListCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/HostsListCommand.java
@@ -15,19 +15,18 @@
  */
 package org.onosproject.cli.net;
 
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.fasterxml.jackson.databind.node.ObjectNode;
+import java.util.Collections;
+import java.util.List;
+
 import org.apache.karaf.shell.commands.Command;
 import org.onosproject.cli.AbstractShellCommand;
 import org.onosproject.cli.Comparators;
 import org.onosproject.net.Host;
 import org.onosproject.net.host.HostService;
-import org.onlab.packet.IpAddress;
 
-import java.util.Collections;
-import java.util.List;
+import com.fasterxml.jackson.databind.JsonNode;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ArrayNode;
 
 import static com.google.common.collect.Lists.newArrayList;
 
@@ -54,30 +53,11 @@
     }
 
     // Produces JSON structure.
-    private static JsonNode json(Iterable<Host> hosts) {
+    private JsonNode json(Iterable<Host> hosts) {
         ObjectMapper mapper = new ObjectMapper();
         ArrayNode result = mapper.createArrayNode();
-        for (Host host : hosts) {
-            result.add(json(mapper, host));
-        }
-        return result;
-    }
 
-    // Produces JSON structure.
-    private static JsonNode json(ObjectMapper mapper, Host host) {
-        ObjectNode loc = LinksListCommand.json(mapper, host.location())
-                .put("time", host.location().time());
-        ArrayNode ips = mapper.createArrayNode();
-        for (IpAddress ip : host.ipAddresses()) {
-            ips.add(ip.toString());
-        }
-        ObjectNode result = mapper.createObjectNode()
-                .put("id", host.id().toString())
-                .put("mac", host.mac().toString())
-                .put("vlan", host.vlan().toString());
-        result.set("location", loc);
-        result.set("ips", ips);
-        result.set("annotations", annotations(mapper, host.annotations()));
+        hosts.forEach(host -> result.add(jsonForEntity(host, Host.class)));
         return result;
     }