Prepare the YANG models for RESTCONF
[lispflowmapping.git] / mappingservice / implementation / src / main / java / org / opendaylight / lispflowmapping / implementation / serializer / MapRequestSerializer.java
index 550d328ac85e2d154c03a627ec826708d79e1247..ef3ef1a4ebf414b8fa334895ec7bfa3666486ec1 100644 (file)
@@ -14,17 +14,15 @@ import org.apache.commons.lang3.BooleanUtils;
 import org.opendaylight.lispflowmapping.implementation.lisp.exception.LispSerializationException;
 import org.opendaylight.lispflowmapping.implementation.serializer.address.LispAddressSerializer;
 import org.opendaylight.lispflowmapping.implementation.util.ByteUtil;
+import org.opendaylight.lispflowmapping.implementation.util.LispAFIConvertor;
 import org.opendaylight.lispflowmapping.implementation.util.NumberUtil;
-import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.LispAFIAddress;
-import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.MapRequest;
-import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.eidrecords.EidRecord;
-import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.lispaddress.LispAddressContainerBuilder;
-import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.lispaddress.lispaddresscontainer.Address;
-import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.maprequest.ItrRloc;
-import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.maprequest.ItrRlocBuilder;
-import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.maprequest.MapReplyBuilder;
-import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.maprequest.SourceEidBuilder;
-import org.opendaylight.yang.gen.v1.lispflowmapping.rev131031.maprequestnotification.MapRequestBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.MapRequest;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidrecords.EidRecord;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.eidtolocatorrecords.EidToLocatorRecordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequest.ItrRloc;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequest.ItrRlocBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequest.SourceEidBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequestnotification.MapRequestBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -34,7 +32,7 @@ import org.slf4j.LoggerFactory;
 public class MapRequestSerializer {
 
     private static final MapRequestSerializer INSTANCE = new MapRequestSerializer();
-    protected static final Logger logger = LoggerFactory.getLogger(MapRequestSerializer.class);
+    protected static final Logger LOG = LoggerFactory.getLogger(MapRequestSerializer.class);
 
     // Private constructor prevents instantiation from other classes
     private MapRequestSerializer() {
@@ -48,18 +46,18 @@ public class MapRequestSerializer {
         int size = Length.HEADER_SIZE;
         if (mapRequest.getSourceEid() != null && mapRequest.getSourceEid().getLispAddressContainer() != null) {
             size += LispAddressSerializer.getInstance().getAddressSize(
-                    (LispAFIAddress) mapRequest.getSourceEid().getLispAddressContainer().getAddress());
+                    LispAFIConvertor.toAFI(mapRequest.getSourceEid().getLispAddressContainer()));
         } else {
             size += 2;
         }
         if (mapRequest.getItrRloc() != null) {
             for (ItrRloc address : mapRequest.getItrRloc()) {
-                size += LispAddressSerializer.getInstance().getAddressSize((LispAFIAddress) address.getLispAddressContainer().getAddress());
+                size += LispAddressSerializer.getInstance().getAddressSize(LispAFIConvertor.toAFI(address.getLispAddressContainer()));
             }
         }
         if (mapRequest.getEidRecord() != null) {
             for (EidRecord record : mapRequest.getEidRecord()) {
-                size += 2 + LispAddressSerializer.getInstance().getAddressSize((LispAFIAddress) record.getLispAddressContainer().getAddress());
+                size += 2 + LispAddressSerializer.getInstance().getAddressSize(LispAFIConvertor.toAFI(record.getLispAddressContainer()));
             }
         }
         ByteBuffer requestBuffer = ByteBuffer.allocate(size);
@@ -89,24 +87,25 @@ public class MapRequestSerializer {
         requestBuffer.putLong(NumberUtil.asLong(mapRequest.getNonce()));
         if (mapRequest.getSourceEid() != null && mapRequest.getSourceEid().getLispAddressContainer() != null) {
             LispAddressSerializer.getInstance().serialize(requestBuffer,
-                    (LispAFIAddress) mapRequest.getSourceEid().getLispAddressContainer().getAddress());
+                    LispAFIConvertor.toAFI(mapRequest.getSourceEid().getLispAddressContainer()));
         } else {
             requestBuffer.putShort((short) 0);
         }
         if (mapRequest.getItrRloc() != null) {
             for (ItrRloc address : mapRequest.getItrRloc()) {
-                LispAddressSerializer.getInstance().serialize(requestBuffer, (LispAFIAddress) address.getLispAddressContainer().getAddress());
+                LispAddressSerializer.getInstance().serialize(requestBuffer, LispAFIConvertor.toAFI(address.getLispAddressContainer()));
             }
         }
         if (mapRequest.getEidRecord() != null) {
             for (EidRecord record : mapRequest.getEidRecord()) {
                 requestBuffer.put((byte) 0);
                 requestBuffer.put((byte) record.getMask().byteValue());
-                LispAddressSerializer.getInstance().serialize(requestBuffer, (LispAFIAddress) record.getLispAddressContainer().getAddress());
+                LispAddressSerializer.getInstance().serialize(requestBuffer, LispAFIConvertor.toAFI(record.getLispAddressContainer()));
             }
         }
         if (mapRequest.getMapReply() != null) {
-            ByteBuffer replyBuffer = MapReplySerializer.getInstance().serialize(mapRequest.getMapReply());
+            ByteBuffer replyBuffer = ByteBuffer.allocate(EidToLocatorRecordSerializer.getInstance().getSerializationSize(mapRequest.getMapReply()));
+            EidToLocatorRecordSerializer.getInstance().serialize(replyBuffer, mapRequest.getMapReply());
             ByteBuffer combinedBuffer = ByteBuffer.allocate(requestBuffer.capacity() + replyBuffer.capacity());
             combinedBuffer.put(requestBuffer.array());
             combinedBuffer.put(replyBuffer.array());
@@ -133,7 +132,7 @@ public class MapRequestSerializer {
             int recordCount = ByteUtil.getUnsignedByte(requestBuffer);
             builder.setNonce(requestBuffer.getLong());
             builder.setSourceEid(new SourceEidBuilder().setLispAddressContainer(
-                    new LispAddressContainerBuilder().setAddress((Address) LispAddressSerializer.getInstance().deserialize(requestBuffer)).build())
+                    LispAFIConvertor.toContainer(LispAddressSerializer.getInstance().deserialize(requestBuffer)))
                     .build());
 
             if (builder.getItrRloc() == null) {
@@ -142,8 +141,8 @@ public class MapRequestSerializer {
             for (int i = 0; i < itrCount; i++) {
                 builder.getItrRloc().add(
                         new ItrRlocBuilder().setLispAddressContainer(
-                                new LispAddressContainerBuilder()
-                                        .setAddress((Address) LispAddressSerializer.getInstance().deserialize(requestBuffer)).build()).build());
+                                LispAFIConvertor.toContainer(LispAddressSerializer.getInstance().deserialize(requestBuffer)))
+                                .build());
             }
 
             if (builder.getEidRecord() == null) {
@@ -154,9 +153,10 @@ public class MapRequestSerializer {
             }
             if (builder.isMapDataPresent() && requestBuffer.hasRemaining()) {
                 try {
-                    builder.setMapReply(new MapReplyBuilder(MapReplySerializer.getInstance().deserialize(requestBuffer)).build());
+                    builder.setMapReply(new org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.control.plane.rev150314.maprequest.MapReplyBuilder(
+                            new EidToLocatorRecordBuilder(EidToLocatorRecordSerializer.getInstance().deserialize(requestBuffer)).build()).build());
                 } catch (RuntimeException re) {
-                    logger.warn("couldn't deserialize map reply encapsulated in map request. {}", re.getMessage());
+                    LOG.warn("couldn't deserialize map reply encapsulated in map request. {}", re.getMessage());
                 }
             }
             return builder.build();