Refactored anonymous classes that were too long. 75/19975/2
authorDana Kutenicsova <dkutenic@cisco.com>
Sat, 9 May 2015 19:19:00 +0000 (21:19 +0200)
committerRobert Varga <nite@hq.sk>
Sun, 10 May 2015 11:02:37 +0000 (11:02 +0000)
Extracted parts of long methods to separate private
method.

Change-Id: I29db5e2e940385f735a037434564b0069da9a2d6
Signed-off-by: Dana Kutenicsova <dkutenic@cisco.com>
pcep/topology-provider/src/main/java/org/opendaylight/bgpcep/pcep/topology/provider/Stateful07TopologySessionListener.java
pcep/tunnel-provider/src/main/java/org/opendaylight/bgpcep/pcep/tunnel/provider/TunnelProgramming.java

index 8d4de8268ca27e185dd6edb572deb64eee4b6382..ec96e6913606d3cd4d94879b2637c6dd6d029e73 100644 (file)
@@ -305,7 +305,6 @@ final class Stateful07TopologySessionListener extends AbstractTopologySessionLis
         if (f == null) {
             return OperationResults.createUnsent(PCEPErrors.LSP_INTERNAL_ERROR).future();
         }
-
         return Futures.transform(f, new AsyncFunction<Optional<ReportedLsp>, OperationResult>() {
             @Override
             public ListenableFuture<OperationResult> apply(final Optional<ReportedLsp> rep) {
@@ -313,25 +312,29 @@ final class Stateful07TopologySessionListener extends AbstractTopologySessionLis
                 if (reportedLsp == null) {
                     return OperationResults.createUnsent(PCEPErrors.UNKNOWN_PLSP_ID).future();
                 }
-                // Build the request and send it
-                final RequestsBuilder rb = new RequestsBuilder();
-                final SrpBuilder srpBuilder = new SrpBuilder().addAugmentation(Srp1.class, new Srp1Builder().setRemove(Boolean.TRUE).build()).setOperationId(nextRequest()).setProcessingRule(Boolean.TRUE);
-                final Optional<PathSetupType> maybePST = getPST(rep);
-                if (maybePST.isPresent()) {
-                    srpBuilder.setTlvs(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.srp.object.srp.TlvsBuilder()
-                        .setPathSetupType(maybePST.get())
-                        .build());
-                }
-                rb.setSrp(srpBuilder.build());
-                rb.setLsp(new LspBuilder().setRemove(Boolean.FALSE).setPlspId(reportedLsp.getPlspId()).setDelegate(reportedLsp.isDelegate()).build());
-
                 final PcinitiateMessageBuilder ib = new PcinitiateMessageBuilder(MESSAGE_HEADER);
-                ib.setRequests(Collections.singletonList(rb.build()));
+                final Requests rb = buildRequest(rep, reportedLsp);
+                ib.setRequests(Collections.singletonList(rb));
                 return sendMessage(new PcinitiateBuilder().setPcinitiateMessage(ib.build()).build(), rb.getSrp().getOperationId(), null);
             }
         });
     }
 
+    private Requests buildRequest(final Optional<ReportedLsp> rep, final Lsp reportedLsp) {
+        // Build the request and send it
+        final RequestsBuilder rb = new RequestsBuilder();
+        final SrpBuilder srpBuilder = new SrpBuilder().addAugmentation(Srp1.class, new Srp1Builder().setRemove(Boolean.TRUE).build()).setOperationId(nextRequest()).setProcessingRule(Boolean.TRUE);
+        final Optional<PathSetupType> maybePST = getPST(rep);
+        if (maybePST.isPresent()) {
+            srpBuilder.setTlvs(new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.pcep.ietf.stateful.rev131222.srp.object.srp.TlvsBuilder()
+                .setPathSetupType(maybePST.get())
+                .build());
+        }
+        rb.setSrp(srpBuilder.build());
+        rb.setLsp(new LspBuilder().setRemove(Boolean.FALSE).setPlspId(reportedLsp.getPlspId()).setDelegate(reportedLsp.isDelegate()).build());
+        return rb.build();
+    }
+
     private class UpdateFunction implements AsyncFunction<Optional<ReportedLsp>, OperationResult>  {
 
         private final UpdateLspArgs input;
@@ -439,19 +442,17 @@ final class Stateful07TopologySessionListener extends AbstractTopologySessionLis
                     return OperationResults.UNSENT;
                 }
                 // check if at least one of the paths has the same status as requested
