Sonar issues fix: LS, FS 26/29026/2
authorIveta Halanova <ihalanov@cisco.com>
Fri, 30 Oct 2015 14:47:14 +0000 (15:47 +0100)
committerIveta Halanova <ihalanov@cisco.com>
Fri, 30 Oct 2015 14:52:06 +0000 (14:52 +0000)
added final modifiers, solved complexity by extracting switches
to private methods, removed not used attributes.

Change-Id: Iab11adafac0b2519a5d07b26d638e8265ac6d0ff
Signed-off-by: Iveta Halanova <ihalanov@cisco.com>
bgp/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/AbstractFlowspecRIBSupport.java
bgp/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/attribute/PrefixAttributesParser.java
bgp/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/attribute/sr/BindingSidLabelParser.java
bgp/linkstate/src/main/java/org/opendaylight/protocol/bgp/linkstate/attribute/sr/RangeTlvParser.java

index f704caab6ecce65d554e376900711da713aa7748..daecc7a7ba1920b77d6ca23752562c95ec8a7f2a 100644 (file)
@@ -40,8 +40,6 @@ import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeAttrBuilder;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 public abstract class AbstractFlowspecRIBSupport extends AbstractRIBSupport {
 
@@ -75,7 +73,6 @@ public abstract class AbstractFlowspecRIBSupport extends AbstractRIBSupport {
         }
     }
 
-    private static final Logger LOG = LoggerFactory.getLogger(AbstractFlowspecRIBSupport.class);
     private static final QName ROUTE_KEY = QName.cachedReference(QName.create(FlowspecRoute.QNAME, "route-key"));
     private static final ApplyRoute DELETE_ROUTE = new DeleteRoute();
     private final ApplyRoute putRoute = new PutRoute();
index f8dd1442365273151d67b3d6dc01484488a45aa8..d9bcbd61388fb9e8bf14b3234efd5321812ac00e 100644 (file)
@@ -82,52 +82,7 @@ public final class PrefixAttributesParser {
             final int key = entry.getKey();
             final ByteBuf value = entry.getValue();
             LOG.trace("Prefix attribute TLV {}", key);
-            switch (key) {
-            case IGP_FLAGS:
-                final BitArray flags = BitArray.valueOf(value, FLAGS_SIZE);
-                final boolean upDownBit = flags.get(UP_DOWN_BIT);
-                builder.setIgpBits(new IgpBitsBuilder().setUpDown(new UpDown(upDownBit)).build());
-                LOG.debug("Parsed IGP flag (up/down bit) : {}", upDownBit);
-                break;
-            case ROUTE_TAG:
-                parseRouteTags(routeTags, value);
-                break;
-            case EXTENDED_ROUTE_TAG:
-                parseExtendedRouteTags(exRouteTags, value);
-                break;
-            case PREFIX_METRIC:
-                final IgpMetric metric = new IgpMetric(value.readUnsignedInt());
-                builder.setPrefixMetric(metric);
-                LOG.debug("Parsed Metric: {}", metric);
-                break;
-            case FORWARDING_ADDRESS:
-                final IpAddress fwdAddress = parseForwardingAddress(value);
-                builder.setOspfForwardingAddress(fwdAddress);
-                LOG.debug("Parsed FWD Address: {}", fwdAddress);
-                break;
-            case PREFIX_OPAQUE:
-                if (LOG.isDebugEnabled()) {
-                    LOG.debug("Parsed Opaque value: {}, not preserving it", ByteBufUtil.hexDump(value));
-                }
-                break;
-            case PREFIX_SID:
-                final SrPrefix prefix = SrPrefixAttributesParser.parseSrPrefix(value);
-                builder.setSrPrefix(prefix);
-                LOG.debug("Parsed SR Prefix: {}", prefix);
-                break;
-            case RANGE:
-                final SrRange range = RangeTlvParser.parseSrRange(value);
-                builder.setSrRange(range);
-                LOG.debug("Parsed SR Range: {}", range);
-                break;
-            case BINDING_SID:
-                final SrBindingSidLabel label = BindingSidLabelParser.parseBindingSidLabel(value);
-                builder.setSrBindingSidLabel(label);
-                LOG.debug("Parsed SR Binding SID {}", label);
-                break;
-            default:
-                LOG.warn("TLV {} is not a valid prefix attribute, ignoring it", key);
-            }
+            parseAttribute(key, value, builder, routeTags, exRouteTags);
         }
         LOG.trace("Finished parsing Prefix Attributes.");
         builder.setRouteTags(routeTags);
