blob: 060ac7d2e3dc54f4d4f08e3c6aa2d8cd81eeac6d [file] [log] [blame]
tom0872a172014-09-23 11:24:26 -07001package org.onlab.onos.store.serializers;
Yuta HIGUCHIc7052012014-09-22 19:11:00 -07002
3import org.onlab.onos.net.provider.ProviderId;
4
5import com.esotericsoftware.kryo.Kryo;
6import com.esotericsoftware.kryo.Serializer;
7import com.esotericsoftware.kryo.io.Input;
8import com.esotericsoftware.kryo.io.Output;
9
Yuta HIGUCHIc7052012014-09-22 19:11:00 -070010/**
11 * Serializer for {@link ProviderId}.
12 */
13public class ProviderIdSerializer extends Serializer<ProviderId> {
14
15 /**
Yuta HIGUCHI03fec1f2014-10-03 09:13:50 -070016 * Creates {@link ProviderId} serializer instance.
Yuta HIGUCHIc7052012014-09-22 19:11:00 -070017 */
18 public ProviderIdSerializer() {
19 // non-null, immutable
20 super(false, true);
21 }
22
23 @Override
24 public void write(Kryo kryo, Output output, ProviderId object) {
25 output.writeString(object.scheme());
26 output.writeString(object.id());
Yuta HIGUCHI5bdebe32014-10-04 21:40:41 -070027 output.writeBoolean(object.isAncillary());
Yuta HIGUCHIc7052012014-09-22 19:11:00 -070028 }
29
30 @Override
31 public ProviderId read(Kryo kryo, Input input, Class<ProviderId> type) {
32 String scheme = input.readString();
33 String id = input.readString();
Yuta HIGUCHI5bdebe32014-10-04 21:40:41 -070034 boolean isAncillary = input.readBoolean();
35 return new ProviderId(scheme, id, isAncillary);
Yuta HIGUCHIc7052012014-09-22 19:11:00 -070036 }
37
38}