blob: 44f5cc3f06f224037883c4633f112d1fb8363ba0 [file] [log] [blame]
Yuta HIGUCHIa7f1cdd2014-06-09 15:05:20 -07001package net.onrc.onos.core.topology.web.serializers;
Jonathan Hart891d0502014-02-10 10:04:08 -08002
3import java.io.IOException;
Yuta HIGUCHId830aad2014-07-06 15:02:01 -07004import java.util.Map.Entry;
Jonathan Hart891d0502014-02-10 10:04:08 -08005
Jonathan Hart472062d2014-04-03 10:56:48 -07006import net.onrc.onos.core.topology.Link;
Jonathan Hart891d0502014-02-10 10:04:08 -08007
Jonathan Hart891d0502014-02-10 10:04:08 -08008import org.codehaus.jackson.JsonGenerator;
9import org.codehaus.jackson.map.SerializerProvider;
10import org.codehaus.jackson.map.ser.std.SerializerBase;
Jonathan Hart891d0502014-02-10 10:04:08 -080011
12public class LinkSerializer extends SerializerBase<Link> {
13
Ray Milkey269ffb92014-04-03 14:43:30 -070014 public LinkSerializer() {
15 super(Link.class);
16 }
Jonathan Hart891d0502014-02-10 10:04:08 -080017
Ray Milkey269ffb92014-04-03 14:43:30 -070018 @Override
19 public void serialize(Link link, JsonGenerator jsonGenerator,
20 SerializerProvider serializerProvider)
Ray Milkey7d7f0a02014-06-18 12:52:13 -070021 throws IOException {
Pavlin Radoslavov5cf1fe02014-07-03 22:52:25 -070022
23 //
24 // TODO: For now, the JSON format of the serialized output should
25 // be same as the JSON format of the corresponding class LinkEvent.
26 // In the future, we will use a single serializer.
27 //
Ray Milkey269ffb92014-04-03 14:43:30 -070028 jsonGenerator.writeStartObject();
Pavlin Radoslavov5cf1fe02014-07-03 22:52:25 -070029 jsonGenerator.writeObjectField("src", link.getSrcPort().asSwitchPort());
30 jsonGenerator.writeObjectField("dst", link.getDstPort().asSwitchPort());
Yuta HIGUCHId830aad2014-07-06 15:02:01 -070031 jsonGenerator.writeObjectFieldStart("stringAttributes");
32 for (Entry<String, String> entry : link.getAllStringAttributes().entrySet()) {
33 jsonGenerator.writeStringField(entry.getKey(), entry.getValue());
34 }
35 jsonGenerator.writeEndObject(); // stringAttributes
Ray Milkey269ffb92014-04-03 14:43:30 -070036 jsonGenerator.writeEndObject();
37 }
Jonathan Hart891d0502014-02-10 10:04:08 -080038}