blob: 36d0a2185114fe6285790e85cf89ad3a5b719c97 [file] [log] [blame]
tom0872a172014-09-23 11:24:26 -07001package org.onlab.onos.store.serializers;
Yuta HIGUCHIf6509f62014-09-23 09:47:42 -07002
3import java.net.URI;
4
5import org.onlab.onos.net.DeviceId;
6
7import com.esotericsoftware.kryo.Kryo;
8import com.esotericsoftware.kryo.Serializer;
9import com.esotericsoftware.kryo.io.Input;
10import com.esotericsoftware.kryo.io.Output;
11
Yuta HIGUCHIf6509f62014-09-23 09:47:42 -070012/**
13* Kryo Serializer for {@link DeviceId}.
14*/
15public final class DeviceIdSerializer extends Serializer<DeviceId> {
16
Yuta HIGUCHI03fec1f2014-10-03 09:13:50 -070017 /**
18 * Creates {@link DeviceId} serializer instance.
19 */
20 public DeviceIdSerializer() {
21 // non-null, immutable
22 super(false, true);
23 }
24
Yuta HIGUCHIf6509f62014-09-23 09:47:42 -070025 @Override
26 public void write(Kryo kryo, Output output, DeviceId object) {
27 kryo.writeObject(output, object.uri());
28 }
29
30 @Override
31 public DeviceId read(Kryo kryo, Input input, Class<DeviceId> type) {
32 final URI uri = kryo.readObject(input, URI.class);
33 return DeviceId.deviceId(uri);
34 }
35}