Merge "Refactoring of 'extractIpv4Mask' method"
[openflowplugin.git] / openflowplugin / src / main / java / org / opendaylight / openflowplugin / openflow / md / core / sal / convertor / match / MatchConvertorImpl.java
index 7a7f87454f1e5d08a2423836bd2d9f380fc00eae..a6240b35ef97c8d4a6d5c8c6e441e44b81320e16 100644 (file)
@@ -10,12 +10,13 @@ package org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.match;
 
 import static org.opendaylight.openflowjava.util.ByteBufUtils.macAddressToString;
 
+import com.google.common.base.Optional;
 import java.math.BigInteger;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
-
+import javax.annotation.Nonnull;
 import org.opendaylight.openflowjava.util.ByteBufUtils;
 import org.opendaylight.openflowplugin.api.OFConstants;
 import org.opendaylight.openflowplugin.api.openflow.md.util.OpenflowVersion;
@@ -36,7 +37,6 @@ import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.yang.types.rev100924.MacAddress;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.field._case.SetField;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.action.types.rev131112.action.action.set.field._case.SetFieldBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.Match;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.flow.types.rev131026.flow.MatchBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.arp.match.fields.ArpSourceHardwareAddress;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.model.match.types.rev131026.arp.match.fields.ArpSourceHardwareAddressBuilder;
@@ -264,8 +264,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.Tunne
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.google.common.base.Optional;
-
 /**
  * Utility class for converting a MD-SAL Flow into the OF flow mod
  */
@@ -393,7 +391,7 @@ public class MatchConvertorImpl implements MatchConvertor<List<MatchEntry>> {
                     Ipv4Address ipv4Address = new Ipv4Address(addressParts.next());
                     ipv4SrcBuilder.setIpv4Address(ipv4Address);
                     boolean hasMask = false;
-                    byte[] mask = extractIpv4Mask(hasMask, addressParts);
+                    byte[] mask = extractIpv4Mask(addressParts);
                     if (null != mask) {
                         ipv4SrcBuilder.setMask(mask);
                         hasMask = true;
@@ -416,7 +414,7 @@ public class MatchConvertorImpl implements MatchConvertor<List<MatchEntry>> {
                     Ipv4Address ipv4Address = new Ipv4Address(addressParts.next());
                     ipv4DstBuilder.setIpv4Address(ipv4Address);
                     boolean hasMask = false;
-                    byte[] mask = extractIpv4Mask(hasMask, addressParts);
+                    byte[] mask = extractIpv4Mask(addressParts);
                     if (null != mask) {
                         ipv4DstBuilder.setMask(mask);
                         hasMask = true;
@@ -442,7 +440,7 @@ public class MatchConvertorImpl implements MatchConvertor<List<MatchEntry>> {
                     Ipv4Address ipv4Address = new Ipv4Address(addressParts.next());
                     ipv4SrcBuilder.setIpv4Address(ipv4Address);
                     boolean hasMask = false;
-                    byte[] mask = extractIpv4Mask(hasMask, addressParts);
+                    byte[] mask = extractIpv4Mask(addressParts);
                     if (null != mask) {
                         ipv4SrcBuilder.setMask(mask);
                         hasMask = true;
@@ -465,7 +463,7 @@ public class MatchConvertorImpl implements MatchConvertor<List<MatchEntry>> {
                     Ipv4Address ipv4Address = new Ipv4Address(addressParts.next());
                     ipv4DstBuilder.setIpv4Address(ipv4Address);
                     boolean hasMask = false;
-                    byte[] mask = extractIpv4Mask(hasMask, addressParts);
+                    byte[] mask = extractIpv4Mask(addressParts);
                     if (null != mask) {
                         ipv4DstBuilder.setMask(mask);
                         hasMask = true;
@@ -494,7 +492,7 @@ public class MatchConvertorImpl implements MatchConvertor<List<MatchEntry>> {
                     Ipv4Address ipv4Address = new Ipv4Address(addressParts.next());
                     arpSpaBuilder.setIpv4Address(ipv4Address);
                     boolean hasMask = false;
-                    byte[] mask = extractIpv4Mask(hasMask, addressParts);
+                    byte[] mask = extractIpv4Mask(addressParts);
                     if (null != mask) {
                         arpSpaBuilder.setMask(mask);
                         hasMask = true;
@@ -518,7 +516,7 @@ public class MatchConvertorImpl implements MatchConvertor<List<MatchEntry>> {
                     Ipv4Address ipv4Address = new Ipv4Address(addressParts.next());
                     arpTpaBuilder.setIpv4Address(ipv4Address);
                     boolean hasMask = false;
-                    byte[] mask = extractIpv4Mask(hasMask, addressParts);
+                    byte[] mask = extractIpv4Mask(addressParts);
                     if (null != mask) {
                         arpTpaBuilder.setMask(mask);
                         hasMask = true;
@@ -891,7 +889,7 @@ public class MatchConvertorImpl implements MatchConvertor<List<MatchEntry>> {
     }
 
 
-    private static byte[] extractIpv4Mask(boolean hasMask, final Iterator<String> addressParts) {
+    private static byte[] extractIpv4Mask(final Iterator<String> addressParts) {
         final int prefix;
         if (addressParts.hasNext()) {
             int potentionalPrefix = Integer.parseInt(addressParts.next());
@@ -904,7 +902,6 @@ public class MatchConvertorImpl implements MatchConvertor<List<MatchEntry>> {
             int mask = 0xffffffff << (32 - prefix);
             byte[] maskBytes = new byte[]{(byte) (mask >>> 24), (byte) (mask >>> 16), (byte) (mask >>> 8),
                     (byte) mask};
-            hasMask = true;
             return maskBytes;
         }
         return null;
@@ -918,7 +915,7 @@ public class MatchConvertorImpl implements MatchConvertor<List<MatchEntry>> {
      * @return
      * @author avishnoi@in.ibm.com
      */
-    public static Match fromOFMatchV10ToSALMatch(final MatchV10 swMatch, final BigInteger datapathid, final OpenflowVersion ofVersion) {
+    public static MatchBuilder fromOFMatchV10ToSALMatch(@Nonnull final MatchV10 swMatch, @Nonnull final BigInteger datapathid, @Nonnull final OpenflowVersion ofVersion) {
         MatchBuilder matchBuilder = new MatchBuilder();
         EthernetMatchBuilder ethMatchBuilder = new EthernetMatchBuilder();
         VlanMatchBuilder vlanMatchBuilder = new VlanMatchBuilder();
@@ -1068,7 +1065,7 @@ public class MatchConvertorImpl implements MatchConvertor<List<MatchEntry>> {
             matchBuilder.setIpMatch(ipMatchBuilder.build());
         }
 
-        return matchBuilder.build();
+        return matchBuilder;
     }
 
     /**
@@ -1083,8 +1080,8 @@ public class MatchConvertorImpl implements MatchConvertor<List<MatchEntry>> {
      * @author avishnoi@in.ibm.com
      */
     public static MatchBuilder fromOFMatchToSALMatch(
-            final org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.grouping.Match swMatch,
-            final BigInteger datapathid, final OpenflowVersion ofVersion) {
+            @Nonnull final org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.grouping.Match swMatch,
+            @Nonnull final BigInteger datapathid, @Nonnull final OpenflowVersion ofVersion) {
         return OfMatchToSALMatchConvertor(swMatch.getMatchEntry(), datapathid, ofVersion);
     }