Built REST APIs to look at the in-memory network graph state.
Amended to clean up serializer code.

Change-Id: Ie020d1173fa108eec12e324e3ae37353c7ca8a00
diff --git a/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/NetworkGraphSwitchesResource.java b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/NetworkGraphSwitchesResource.java
new file mode 100644
index 0000000..92e94f6
--- /dev/null
+++ b/src/main/java/net/onrc/onos/ofcontroller/networkgraph/web/NetworkGraphSwitchesResource.java
@@ -0,0 +1,43 @@
+package net.onrc.onos.ofcontroller.networkgraph.web;
+
+import java.io.IOException;
+
+import net.onrc.onos.ofcontroller.networkgraph.INetworkGraphService;
+import net.onrc.onos.ofcontroller.networkgraph.NetworkGraph;
+import net.onrc.onos.ofcontroller.networkgraph.serializers.PortSerializer;
+import net.onrc.onos.ofcontroller.networkgraph.serializers.SwitchSerializer;
+
+import org.codehaus.jackson.Version;
+import org.codehaus.jackson.map.ObjectMapper;
+import org.codehaus.jackson.map.module.SimpleModule;
+import org.restlet.resource.Get;
+import org.restlet.resource.ServerResource;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class NetworkGraphSwitchesResource extends ServerResource {
+	
+	private static final Logger log = LoggerFactory.getLogger(NetworkGraphSwitchesResource.class);
+
+	@Get("json")
+	public String retrieve() {
+		INetworkGraphService networkGraphService = (INetworkGraphService) getContext().getAttributes().
+				get(INetworkGraphService.class.getCanonicalName());
+		
+		NetworkGraph graph = networkGraphService.getNetworkGraph();
+		
+		ObjectMapper mapper = new ObjectMapper();
+		SimpleModule module = new SimpleModule("module", new Version(1, 0, 0, null));
+		module.addSerializer(new SwitchSerializer());
+		module.addSerializer(new PortSerializer());
+		mapper.registerModule(module);
+		
+		try {
+			return mapper.writeValueAsString(graph.getSwitches());
+		} catch (IOException e) {
+			log.error("Error writing switch list to JSON", e);
+			return "";
+		}
+	}
+
+}