JSON Serializers for Intents

Implements JSON serializers for objects
used by the Intent REST APIs:
- ShortestPathIntent
- LinkEvent
- SwitchPort

Change-Id: I7dfe98d7b9d0d2449af02b1e1f9361a105a7efa5
diff --git a/src/main/java/net/onrc/onos/core/topology/web/serializers/LinkEventSerializer.java b/src/main/java/net/onrc/onos/core/topology/web/serializers/LinkEventSerializer.java
new file mode 100644
index 0000000..2621167
--- /dev/null
+++ b/src/main/java/net/onrc/onos/core/topology/web/serializers/LinkEventSerializer.java
@@ -0,0 +1,43 @@
+package net.onrc.onos.core.topology.web.serializers;
+
+import net.onrc.onos.core.topology.LinkEvent;
+import org.codehaus.jackson.JsonGenerator;
+import org.codehaus.jackson.map.SerializerProvider;
+import org.codehaus.jackson.map.ser.std.SerializerBase;
+
+import java.io.IOException;
+
+/**
+ * JSON serializer for LinkEvents.
+ */
+public class LinkEventSerializer extends SerializerBase<LinkEvent> {
+
+    /**
+     * Public constructor - just calls its super class constructor.
+     */
+    public LinkEventSerializer() {
+        super(LinkEvent.class);
+    }
+
+    /**
+     * Serializes a LinkEvent object.
+     *
+     * @param linkEvent LinkEvent to serialize
+     * @param jsonGenerator generator to add the serialized object to
+     * @param serializerProvider not used
+     * @throws IOException if the JSON serialization fails
+     */
+    @Override
+    public void serialize(final LinkEvent linkEvent,
+                          final JsonGenerator jsonGenerator,
+                          final SerializerProvider serializerProvider)
+            throws IOException {
+
+        jsonGenerator.writeStartObject();
+
+        jsonGenerator.writeObjectField("src", linkEvent.getSrc());
+        jsonGenerator.writeObjectField("dst", linkEvent.getDst());
+
+        jsonGenerator.writeEndObject();
+    }
+}