1 package org.opendaylight.lispflowmapping.implementation.serializer.address;
3 import java.nio.ByteBuffer;
4 import java.util.ArrayList;
7 import org.opendaylight.lispflowmapping.type.lisp.address.LispAddress;
8 import org.opendaylight.lispflowmapping.type.lisp.address.LispListLCAFAddress;
10 public class LispListLCAFAddressSerializer extends LispLCAFAddressSerializer {
12 private static final LispListLCAFAddressSerializer INSTANCE = new LispListLCAFAddressSerializer();
14 // Private constructor prevents instantiation from other classes
15 private LispListLCAFAddressSerializer() {
18 public static LispListLCAFAddressSerializer getInstance() {
23 protected short getLcafLength(LispAddress lispAddress) {
25 for (LispAddress address : ((LispListLCAFAddress) lispAddress).getAddresses()) {
26 totalSize += LispAddressSerializer.getInstance().getAddressSize(address);
32 protected void serializeData(ByteBuffer buffer, LispAddress lispAddress) {
33 for (LispAddress address : ((LispListLCAFAddress) lispAddress).getAddresses()) {
34 LispAddressSerializer.getInstance().serialize(buffer, address);
39 public LispListLCAFAddress deserializeData(ByteBuffer buffer, byte res2, short length) {
40 List<LispAddress> addresses = new ArrayList<LispAddress>();
42 LispAddress address = LispAddressSerializer.getInstance().deserialize(buffer);
43 length -= LispAddressSerializer.getInstance().getAddressSize(address);
44 addresses.add(address);
46 return new LispListLCAFAddress(res2, addresses);