@@ -135,6 +90,55 @@ public final class PrefixAttributesParser {
         return new PrefixAttributesCaseBuilder().setPrefixAttributes(builder.build()).build();
     }
 
+    private static void parseAttribute(final int key, final ByteBuf value, final PrefixAttributesBuilder builder, final List<RouteTag> routeTags, final List<ExtendedRouteTag> exRouteTags) {
+        switch (key) {
+        case IGP_FLAGS:
+            final BitArray flags = BitArray.valueOf(value, FLAGS_SIZE);
+            final boolean upDownBit = flags.get(UP_DOWN_BIT);
+            builder.setIgpBits(new IgpBitsBuilder().setUpDown(new UpDown(upDownBit)).build());
+            LOG.debug("Parsed IGP flag (up/down bit) : {}", upDownBit);
+            break;
+        case ROUTE_TAG:
+            parseRouteTags(routeTags, value);
+            break;
+        case EXTENDED_ROUTE_TAG:
+            parseExtendedRouteTags(exRouteTags, value);
+            break;
+        case PREFIX_METRIC:
+            final IgpMetric metric = new IgpMetric(value.readUnsignedInt());
+            builder.setPrefixMetric(metric);
+            LOG.debug("Parsed Metric: {}", metric);
+            break;
+        case FORWARDING_ADDRESS:
+            final IpAddress fwdAddress = parseForwardingAddress(value);
+            builder.setOspfForwardingAddress(fwdAddress);
+            LOG.debug("Parsed FWD Address: {}", fwdAddress);
+            break;
+        case PREFIX_OPAQUE:
+            if (LOG.isDebugEnabled()) {
+                LOG.debug("Parsed Opaque value: {}, not preserving it", ByteBufUtil.hexDump(value));
+            }
+            break;
+        case PREFIX_SID:
+            final SrPrefix prefix = SrPrefixAttributesParser.parseSrPrefix(value);
+            builder.setSrPrefix(prefix);
+            LOG.debug("Parsed SR Prefix: {}", prefix);
+            break;
+        case RANGE:
+            final SrRange range = RangeTlvParser.parseSrRange(value);
+            builder.setSrRange(range);
+            LOG.debug("Parsed SR Range: {}", range);
+            break;
+        case BINDING_SID:
+            final SrBindingSidLabel label = BindingSidLabelParser.parseBindingSidLabel(value);
+            builder.setSrBindingSidLabel(label);
+            LOG.debug("Parsed SR Binding SID {}", label);
+            break;
+        default:
+            LOG.warn("TLV {} is not a valid prefix attribute, ignoring it", key);
+        }
+    }
+
     private static void parseRouteTags(final List<RouteTag> routeTags, final ByteBuf value) {
         while (value.isReadable()) {
             final RouteTag routeTag = new RouteTag(ByteArray.readBytes(value, ROUTE_TAG_LENGTH));
index 491ff32ae7c43ed9dd9870ff5c620797bc4c6f12..f77dd7b15ff3a018e5566bf73dc908a9aea60f1f 100644 (file)
@@ -49,7 +49,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class BindingSidLabelParser {
+public final class BindingSidLabelParser {
 
     private static final Logger LOG = LoggerFactory.getLogger(BindingSidLabelParser.class);
 
@@ -89,70 +89,74 @@ public class BindingSidLabelParser {
             final int length = buffer.readUnsignedShort();
             final ByteBuf slice = buffer.readSlice(length);
             final BindingSubTlvsBuilder builder = new BindingSubTlvsBuilder();
-            switch (type) {
-            case SidLabelIndexParser.SID_TYPE:
-                final SidLabelIndex sid = SidLabelIndexParser.parseSidLabelIndex(Size.forValue(slice.readableBytes()), slice);
-                builder.setBindingSubTlv(new SidLabelCaseBuilder()
-                    .setSidLabelIndex(sid).build());
-                break;
-            case PrefixAttributesParser.PREFIX_SID:
-                final SrPrefix prefix = SrPrefixAttributesParser.parseSrPrefix(slice);
-                builder.setBindingSubTlv(new PrefixSidCaseBuilder()
-                    .setAlgorithm(prefix.getAlgorithm())
-                    .setFlags(prefix.getFlags())
-                    .setSidLabelIndex(prefix.getSidLabelIndex()).build());
-                break;
-            case ERO_METRIC:
-                builder.setBindingSubTlv(new EroMetricCaseBuilder()
-                    .setEroMetric(new TeMetric(slice.readUnsignedInt())).build());
-                break;
-            case ERO_IPV4:
-                final Ipv4EroCase ipv4Ero = parseIpv4EroCase(slice);
-                builder.setBindingSubTlv(new Ipv4EroCaseBuilder()
-                    .setAddress(ipv4Ero.getAddress())
-                    .setLoose(ipv4Ero.isLoose()).build());
-                break;
-            case BACKUP_ERO_IPV4:
-                final Ipv4EroCase ipv4Backup = parseIpv4EroCase(slice);
-                builder.setBindingSubTlv(new Ipv4EroBackupCaseBuilder()
-                    .setAddress(ipv4Backup.getAddress())
-                    .setLoose(ipv4Backup.isLoose()).build());
-                break;
-            case ERO_IPV6:
-                final Ipv6EroCase ipv6ero = parseIpv6EroCase(slice);
-                builder.setBindingSubTlv(new Ipv6EroCaseBuilder()
-                    .setAddress(ipv6ero.getAddress())
-                    .setLoose(ipv6ero.isLoose()).build());
-                break;
-            case BACKUP_ERO_IPV6:
-                final Ipv6EroCase ipv6backup = parseIpv6EroCase(slice);
-                builder.setBindingSubTlv(new Ipv6EroBackupCaseBuilder()
-                    .setAddress(ipv6backup.getAddress())
-                    .setLoose(ipv6backup.isLoose()).build());
-                break;
-            case UNNUMBERED_ERO:
-                final UnnumberedInterfaceIdEroCase unnumbered = parseUnnumberedEroCase(slice);
-                builder.setBindingSubTlv(new UnnumberedInterfaceIdEroCaseBuilder()
-                    .setLoose(unnumbered.isLoose())
-                    .setRouterId(unnumbered.getRouterId())
-                    .setInterfaceId(unnumbered.getInterfaceId()).build());
-                break;
-            case BACKUP_UNNUMBERED_ERO:
-                final UnnumberedInterfaceIdEroCase unnumberedBackup = parseUnnumberedEroCase(slice);
-                builder.setBindingSubTlv(new UnnumberedInterfaceIdBackupEroCaseBuilder()
-                    .setLoose(unnumberedBackup.isLoose())
-                    .setRouterId(unnumberedBackup.getRouterId())
-                    .setInterfaceId(unnumberedBackup.getInterfaceId()).build());
-                break;
-            default:
-                LOG.info("Unknown binding sub Tlv type {}", type);
-                break;
-            }
+            parseSubTlv(type, slice, builder);
             subTlvs.add(builder.build());
         }
         return subTlvs;
     }
 
+    private static void parseSubTlv(final int type, final ByteBuf slice, final BindingSubTlvsBuilder builder) {
+        switch (type) {
+        case SidLabelIndexParser.SID_TYPE:
+            final SidLabelIndex sid = SidLabelIndexParser.parseSidLabelIndex(Size.forValue(slice.readableBytes()), slice);
+            builder.setBindingSubTlv(new SidLabelCaseBuilder()
+                .setSidLabelIndex(sid).build());
+            break;
+        case PrefixAttributesParser.PREFIX_SID:
+            final SrPrefix prefix = SrPrefixAttributesParser.parseSrPrefix(slice);
+            builder.setBindingSubTlv(new PrefixSidCaseBuilder()
+                .setAlgorithm(prefix.getAlgorithm())
+                .setFlags(prefix.getFlags())
+                .setSidLabelIndex(prefix.getSidLabelIndex()).build());
+            break;
+        case ERO_METRIC:
+            builder.setBindingSubTlv(new EroMetricCaseBuilder()
+                .setEroMetric(new TeMetric(slice.readUnsignedInt())).build());
+            break;
+        case ERO_IPV4:
+            final Ipv4EroCase ipv4Ero = parseIpv4EroCase(slice);
+            builder.setBindingSubTlv(new Ipv4EroCaseBuilder()
+                .setAddress(ipv4Ero.getAddress())
+                .setLoose(ipv4Ero.isLoose()).build());
+            break;
+        case BACKUP_ERO_IPV4:
+            final Ipv4EroCase ipv4Backup = parseIpv4EroCase(slice);
+            builder.setBindingSubTlv(new Ipv4EroBackupCaseBuilder()
+                .setAddress(ipv4Backup.getAddress())
+                .setLoose(ipv4Backup.isLoose()).build());
+            break;
+        case ERO_IPV6:
+            final Ipv6EroCase ipv6ero = parseIpv6EroCase(slice);
+            builder.setBindingSubTlv(new Ipv6EroCaseBuilder()
+                .setAddress(ipv6ero.getAddress())
+                .setLoose(ipv6ero.isLoose()).build());
+            break;
+        case BACKUP_ERO_IPV6:
+            final Ipv6EroCase ipv6backup = parseIpv6EroCase(slice);
+            builder.setBindingSubTlv(new Ipv6EroBackupCaseBuilder()
+                .setAddress(ipv6backup.getAddress())
+                .setLoose(ipv6backup.isLoose()).build());
+            break;
+        case UNNUMBERED_ERO:
+            final UnnumberedInterfaceIdEroCase unnumbered = parseUnnumberedEroCase(slice);
+            builder.setBindingSubTlv(new UnnumberedInterfaceIdEroCaseBuilder()
+                .setLoose(unnumbered.isLoose())
+                .setRouterId(unnumbered.getRouterId())
+                .setInterfaceId(unnumbered.getInterfaceId()).build());
+            break;
+        case BACKUP_UNNUMBERED_ERO:
+            final UnnumberedInterfaceIdEroCase unnumberedBackup = parseUnnumberedEroCase(slice);
+            builder.setBindingSubTlv(new UnnumberedInterfaceIdBackupEroCaseBuilder()
+                .setLoose(unnumberedBackup.isLoose())
+                .setRouterId(unnumberedBackup.getRouterId())
+                .setInterfaceId(unnumberedBackup.getInterfaceId()).build());
+            break;
+        default:
+            LOG.info("Unknown binding sub Tlv type {}", type);
+            break;
+        }
+    }
+
     private static Ipv4EroCase parseIpv4EroCase(final ByteBuf buffer) {
         final Ipv4EroCaseBuilder builder = new Ipv4EroCaseBuilder();
         final BitArray flags = BitArray.valueOf(buffer, FLAGS_SIZE);
index a66bbfab34203b9349c70b4fa4a6099de0ee4615..8684be49c633e9bc695915285f86d0f64d26cf88 100644 (file)
@@ -29,7 +29,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.segm
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class RangeTlvParser {
+public final class RangeTlvParser {
 
     private static final Logger LOG = LoggerFactory.getLogger(RangeTlvParser.class);