blob: 26dada43ffe3f7844a96c6eee1466f0ba367cc2b [file] [log] [blame]
Thomas Vachuska4f1a60c2014-10-28 13:39:07 -07001/*
2 * Copyright 2014 Open Networking Laboratory
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
tom0872a172014-09-23 11:24:26 -070016package org.onlab.onos.store.serializers;
Yuta HIGUCHIc7052012014-09-22 19:11:00 -070017
18import org.onlab.onos.net.provider.ProviderId;
19
20import com.esotericsoftware.kryo.Kryo;
21import com.esotericsoftware.kryo.Serializer;
22import com.esotericsoftware.kryo.io.Input;
23import com.esotericsoftware.kryo.io.Output;
24
Yuta HIGUCHIc7052012014-09-22 19:11:00 -070025/**
26 * Serializer for {@link ProviderId}.
27 */
28public class ProviderIdSerializer extends Serializer<ProviderId> {
29
30 /**
Yuta HIGUCHI03fec1f2014-10-03 09:13:50 -070031 * Creates {@link ProviderId} serializer instance.
Yuta HIGUCHIc7052012014-09-22 19:11:00 -070032 */
33 public ProviderIdSerializer() {
34 // non-null, immutable
35 super(false, true);
36 }
37
38 @Override
39 public void write(Kryo kryo, Output output, ProviderId object) {
40 output.writeString(object.scheme());
41 output.writeString(object.id());
Yuta HIGUCHI5bdebe32014-10-04 21:40:41 -070042 output.writeBoolean(object.isAncillary());
Yuta HIGUCHIc7052012014-09-22 19:11:00 -070043 }
44
45 @Override
46 public ProviderId read(Kryo kryo, Input input, Class<ProviderId> type) {
47 String scheme = input.readString();
48 String id = input.readString();
Yuta HIGUCHI5bdebe32014-10-04 21:40:41 -070049 boolean isAncillary = input.readBoolean();
50 return new ProviderId(scheme, id, isAncillary);
Yuta HIGUCHIc7052012014-09-22 19:11:00 -070051 }
52
53}