Remove unused routedRpcRegistration
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / statistics / services / direct / OpendaylightDirectStatisticsServiceImpl.java
index b96ae21ec102bc81bc997823ff2a73253f134ff8..5b4ef7879ef0046e20b7bf93f767f3dea570ecfa 100644 (file)
@@ -8,6 +8,7 @@
 
 package org.opendaylight.openflowplugin.impl.statistics.services.direct;
 
+import com.google.common.util.concurrent.ListenableFuture;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetFlowStatisticsInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetFlowStatisticsOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetGroupStatisticsInput;
@@ -20,13 +21,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511
 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.GetQueueStatisticsOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.direct.statistics.rev160511.OpendaylightDirectStatisticsService;
 import org.opendaylight.yangtools.yang.binding.DataObject;
-import org.opendaylight.yangtools.yang.common.RpcError;
+import org.opendaylight.yangtools.yang.common.ErrorType;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
 
-import java.util.Optional;
-import java.util.concurrent.Future;
-
 /**
  * The Opendaylight direct statistics service.
  * This service handles RPC requests, sends them to registered handlers and returns their replies.
@@ -44,63 +42,49 @@ public class OpendaylightDirectStatisticsServiceImpl implements OpendaylightDire
     }
 
     @Override
-    public Future<RpcResult<GetGroupStatisticsOutput>> getGroupStatistics(GetGroupStatisticsInput input) {
-        final Optional<GroupDirectStatisticsService> service = provider.lookup(GroupDirectStatisticsService.class);
-
-        if (!service.isPresent()) {
-            return missingImplementation(GroupDirectStatisticsService.class);
-        }
-
-        return service.get().handleAndReply(input);
+    @SuppressWarnings("unchecked")
+    public ListenableFuture<RpcResult<GetGroupStatisticsOutput>> getGroupStatistics(GetGroupStatisticsInput input) {
+        return provider.lookup(AbstractGroupDirectStatisticsService.class)
+                .map(service -> service.handleAndReply(input))
+                .orElse(missingImplementation(AbstractGroupDirectStatisticsService.class));
     }
 
     @Override
-    public Future<RpcResult<GetQueueStatisticsOutput>> getQueueStatistics(GetQueueStatisticsInput input) {
-        final Optional<QueueDirectStatisticsService> service = provider.lookup(QueueDirectStatisticsService.class);
-
-        if (!service.isPresent()) {
-            return missingImplementation(QueueDirectStatisticsService.class);
-        }
-
-        return service.get().handleAndReply(input);
+    @SuppressWarnings("unchecked")
+    public ListenableFuture<RpcResult<GetQueueStatisticsOutput>> getQueueStatistics(GetQueueStatisticsInput input) {
+        return provider.lookup(AbstractQueueDirectStatisticsService.class)
+                .map(service -> service.handleAndReply(input))
+                .orElse(missingImplementation(AbstractQueueDirectStatisticsService.class));
     }
 
     @Override
-    public Future<RpcResult<GetFlowStatisticsOutput>> getFlowStatistics(GetFlowStatisticsInput input) {
-        final Optional<FlowDirectStatisticsService> service = provider.lookup(FlowDirectStatisticsService.class);
-
-        if (!service.isPresent()) {
-            return missingImplementation(FlowDirectStatisticsService.class);
-        }
-
-        return service.get().handleAndReply(input);
+    @SuppressWarnings("unchecked")
+    public ListenableFuture<RpcResult<GetFlowStatisticsOutput>> getFlowStatistics(GetFlowStatisticsInput input) {
+        return provider.lookup(AbstractFlowDirectStatisticsService.class)
+                .map(service -> service.handleAndReply(input))
+                .orElse(missingImplementation(AbstractFlowDirectStatisticsService.class));
     }
 
     @Override
-    public Future<RpcResult<GetMeterStatisticsOutput>> getMeterStatistics(GetMeterStatisticsInput input) {
-        final Optional<MeterDirectStatisticsService> service = provider.lookup(MeterDirectStatisticsService.class);
-
-        if (!service.isPresent()) {
-            return missingImplementation(MeterDirectStatisticsService.class);
-        }
-
-        return service.get().handleAndReply(input);
+    @SuppressWarnings("unchecked")
+    public ListenableFuture<RpcResult<GetMeterStatisticsOutput>> getMeterStatistics(GetMeterStatisticsInput input) {
+        return provider.lookup(AbstractMeterDirectStatisticsService.class)
+                .map(service -> service.handleAndReply(input))
+                .orElse(missingImplementation(AbstractMeterDirectStatisticsService.class));
     }
 
     @Override
-    public Future<RpcResult<GetNodeConnectorStatisticsOutput>> getNodeConnectorStatistics(GetNodeConnectorStatisticsInput input) {
-        final Optional<NodeConnectorDirectStatisticsService> service = provider.lookup(NodeConnectorDirectStatisticsService.class);
-
-        if (!service.isPresent()) {
-            return missingImplementation(NodeConnectorDirectStatisticsService.class);
-        }
-
-        return service.get().handleAndReply(input);
+    @SuppressWarnings("unchecked")
+    public ListenableFuture<RpcResult<GetNodeConnectorStatisticsOutput>>
+            getNodeConnectorStatistics(GetNodeConnectorStatisticsInput input) {
+        return provider.lookup(AbstractPortDirectStatisticsService.class)
+                .map(service -> service.handleAndReply(input))
+                .orElse(missingImplementation(AbstractPortDirectStatisticsService.class));
     }
 
-    private <T extends DataObject> Future<RpcResult<T>> missingImplementation(Class service) {
+    private static <T extends DataObject> ListenableFuture<RpcResult<T>> missingImplementation(Class service) {
         return RpcResultBuilder.<T>failed().withError(
-                RpcError.ErrorType.APPLICATION,
+                ErrorType.APPLICATION,
                 String.format("No implementation found for direct statistics service %s.", service.getCanonicalName()))
                 .buildFuture();
     }