BUG-731: reduced complexity
[bgpcep.git] / pcep / segment-routing / src / main / java / org / opendaylight / protocol / pcep / segment / routing02 / SrPcInitiateMessageParser.java
index 5ff342aeb73a278665d28dd5b51ee6d91a58027a..3b1a38499c20cdba8d7b2afa87998f777820dc0b 100644 (file)
@@ -23,30 +23,25 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.typ
 
 public class SrPcInitiateMessageParser extends CInitiated00PCInitiateMessageParser {
 
-    public SrPcInitiateMessageParser(ObjectRegistry registry) {
+    public SrPcInitiateMessageParser(final ObjectRegistry registry) {
         super(registry);
     }
 
     @Override
-    protected void serializeRequest(Requests req, ByteBuf buffer) {
-        if(isSegmentRoutingPath(req.getSrp())) {
-            serializeObject(req.getSrp(), buffer);
-            if(req.getLsp() != null) {
-                serializeObject(req.getLsp(), buffer);
-            }
-            final Ero srEro = req.getEro();
-            if(srEro != null) {
-                serializeObject(srEro, buffer);
-            }
+    protected void serializeRequest(final Requests req, final ByteBuf buffer) {
+        if (SrEroUtil.isSegmentRoutingPath(req.getEro())) {
+            serializeObject(SrEroUtil.addSRPathSetupTypeTlv(req.getSrp()), buffer);
+            serializeObject(req.getLsp(), buffer);
+            serializeObject(req.getEro(), buffer);
         } else {
             super.serializeRequest(req, buffer);
         }
     }
 
     @Override
-    protected Requests getValidRequest(List<Object> objects) {
+    protected Requests getValidRequest(final List<Object> objects) {
         final Srp srp = (Srp) objects.get(0);
-        if(isSegmentRoutingPath(srp)) {
+        if (isSegmentRoutingPath(srp)) {
             final RequestsBuilder builder = new RequestsBuilder();
             builder.setSrp(srp);
             objects.remove(0);
@@ -54,11 +49,9 @@ public class SrPcInitiateMessageParser extends CInitiated00PCInitiateMessagePars
             objects.remove(0);
 
             final Object obj = objects.get(0);
-            if(obj != null) {
-                if(obj instanceof Ero) {
-                    builder.setEro((Ero)obj);
-                    objects.remove(0);
-                }
+            if (obj instanceof Ero) {
+                builder.setEro((Ero) obj);
+                objects.remove(0);
             }
             return builder.build();
         }
@@ -66,8 +59,9 @@ public class SrPcInitiateMessageParser extends CInitiated00PCInitiateMessagePars
     }
 
     private boolean isSegmentRoutingPath(final Srp srp) {
-        if(srp != null && srp.getTlvs() != null) {
-            return SrEroUtil.isPst(srp.getTlvs().getAugmentation(Tlvs5.class)) || SrEroUtil.isPst(srp.getTlvs().getAugmentation(Tlvs7.class));
+        if (srp != null && srp.getTlvs() != null) {
+            return SrEroUtil.isPst(srp.getTlvs().getAugmentation(Tlvs5.class))
+                    || SrEroUtil.isPst(srp.getTlvs().getAugmentation(Tlvs7.class));
         }
         return false;
     }