Fix various SonarQube complains 49/38549/6
authorClaudio D. Gasparini <cgaspari@cisco.com>
Sat, 7 May 2016 22:01:49 +0000 (00:01 +0200)
committerMilos Fabian <milfabia@cisco.com>
Thu, 12 May 2016 08:31:48 +0000 (08:31 +0000)
Reorder the modifiers to comply with the Java Language Specification.
Move this trailing comment on the previous empty line
Add a default case to this switch
Rename this interface name to match the regular expression
Missing curly brace.
...

Change-Id: Icb397909f33b5dcccc99d48bc602d4bc9213fd35
Signed-off-by: Claudio D. Gasparini <cgaspari@cisco.com>
15 files changed:
bgp/bmp-impl/src/main/java/org/opendaylight/protocol/bmp/impl/app/BmpRouterImpl.java
bgp/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/extended/communities/Layer2AttributesExtCom.java
bgp/evpn/src/main/java/org/opendaylight/protocol/bgp/evpn/impl/nlri/EvpnNlriParser.java
bgp/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/handlers/AbstractNumericOperandParser.java
bgp/flowspec/src/main/java/org/opendaylight/protocol/bgp/flowspec/handlers/AbstractOperandParser.java
bgp/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/AbstractVpnNextHopParserSerializer.java
bgp/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/AbstractVpnNlriParser.java
bgp/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/ipv4/VpnIpv4NlriParser.java
bgp/l3vpn/src/main/java/org/opendaylight/protocol/bgp/l3vpn/ipv6/VpnIpv6NlriParser.java
bgp/path-selection-mode/src/main/java/org/opendaylight/protocol/bgp/mode/spi/AbstractRouteEntry.java
bgp/path-selection-mode/src/main/java/org/opendaylight/protocol/bgp/mode/spi/RouteEntryUtil.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/FromInternalReflectorClientImportPolicy.java
pcep/auto-bandwidth-extension/src/test/java/org/opendaylight/protocol/pcep/auto/bandwidth/extension/PcRptMessageCodecTest.java
pcep/ietf-stateful07/src/main/java/org/opendaylight/protocol/pcep/ietf/stateful07/Stateful07PCReportMessageParser.java
pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/PCEPRequest.java

index 0594bef2c5fdcbbaded1ab472989ca2bf9f2fb34..736b154a00cb2aad61c4c3f1f4512280979f75f5 100644 (file)
@@ -8,13 +8,13 @@
 
 package org.opendaylight.protocol.bmp.impl.app;
 
-import com.google.common.base.Optional;
 import com.google.common.base.Preconditions;
 import com.google.common.net.InetAddresses;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import javax.annotation.concurrent.GuardedBy;
 import org.opendaylight.controller.md.sal.common.api.data.AsyncTransaction;
 import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
