Improve mvpn parsing and serialization
[bgpcep.git] / bgp / extensions / mvpn / src / main / java / org / opendaylight / protocol / bgp / mvpn / impl / nlri / IntraAsIPmsiADHandler.java
index 13d5415206e74a8a5aaf51770efed2aff7125986..50edfc3d1e59368d8c84aa4f0fa964bf5e6c8109 100644 (file)
@@ -8,7 +8,8 @@
 
 package org.opendaylight.protocol.bgp.mvpn.impl.nlri;
 
-import com.google.common.base.Preconditions;
+import static com.google.common.base.Preconditions.checkArgument;
+
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
 import org.opendaylight.bgp.concepts.IpAddressUtil;
@@ -16,7 +17,6 @@ import org.opendaylight.bgp.concepts.RouteDistinguisherUtil;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev200120.NlriType;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev200120.intra.as.i.pmsi.a.d.grouping.IntraAsIPmsiAD;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev200120.intra.as.i.pmsi.a.d.grouping.IntraAsIPmsiADBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev200120.mvpn.MvpnChoice;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev200120.mvpn.mvpn.choice.IntraAsIPmsiADCase;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev200120.mvpn.mvpn.choice.IntraAsIPmsiADCaseBuilder;
 
@@ -26,26 +26,23 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn
  * @author Claudio D. Gasparini
  */
 public final class IntraAsIPmsiADHandler extends AbstractMvpnNlri<IntraAsIPmsiADCase> {
-
     private static final int IPV4_CONTENT_LENGTH = 12;
     private static final int IPV6_CONTENT_LENGTH = 24;
 
-    @Override
-    public int getType() {
-        return NlriType.IntraAsIPmsiAD.getIntValue();
+    public IntraAsIPmsiADHandler() {
+        super(IntraAsIPmsiADCase.class, NlriType.IntraAsIPmsiAD);
     }
 
     @Override
     public IntraAsIPmsiADCase parseMvpn(final ByteBuf buffer) {
-        Preconditions.checkArgument(buffer.readableBytes() == IPV4_CONTENT_LENGTH
-                        || buffer.readableBytes() == IPV6_CONTENT_LENGTH,
-                "Wrong length of array of bytes. Passed: %s ;", buffer);
+        checkArgument(buffer.readableBytes() == IPV4_CONTENT_LENGTH || buffer.readableBytes() == IPV6_CONTENT_LENGTH,
+            "Wrong length of array of bytes. Passed: %s ;", buffer);
         return new IntraAsIPmsiADCaseBuilder()
-                .setIntraAsIPmsiAD(new IntraAsIPmsiADBuilder()
-                        .setRouteDistinguisher(RouteDistinguisherUtil.parseRouteDistinguisher(buffer))
-                        .setOrigRouteIp(IpAddressUtil.addressForByteBufWOLength(buffer))
-                        .build())
-                .build();
+            .setIntraAsIPmsiAD(new IntraAsIPmsiADBuilder()
+                .setRouteDistinguisher(RouteDistinguisherUtil.parseRouteDistinguisher(buffer))
+                .setOrigRouteIp(IpAddressUtil.addressForByteBufWOLength(buffer))
+                .build())
+            .build();
     }
 
     @Override
@@ -54,13 +51,8 @@ public final class IntraAsIPmsiADHandler extends AbstractMvpnNlri<IntraAsIPmsiAD
         final ByteBuf nlriByteBuf = Unpooled.buffer();
         RouteDistinguisherUtil.serializeRouteDistinquisher(route.getRouteDistinguisher(), nlriByteBuf);
         final ByteBuf orig = IpAddressUtil.bytesWOLengthFor(route.getOrigRouteIp());
-        Preconditions.checkArgument(orig.readableBytes() > 0);
+        checkArgument(orig.readableBytes() > 0);
         nlriByteBuf.writeBytes(orig);
         return nlriByteBuf;
     }
-
-    @Override
-    public Class<? extends MvpnChoice> getClazz() {
-        return IntraAsIPmsiADCase.class;
-    }
 }