-                boolean operational = false;
                 for (final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.pcep.client.attributes.path.computation.client.reported.lsp.Path p : rep.get().getPath()) {
                     final Path1 p1 = p.getAugmentation(Path1.class);
                     if (p1 == null) {
                         LOG.warn("Node {} LSP {} does not contain data", input.getNode(), input.getName());
                         return OperationResults.UNSENT;
                     }
-                    final Lsp l = p1.getLsp();
-                    if (l.getOperational().equals(op)) {
-                        operational = true;
+                    if (op.equals(p1.getLsp().getOperational())) {
+                        return OperationResults.SUCCESS;
                     }
                 }
-                return operational ? OperationResults.SUCCESS : OperationResults.UNSENT;
+                return OperationResults.UNSENT;
             }
         });
     }
index f63772b173b1c2d0506ca6db09d30ad67bcee412..86c8c3a948d43f87444ff57f7e86f157292aaf48 100644 (file)
@@ -54,8 +54,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.OperationResult;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.RemoveLspInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.RemoveLspOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.UpdateLspInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.UpdateLspInputBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.UpdateLspOutput;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.add.lsp.args.Arguments;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.add.lsp.args.ArgumentsBuilder;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.operation.result.Error;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.tunnel.p2p.rev130819.tunnel.p2p.path.cfg.attributes.ExplicitHops;
@@ -272,25 +274,7 @@ public final class TunnelProgramming implements TopologyTunnelPcepProgrammingSer
                     } catch (final ReadFailedException e) {
                         throw new IllegalStateException("Failed to ensure link existence.", e);
                     }
-
-                    final ArgumentsBuilder args = new ArgumentsBuilder();
-                    if (input.getBandwidth() != null) {
-                        args.setBandwidth(new BandwidthBuilder().setBandwidth(input.getBandwidth()).build());
-                    }
-                    if (input.getClassType() != null) {
-                        args.setClassType(new ClassTypeBuilder().setClassType(input.getClassType()).build());
-                    }
-                    args.setEndpointsObj(new EndpointsObjBuilder().setAddressFamily(buildAddressFamily(sp, dp)).build());
-                    args.setEro(buildEro(input.getExplicitHops()));
-                    args.setLspa(new LspaBuilder(input).build());
-
-                    final AdministrativeStatus adminStatus = input.getAugmentation(PcepCreateP2pTunnelInput1.class).getAdministrativeStatus();
-                    if (adminStatus != null) {
-                        args.addAugmentation(Arguments2.class, new Arguments2Builder().setLsp(new LspBuilder().setAdministrative((adminStatus == AdministrativeStatus.Active) ? true : false).build()).build());
-                    }
-
-                    ab.setArguments(args.build());
-
+                    ab.setArguments(buildArguments(input, sp, dp));
                     return Futures.transform(
                         (ListenableFuture<RpcResult<AddLspOutput>>) TunnelProgramming.this.topologyService.addLsp(ab.build()),
                         new Function<RpcResult<AddLspOutput>, OperationResult>() {
@@ -302,11 +286,29 @@ public final class TunnelProgramming implements TopologyTunnelPcepProgrammingSer
                 }
             }
         }));
-
         final RpcResult<PcepCreateP2pTunnelOutput> res = SuccessfulRpcResult.create(b.build());
         return Futures.immediateFuture(res);
     }
 