@@ -136,7 +136,8 @@ public class BmpRouterImpl implements BmpRouter, TransactionChainListener {
 
     @GuardedBy("this")
     private synchronized void tearDown() {
-        if (this.session == null) {   // the session has been teared down before
+        // the session has been teared down before
+        if (this.session == null) {
             return;
         }
         // we want to display remote router's IP here, as sometimes this.session.close() is already
@@ -236,7 +237,7 @@ public class BmpRouterImpl implements BmpRouter, TransactionChainListener {
     }
 
     private Optional<BmpRouterPeer> getPeer(final PeerId peerId) {
-        return Optional.fromNullable(this.peers.get(peerId));
+        return Optional.ofNullable(this.peers.get(peerId));
     }
 
     private static PeerId getPeerId(final PeerHeader peerHeader) {
index d0f6b9d83b408716ca8aae7633c78c322de7b685..416dccef14121ddfaba2fb8efaa3d68854efd831 100644 (file)
@@ -21,7 +21,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.evpn
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.extended.community.ExtendedCommunity;
 
 public class Layer2AttributesExtCom extends AbstractExtendedCommunities {
-    private static final int SUBTYPE = 4; // TODO: TBD BY IANA
+    // TODO: TBD BY IANA
+    private static final int SUBTYPE = 4;
     private static final int FLAGS_SIZE = 16;
     private static final int PRIMARY_PE_OFFSET = 15;
     private static final int CONTROL_WORD_OFFSET = 13;
index adfc4335676a0bd54f398474de2bb51066a60cdb..f299dc006389c288c8dd7f3249485543095df956 100644 (file)
@@ -52,15 +52,15 @@ public final class EvpnNlriParser implements NlriParser, NlriSerializer {
     private static final NodeIdentifier EVPN_CHOICE_NID = new NodeIdentifier(EvpnChoice.QNAME);
 
     @FunctionalInterface
-    private interface extractionInterface {
+    private interface ExtractionInterface {
         EvpnChoice check(EvpnRegistry reg, ChoiceNode cont);
     }
 
     public static EvpnDestination extractEvpnDestination(final DataContainerNode<? extends PathArgument> evpnChoice) {
-        return extractDestination(evpnChoice, (reg, cont) -> reg.serializeEvpnModel(cont));
+        return extractDestination(evpnChoice, EvpnRegistry::serializeEvpnModel);
     }
 
-    private static EvpnDestination extractDestination(final DataContainerNode<? extends PathArgument> evpnChoice, final extractionInterface extract) {
+    private static EvpnDestination extractDestination(final DataContainerNode<? extends PathArgument> evpnChoice, final ExtractionInterface extract) {
         final EvpnRegistry reg = SimpleEvpnNlriRegistry.getInstance();
         final ChoiceNode cont = (ChoiceNode) evpnChoice.getChild(EVPN_CHOICE_NID).get();
         final EvpnChoice evpnValue = extract.check(reg, cont);
@@ -72,7 +72,7 @@ public final class EvpnNlriParser implements NlriParser, NlriSerializer {
     }
 
     public static EvpnDestination extractRouteKeyDestination(final DataContainerNode<? extends PathArgument> evpnChoice) {
-        return extractDestination(evpnChoice, (reg, cont) -> reg.serializeEvpnRouteKey(cont));
+        return extractDestination(evpnChoice, EvpnRegistry::serializeEvpnRouteKey);
     }
 
     @Override
index dce9989b8eed009faf7df376eb82f78c92efae37..202841aa34deb2bca6ebf4974933d9fddd762653 100644 (file)
@@ -20,7 +20,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.flow
  *
  * @param <N> numeric operand type
  */
-abstract public class AbstractNumericOperandParser<N> extends AbstractOperandParser<NumericOperand> {
+public abstract class AbstractNumericOperandParser<N> extends AbstractOperandParser<NumericOperand> {
 
     @VisibleForTesting
     public static final String EQUALS_VALUE = "equals";
index f78088b12906dfe06c49921c7a24477ea6ab4586..6ab0ba997e1f485d472c11d4b8375a1f9842d978 100644 (file)
@@ -16,7 +16,7 @@ import java.util.Set;
  *
  * @param <T> operand Type
  */
-abstract public class AbstractOperandParser<T> {
+public abstract class AbstractOperandParser<T> {
 
     @VisibleForTesting
     public static final String AND_BIT_VALUE = "and-bit";
index 78ca9ee65b7af409589c90d04010011dcf7ec8fc..5edb84b577d9b11bb4d61158238833c2a40a8705 100644 (file)
@@ -19,24 +19,24 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.type
  * @author Kevin Wang
  */
 public abstract class AbstractVpnNextHopParserSerializer implements NextHopParserSerializer {
-    private final int IP_ADDR_LENGTH;
-    private final Class<?> IP_NEXT_HOP_CASE_CLAZZ;
+    private final int ipAddrLength;
+    private final Class<?> ipNextHopCaseClazz;
 
     protected AbstractVpnNextHopParserSerializer(final int ipAddrLength, final Class<?> ipNextHopCaseClazz) {
-        IP_ADDR_LENGTH = ipAddrLength;
-        IP_NEXT_HOP_CASE_CLAZZ = ipNextHopCaseClazz;
+        this.ipAddrLength = ipAddrLength;
+        this.ipNextHopCaseClazz = ipNextHopCaseClazz;
     }
 
     @Override
     public CNextHop parseNextHop(final ByteBuf buffer) throws BGPParsingException {
-        Preconditions.checkArgument(buffer.readableBytes() == (IP_ADDR_LENGTH + RouteDistinguisherUtil.RD_LENGTH), "Length of byte array for NEXT_HOP should be %s, but is %s", IP_ADDR_LENGTH + RouteDistinguisherUtil.RD_LENGTH, buffer.readableBytes());
+        Preconditions.checkArgument(buffer.readableBytes() == (ipAddrLength + RouteDistinguisherUtil.RD_LENGTH), "Length of byte array for NEXT_HOP should be %s, but is %s", ipAddrLength + RouteDistinguisherUtil.RD_LENGTH, buffer.readableBytes());
         buffer.readBytes(RouteDistinguisherUtil.RD_LENGTH);
-        return NextHopUtil.parseNextHop(buffer.readBytes(IP_ADDR_LENGTH));
+        return NextHopUtil.parseNextHop(buffer.readBytes(ipAddrLength));
     }
 
     @Override
     public void serializeNextHop(final CNextHop cNextHop, final ByteBuf byteAggregator) {
-        Preconditions.checkArgument(IP_NEXT_HOP_CASE_CLAZZ.isInstance(cNextHop), "cNextHop is not a VPN %s NextHop object.", IP_NEXT_HOP_CASE_CLAZZ.getSimpleName());
+        Preconditions.checkArgument(ipNextHopCaseClazz.isInstance(cNextHop), "cNextHop is not a VPN %s NextHop object.", ipNextHopCaseClazz.getSimpleName());
         byteAggregator.writeZero(RouteDistinguisherUtil.RD_LENGTH);
         NextHopUtil.serializeNextHop(cNextHop, byteAggregator);
     }
index ff10e797219e851175867075c993f5339b2638ac..6dfe0fa8f7d78f19d131e29a611a7d826f956c84 100644 (file)
@@ -48,7 +48,7 @@ public abstract class AbstractVpnNlriParser implements NlriParser, NlriSerialize
 
     protected abstract AdvertizedRoutes getAdvertizedRoutesByDestination(List<VpnDestination> dst);
 
-    public static void serializeNlri(final List<VpnDestination> dests, final ByteBuf buffer) {
+    static void serializeNlri(final List<VpnDestination> dests, final ByteBuf buffer) {
         final ByteBuf nlriByteBuf = Unpooled.buffer();
         for (final VpnDestination dest : dests) {
             final List<LabelStack> labelStack = dest.getLabelStack();
@@ -103,8 +103,9 @@ public abstract class AbstractVpnNlriParser implements NlriParser, NlriSerialize
                 vpnDst = getWithdrawnVpnDestination(routes.getDestinationType());
             }
         }
-        if (vpnDst != null)
+        if (vpnDst != null) {
             serializeNlri(vpnDst, byteAggregator);
+        }
     }
 
     @Override
index 21e82957814f9fc69c7df0061cc3dde8977c9f06..256ce61185e313d979337cdb9679945238e50110 100644 (file)
@@ -18,13 +18,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.vpn.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.vpn.ipv4.rev160210.l3vpn.ipv4.destination.VpnIpv4DestinationBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.vpn.rev160413.l3vpn.ip.destination.type.VpnDestination;
 
-public class VpnIpv4NlriParser extends AbstractVpnNlriParser {
+final class VpnIpv4NlriParser extends AbstractVpnNlriParser {
 
     private <T extends L3vpnIpv4Destination> List<VpnDestination> getVpnDestination(DestinationType dst, Class<T> dstTypeCaseClazz) {
-        if (dstTypeCaseClazz.isInstance(dst))
+        if (dstTypeCaseClazz.isInstance(dst)) {
             return dstTypeCaseClazz.cast(dst).getVpnIpv4Destination().getVpnDestination();
-        else
+        } else {
             return null;
+        }
     }
 
     @Override
index da999a845836ade13721b9a276fb0926c6327733..140b5f492e2b7f4783a2ea63524f3b104a20ee43 100644 (file)
@@ -18,16 +18,14 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.vpn.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.vpn.ipv6.rev160331.l3vpn.ipv6.destination.VpnIpv6DestinationBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.vpn.rev160413.l3vpn.ip.destination.type.VpnDestination;
 
-/**
- * @author Kevin Wang
- */
-public class VpnIpv6NlriParser extends AbstractVpnNlriParser {
+class VpnIpv6NlriParser extends AbstractVpnNlriParser {
 
     private <T extends L3vpnIpv6Destination> List<VpnDestination> getVpnDestination(DestinationType dst, Class<T> dstTypeCaseClazz) {
-        if (dstTypeCaseClazz.isInstance(dst))
+        if (dstTypeCaseClazz.isInstance(dst)) {
             return dstTypeCaseClazz.cast(dst).getVpnIpv6Destination().getVpnDestination();
-        else
+        } else {
             return null;
+        }
     }
 
     @Override
index 36365f0afc576c7e9fde6d271e5b08542a35036a..93328d24dbd18151cf9716ab957a145a82dbd893 100644 (file)
@@ -28,7 +28,7 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-abstract public class AbstractRouteEntry implements RouteEntry {
+public abstract class AbstractRouteEntry implements RouteEntry {
     protected static final NodeIdentifier ROUTES_IDENTIFIER = new NodeIdentifier(Routes.QNAME);
     private static final Logger LOG = LoggerFactory.getLogger(AbstractRouteEntry.class);
 
index 35ff3bec4905936da6d184c324aaff44d86bca17..1e40ed1cfed539e86fcc6a6f88983779347d215d 100644 (file)
@@ -15,7 +15,11 @@ import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.DataContainerNodeAttrBuilder;
 
-final public class RouteEntryUtil {
+public final class RouteEntryUtil {
+    private RouteEntryUtil() {
+        throw new UnsupportedOperationException();
+    }
+
     public static MapEntryNode createSimpleRouteValue(final PathArgument routeId, final BestPath path) {
         final DataContainerNodeAttrBuilder<NodeIdentifierWithPredicates, MapEntryNode> b = Builders.mapEntryBuilder();
         b.withNodeIdentifier((NodeIdentifierWithPredicates) routeId);
index dddf7fc3e281e0f96089630631f52468d873244e..94827e4be92025d98128ad4a58e3849a5029c2a4 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.protocol.bgp.rib.impl;
 
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.ClusterIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 
 /**
  * Invoked on routes which we get from our Internal peers. This is a special-case of
@@ -19,11 +18,4 @@ final class FromInternalReflectorClientImportPolicy extends FromInternalImportPo
     FromInternalReflectorClientImportPolicy(final Ipv4Address bgpIdentifier, final ClusterIdentifier clusterIdentifier) {
         super(bgpIdentifier, clusterIdentifier);
     }
-
-    @Override
-    ContainerNode effectiveAttributes(final ContainerNode attributes) {
-        // TODO: (defensiveness) verify ORIGINATOR_ID (should have been set)
-
-        return super.effectiveAttributes(attributes);
-    }
 }
index e86abe9066f9d7a05f7a3d63be8525868aeda177..ae56319d4ee3922bb62551f191d71993a8fd8371 100644 (file)
@@ -9,11 +9,13 @@
 package org.opendaylight.protocol.pcep.auto.bandwidth.extension;
 
 import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
 import com.google.common.collect.Lists;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 import javax.xml.bind.DatatypeConverter;
@@ -32,6 +34,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controll
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.controller.pcep.auto.bandwidth.rev160109.bandwidth.usage.object.BandwidthUsageBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.concepts.rev131125.Bandwidth;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.Pcrpt;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.PlspId;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.lsp.identifiers.tlv.LspIdentifiers;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.lsp.identifiers.tlv.LspIdentifiersBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.lsp.identifiers.tlv.lsp.identifiers.AddressFamily;
@@ -87,7 +90,7 @@ public class PcRptMessageCodecTest {
         final LspId lspId = new LspId(1L);
         final TunnelId tunnelId = new TunnelId(1);
         final LspIdentifiers identifier = new LspIdentifiersBuilder().setAddressFamily(afiLsp).setLspId(lspId).setTunnelId(tunnelId).build();
-        final Lsp lsp = new LspBuilder().setTlvs(new TlvsBuilder().setLspIdentifiers(identifier).build()).build();
+        final Lsp lsp = new LspBuilder().setPlspId(new PlspId(1L)).setTlvs(new TlvsBuilder().setLspIdentifiers(identifier).build()).build();
         final Ero ero = new EroBuilder().build();
         final List<Object> objects = Lists.<Object>newArrayList(lsp, ero, bw);
         final Reports validReports = codec.getValidReports(objects, Collections.<Message>emptyList());
@@ -95,6 +98,21 @@ public class PcRptMessageCodecTest {
         assertTrue(objects.isEmpty());
     }
 
+    @Test
+    public void testGetValidReportsNegative() {
+        final PcRptMessageCodec codec = new PcRptMessageCodec(this.ctx.getObjectHandlerRegistry());
+        final BandwidthUsage bw = new BandwidthUsageBuilder().setBwSample(Lists.newArrayList(new Bandwidth(new byte[] {0, 0, 0, 1}))).build();
+        final Ipv4Builder builder = new Ipv4Builder();
+        builder.setIpv4TunnelSenderAddress(new Ipv4Address("127.0.1.1"));
+        builder.setIpv4ExtendedTunnelId(new Ipv4ExtendedTunnelId(new Ipv4Address("127.0.1.2")));
+        builder.setIpv4TunnelEndpointAddress(new Ipv4Address("127.0.1.3"));
+        final Lsp lsp = new LspBuilder().setPlspId(new PlspId(1L)).build();
+        final Ero ero = new EroBuilder().build();
+        final List<Object> objects = Lists.newArrayList(lsp, ero, bw);
+        final Reports validReports = codec.getValidReports(objects, new ArrayList<>());
+        assertNull(validReports);
+    }
+
     @Test
     public void testserializeObject() {
         final PcRptMessageCodec codec = new PcRptMessageCodec(this.ctx.getObjectHandlerRegistry());
index b87e758b5047d36d1e2977dc5335bca4633d07c5..4d047c9bb0173fcb42bb50f70f0d5a8e1219b01b 100644 (file)
@@ -64,7 +64,7 @@ public class Stateful07PCReportMessageParser extends AbstractMessageParser {
         MessageUtil.formatMessage(TYPE, buffer, out);
     }
 
-    protected void serializeReport(final Reports report, final ByteBuf buffer) {
+    private void serializeReport(final Reports report, final ByteBuf buffer) {
         if (report.getSrp() != null) {
             serializeObject(report.getSrp(), buffer);
         }
@@ -103,48 +103,66 @@ public class Stateful07PCReportMessageParser extends AbstractMessageParser {
     }
 
     protected Reports getValidReports(final List<Object> objects, final List<Message> errors) {
-        boolean isValid = true;
         final ReportsBuilder builder = new ReportsBuilder();
+
         boolean lspViaSR = false;
-        if (objects.get(0) instanceof Srp) {
-            final Srp srp = (Srp) objects.get(0);
+        Object object = objects.remove(0);
+        if (object instanceof Srp) {
+            final Srp srp = (Srp) object;
             final Tlvs tlvs = srp.getTlvs();
             if (tlvs != null) {
                 lspViaSR = PSTUtil.isDefaultPST(tlvs.getPathSetupType());
             }
             builder.setSrp(srp);
-            objects.remove(0);
+            if(objects.isEmpty()) {
+                object = null;
+            } else {
+                object = objects.remove(0);
+            }
         }
 
-        if (objects.get(0) instanceof Lsp) {
-            final Lsp lsp = (Lsp) objects.get(0);
-            if(!lspViaSR && lsp.getTlvs().getLspIdentifiers() == null && lsp.getPlspId().getValue() != 0) {
-                errors.add(createErrorMsg(PCEPErrors.LSP_IDENTIFIERS_TLV_MISSING, Optional.<Rp>absent()));
-                isValid = false;
-            } else {
-                builder.setLsp(lsp);
-                objects.remove(0);
+        if(validateLsp(object, lspViaSR, errors, builder)) {
+            if(!objects.isEmpty()) {
+                object = objects.remove(0);
+                if(!validateEmpty(object, objects, errors, builder)) {
+                    return null;
+                }
             }
+
+            return builder.build();
+        }
+        return null;
+    }
+
+    private boolean validateEmpty(final Object object, final List<Object> objects, final List<Message> errors, final ReportsBuilder builder) {
+        final PathBuilder pBuilder = new PathBuilder();
+        if (object instanceof Ero) {
+            pBuilder.setEro((Ero) object);
         } else {
-            errors.add(createErrorMsg(PCEPErrors.LSP_MISSING, Optional.<Rp>absent()));
-            isValid = false;
+            errors.add(createErrorMsg(PCEPErrors.ERO_MISSING, Optional.<Rp>absent()));
+            return false;
         }
-        if (!objects.isEmpty()) {
-            final PathBuilder pBuilder = new PathBuilder();
-            if (objects.get(0) instanceof Ero) {
-                pBuilder.setEro((Ero) objects.get(0));
-                objects.remove(0);
+        parsePath(objects, pBuilder);
+        builder.setPath(pBuilder.build());
+        return true;
+    }
+
+    private boolean validateLsp(final Object object, final boolean lspViaSR, final List<Message> errors, final ReportsBuilder builder) {
+        if (object instanceof Lsp) {
+            final Lsp lsp = (Lsp) object;
+            final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.lsp.object.lsp.Tlvs tlvs = lsp.getTlvs();
+            if(!lspViaSR && lsp.getPlspId().getValue() != 0 && (tlvs == null || tlvs.getLspIdentifiers() == null)) {
+                final Message errorMsg = createErrorMsg(PCEPErrors.LSP_IDENTIFIERS_TLV_MISSING, Optional.<Rp>absent());
+                errors.add(errorMsg);
+                return false;
             } else {
-                errors.add(createErrorMsg(PCEPErrors.ERO_MISSING, Optional.<Rp>absent()));
-                isValid = false;
+                builder.setLsp(lsp);
             }
-            parsePath(objects, pBuilder);
-            builder.setPath(pBuilder.build());
-        }
-        if(isValid) {
-            return builder.build();
+        } else {
+            errors.add(createErrorMsg(PCEPErrors.LSP_MISSING, Optional.<Rp>absent()));
+            return false;
         }
-        return null;
+        return true;
     }
 
     private void parsePath(final List<Object> objects, final PathBuilder builder) {
index 23b86864df229f5d0364ddb7f0e5949a9e509049..8109d25a9e99db78e0e940ebd94b3b96b7ec3903 100755 (executable)
@@ -18,7 +18,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 final class PCEPRequest {
-    static enum State {
+    enum State {
         UNSENT,
         UNACKED,
         DONE,
@@ -51,11 +51,11 @@ final class PCEPRequest {
         return state;
     }
 
-    public Timer getTimer() {
+    Timer getTimer() {
         return timer;
     }
 
-    public synchronized void done(final OperationResult result) {
+    synchronized void done(final OperationResult result) {
         if (state != State.DONE) {
             LOG.debug("Request went from {} to {}", state, State.DONE);
             state = State.DONE;
@@ -64,8 +64,8 @@ final class PCEPRequest {
         }
     }
 
-    public synchronized void done() {
-        OperationResult result = null;
+    synchronized void done() {
+        OperationResult result;
         switch (state) {
         case UNSENT:
             result = OperationResults.UNSENT;
@@ -75,18 +75,20 @@ final class PCEPRequest {
             break;
         case DONE:
             return;
+        default:
+            return;
         }
         done(result);
     }
 
-    public synchronized void sent() {
+    synchronized void sent() {
         if (state == State.UNSENT) {
             LOG.debug("Request went from {} to {}", state, State.UNACKED);
             state = State.UNACKED;
         }
     }
 
-    public long getElapsedMillis() {
+    long getElapsedMillis() {
         return this.stopwatch.elapsed(TimeUnit.MILLISECONDS);
     }
 }