Decompose RPC implementation classes
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / statistics / services / direct / AbstractDirectStatisticsService.java
index af5e68e61340681156a677093b81d7e0a417c488..c7b02a5ec871b3d7a40ab44369b74e1471c06ef2 100644 (file)
@@ -68,17 +68,12 @@ abstract class AbstractDirectStatisticsService<I extends StoreStatsGrouping,
      * @param input the input
      * @return the future
      */
-    ListenableFuture<RpcResult<O>> handleAndReply(final I input) {
-        final ListenableFuture<RpcResult<List<T>>> rpcReply = handleServiceCall(input);
-        ListenableFuture<RpcResult<O>> rpcResult = Futures.transform(rpcReply,
-                this::transformResult,
-                MoreExecutors.directExecutor());
-
-        if (Boolean.TRUE.equals(input.getStoreStats())) {
-            rpcResult = Futures.transform(rpcResult, this::storeResult, MoreExecutors.directExecutor());
-        }
+    final ListenableFuture<RpcResult<O>> handleAndReply(final I input) {
+        final var rpcResult = Futures.transform(handleServiceCall(input), this::transformResult,
+            MoreExecutors.directExecutor());
 
-        return rpcResult;
+        return Boolean.TRUE.equals(input.getStoreStats())
+            ? Futures.transform(rpcResult, this::storeResult, MoreExecutors.directExecutor()) : rpcResult;
     }
 
     private RpcResult<O> transformResult(final RpcResult<List<T>> input) {