+    private Arguments buildArguments(final PcepCreateP2pTunnelInput input, final TerminationPoint sp, final TerminationPoint dp) {
+        final ArgumentsBuilder args = new ArgumentsBuilder();
+        if (input.getBandwidth() != null) {
+            args.setBandwidth(new BandwidthBuilder().setBandwidth(input.getBandwidth()).build());
+        }
+        if (input.getClassType() != null) {
+            args.setClassType(new ClassTypeBuilder().setClassType(input.getClassType()).build());
+        }
+        args.setEndpointsObj(new EndpointsObjBuilder().setAddressFamily(buildAddressFamily(sp, dp)).build());
+        args.setEro(buildEro(input.getExplicitHops()));
+        args.setLspa(new LspaBuilder(input).build());
+
+        final AdministrativeStatus adminStatus = input.getAugmentation(PcepCreateP2pTunnelInput1.class).getAdministrativeStatus();
+        if (adminStatus != null) {
+            args.addAugmentation(Arguments2.class, new Arguments2Builder().setLsp(new LspBuilder().setAdministrative((adminStatus == AdministrativeStatus.Active) ? true : false).build()).build());
+        }
+        return args.build();
+    }
+
     private Optional<Node> sourceNode(final ReadTransaction t, final InstanceIdentifier<Topology> topology, final Link link) throws ReadFailedException {
         return t.read(LogicalDatastoreType.OPERATIONAL,
                 topology.child(Node.class, new NodeKey(link.getSource().getSourceNode()))).checkedGet();
@@ -320,26 +322,21 @@ public final class TunnelProgramming implements TopologyTunnelPcepProgrammingSer
             protected ListenableFuture<OperationResult> invokeOperation() {
                 final InstanceIdentifier<Topology> tii = TopologyProgrammingUtil.topologyForInput(input);
                 final InstanceIdentifier<Link> lii = TunnelProgrammingUtil.linkIdentifier(tii, input);
-
                 try (final ReadOnlyTransaction t = TunnelProgramming.this.dataProvider.newReadOnlyTransaction()) {
                     final Node node;
                     final Link link;
-
                     try {
                         // The link has to exist
                         link = t.read(LogicalDatastoreType.OPERATIONAL, lii).checkedGet().get();
-
                         // The source node has to exist
                         node = sourceNode(t, tii, link).get();
                     } catch (IllegalStateException | ReadFailedException e) {
                         LOG.debug("Link or node does not exist.", e);
                         return RESULT;
                     }
-
                     final RemoveLspInputBuilder ab = new RemoveLspInputBuilder();
                     ab.setName(link.getAugmentation(Link1.class).getSymbolicPathName());
                     ab.setNode(node.getSupportingNode().get(0).getKey().getNodeRef());
-
                     return Futures.transform(
                         (ListenableFuture<RpcResult<RemoveLspOutput>>) TunnelProgramming.this.topologyService.removeLsp(ab.build()),
                         new Function<RpcResult<RemoveLspOutput>, OperationResult>() {
@@ -351,7 +348,6 @@ public final class TunnelProgramming implements TopologyTunnelPcepProgrammingSer
                 }
             }
         }));
-
         final RpcResult<PcepDestroyTunnelOutput> res = SuccessfulRpcResult.create(b.build());
         return Futures.immediateFuture(res);
     }
