Convert Functions to private methods 10/52310/1
authorRobert Varga <rovarga@cisco.com>
Mon, 27 Feb 2017 13:27:07 +0000 (14:27 +0100)
committerRobert Varga <rovarga@cisco.com>
Mon, 27 Feb 2017 13:28:51 +0000 (14:28 +0100)
Using method handles allows us to eliminate explicit dependency
on Function and simplify declaration.

Change-Id: I8317fd3f37c569612b8d865a39871eb09dd30c81
Signed-off-by: Robert Varga <rovarga@cisco.com>
openflowplugin-impl/src/main/java/org/opendaylight/openflowplugin/impl/statistics/services/direct/AbstractDirectStatisticsService.java

index 82b8ddbe291ae761c58e6d91c109f5f0be94f6c1..f8127519db572a3e0d61e7112f3573e98c469403 100644 (file)
@@ -13,8 +13,6 @@ import com.google.common.util.concurrent.Futures;
 import com.google.common.util.concurrent.ListenableFuture;
 import java.util.List;
 import java.util.concurrent.Future;
-import java.util.function.Function;
-import javax.annotation.Nullable;
 import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
 import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack;
 import org.opendaylight.openflowplugin.api.openflow.device.Xid;
@@ -42,37 +40,6 @@ import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 abstract class AbstractDirectStatisticsService<I extends StoreStatsGrouping, O extends DataContainer, T extends OfHeader>
         extends AbstractMultipartService<I, T> {
 
-    private final Function<RpcResult<List<T>>, RpcResult<O>> resultTransformFunction =
-            new Function<RpcResult<List<T>>, RpcResult<O>>() {
-                @Nullable
-                @Override
-                public RpcResult<O> apply(@Nullable RpcResult<List<T>> input) {
-                    return Preconditions.checkNotNull(input).isSuccessful()
-                            ? RpcResultBuilder.success(buildReply(input.getResult(), input.isSuccessful())).build()
-                            : RpcResultBuilder.<O>failed().build();
-                }
-            };
-
-    private final Function<RpcResult<O>, RpcResult<O>> resultStoreFunction =
-            new Function<RpcResult<O>, RpcResult<O>>() {
-                @Nullable
-                @Override
-                public RpcResult<O> apply(@Nullable RpcResult<O> input)  {
-                    Preconditions.checkNotNull(input);
-
-                    if (input.isSuccessful()) {
-                        multipartWriterProvider
-                            .lookup(multipartType)
-                            .ifPresent(writer -> {
-                                writer.write(input.getResult(), true);
-                                getTxFacade().submitTransaction();
-                            });
-                    }
-
-                    return input;
-                }
-            };
-
     private final MultipartType multipartType;
     private final OpenflowVersion ofVersion = OpenflowVersion.get(getVersion());
     private final ConvertorExecutor convertorExecutor;
@@ -105,15 +72,34 @@ abstract class AbstractDirectStatisticsService<I extends StoreStatsGrouping, O e
      */
     Future<RpcResult<O>> handleAndReply(final I input) {
         final ListenableFuture<RpcResult<List<T>>> rpcReply = handleServiceCall(input);
-        ListenableFuture<RpcResult<O>> rpcResult = Futures.transform(rpcReply, resultTransformFunction::apply);
+        ListenableFuture<RpcResult<O>> rpcResult = Futures.transform(rpcReply, this::transformResult);
 
         if (Boolean.TRUE.equals(input.isStoreStats())) {
-            rpcResult = Futures.transform(rpcResult, resultStoreFunction::apply);
+            rpcResult = Futures.transform(rpcResult, this::storeResult);
         }
 
         return rpcResult;
     }
 
+    private RpcResult<O> transformResult(final RpcResult<List<T>> input) {
+        return Preconditions.checkNotNull(input).isSuccessful()
+                ? RpcResultBuilder.success(buildReply(input.getResult(), input.isSuccessful())).build()
+                : RpcResultBuilder.<O>failed().build();
+    }
+
+    private RpcResult<O> storeResult(final RpcResult<O> input) {
+        Preconditions.checkNotNull(input);
+
+        if (input.isSuccessful()) {
+            multipartWriterProvider.lookup(multipartType).ifPresent(writer -> {
+                writer.write(input.getResult(), true);
+                getTxFacade().submitTransaction();
+            });
+        }
+
+        return input;
+    }
+
     @Override
     protected OfHeader buildRequest(Xid xid, I input) throws ServiceException {
         return RequestInputUtils.createMultipartHeader(multipartType, xid.getValue(), getVersion())