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() {
24 protected short getLcafLength(LispAddress lispAddress) {
26 for (LispAddress address : ((LispListLCAFAddress)lispAddress).getAddresses()) {
27 totalSize += LispAddressSerializer.getInstance().getAddressSize(address);
33 protected void serializeData(ByteBuffer buffer, LispAddress lispAddress) {
34 for (LispAddress address : ((LispListLCAFAddress)lispAddress).getAddresses()) {
35 LispAddressSerializer.getInstance().serialize(buffer, address);
40 public LispListLCAFAddress deserializeData(ByteBuffer buffer, byte res2, short length) {
41 List<LispAddress> addresses = new ArrayList<LispAddress>();
43 LispAddress address = LispAddressSerializer.getInstance().deserialize(buffer);
44 length -= LispAddressSerializer.getInstance().getAddressSize(address);
45 addresses.add(address);
47 return new LispListLCAFAddress(res2, addresses);