@@ -362,44 +358,22 @@ public final class TunnelProgramming implements TopologyTunnelPcepProgrammingSer
         b.setResult(AbstractInstructionExecutor.schedule(this.scheduler, new AbstractInstructionExecutor(input) {
             @Override
             protected ListenableFuture<OperationResult> invokeOperation() {
-
                 final InstanceIdentifier<Topology> tii = TopologyProgrammingUtil.topologyForInput(input);
                 final InstanceIdentifier<Link> lii = TunnelProgrammingUtil.linkIdentifier(tii, input);
-
                 try (final ReadOnlyTransaction t = TunnelProgramming.this.dataProvider.newReadOnlyTransaction()) {
                     final Link link;
                     final Node node;
-
                     try {
                         // The link has to exist
                         link = t.read(LogicalDatastoreType.OPERATIONAL, lii).checkedGet().get();
-
                         // The source node has to exist
                         node = sourceNode(t, tii, link).get();
                     } catch (IllegalStateException | ReadFailedException e) {
                         LOG.debug("Link or node does not exist.", e);
                         return RESULT;
                     }
-
-                    final UpdateLspInputBuilder ab = new UpdateLspInputBuilder();
-                    ab.setName(link.getAugmentation(Link1.class).getSymbolicPathName());
-                    ab.setNode(Preconditions.checkNotNull(supportingNode(node)));
-
-                    final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.update.lsp.args.ArgumentsBuilder args = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.update.lsp.args.ArgumentsBuilder();
-                    args.setBandwidth(new BandwidthBuilder().setBandwidth(input.getBandwidth()).build());
-                    args.setClassType(new ClassTypeBuilder().setClassType(input.getClassType()).build());
-                    args.setEro(buildEro(input.getExplicitHops()));
-                    args.setLspa(new LspaBuilder(input).build());
-
-                    final AdministrativeStatus adminStatus = input.getAugmentation(PcepUpdateTunnelInput1.class).getAdministrativeStatus();
-                    if (adminStatus != null) {
-                        args.addAugmentation(Arguments3.class, new Arguments3Builder().setLsp(new LspBuilder().setAdministrative((adminStatus == AdministrativeStatus.Active) ? true : false).build()).build());
-                    }
-
-                    ab.setArguments(args.build());
-
                     return Futures.transform(
-                        (ListenableFuture<RpcResult<UpdateLspOutput>>) TunnelProgramming.this.topologyService.updateLsp(ab.build()),
+                        (ListenableFuture<RpcResult<UpdateLspOutput>>) TunnelProgramming.this.topologyService.updateLsp(buildUpdateInput(link, node, input)),
                         new Function<RpcResult<UpdateLspOutput>, OperationResult>() {
                             @Override
                             public OperationResult apply(final RpcResult<UpdateLspOutput> input) {
@@ -414,6 +388,25 @@ public final class TunnelProgramming implements TopologyTunnelPcepProgrammingSer
         return Futures.immediateFuture(res);
     }
 
+    private UpdateLspInput buildUpdateInput(final Link link, final Node node, final PcepUpdateTunnelInput input) {
+        final UpdateLspInputBuilder ab = new UpdateLspInputBuilder();
+        ab.setName(link.getAugmentation(Link1.class).getSymbolicPathName());
+        ab.setNode(Preconditions.checkNotNull(supportingNode(node)));
+
+        final org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.update.lsp.args.ArgumentsBuilder args = new org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.topology.pcep.rev131024.update.lsp.args.ArgumentsBuilder();
+        args.setBandwidth(new BandwidthBuilder().setBandwidth(input.getBandwidth()).build());
+        args.setClassType(new ClassTypeBuilder().setClassType(input.getClassType()).build());
+        args.setEro(buildEro(input.getExplicitHops()));
+        args.setLspa(new LspaBuilder(input).build());
+
+        final AdministrativeStatus adminStatus = input.getAugmentation(PcepUpdateTunnelInput1.class).getAdministrativeStatus();
+        if (adminStatus != null) {
+            args.addAugmentation(Arguments3.class, new Arguments3Builder().setLsp(new LspBuilder().setAdministrative((adminStatus == AdministrativeStatus.Active) ? true : false).build()).build());
+        }
+        ab.setArguments(args.build());
+        return ab.build();
+    }
+
     @Override
     public void close() {
         LOG.debug("Shutting down instruction scheduler {}", this);