Remove unused routedRpcRegistration
[openflowplugin.git] / openflowplugin-impl / src / main / java / org / opendaylight / openflowplugin / impl / statistics / services / OpendaylightMeterStatisticsServiceImpl.java
index 21aa86823f2621ebaf3a0c870b68137b831db417..981b50d5a0ed9054f2780f32a54087a6c360ba41 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * Copyright (c) 2015 Cisco Systems, Inc. and others.  All rights reserved.
  *
  * This program and the accompanying materials are made available under the
@@ -7,17 +7,12 @@
  */
 package org.opendaylight.openflowplugin.impl.statistics.services;
 
-import com.google.common.base.Function;
-import com.google.common.util.concurrent.JdkFutureAdapters;
 import com.google.common.util.concurrent.ListenableFuture;
-import java.util.concurrent.Future;
-import org.opendaylight.openflowjava.protocol.api.util.BinContent;
+import java.util.concurrent.atomic.AtomicLong;
+import org.opendaylight.mdsal.binding.api.NotificationPublishService;
 import org.opendaylight.openflowplugin.api.openflow.device.DeviceContext;
 import org.opendaylight.openflowplugin.api.openflow.device.RequestContextStack;
-import org.opendaylight.openflowplugin.api.openflow.device.Xid;
-import org.opendaylight.openflowplugin.impl.services.CommonService;
-import org.opendaylight.openflowplugin.impl.services.DataCrate;
-import org.opendaylight.openflowplugin.impl.services.RequestInputUtils;
+import org.opendaylight.openflowplugin.openflow.md.core.sal.convertor.ConvertorExecutor;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterConfigStatisticsInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterConfigStatisticsOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetAllMeterStatisticsInput;
@@ -27,130 +22,54 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterStatisticsInput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.GetMeterStatisticsOutput;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.meter.statistics.rev131111.OpendaylightMeterStatisticsService;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MeterId;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.MultipartType;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartRequestInputBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterConfigCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.MultipartRequestMeterFeaturesCaseBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.meter._case.MultipartRequestMeterBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.request.multipart.request.body.multipart.request.meter.config._case.MultipartRequestMeterConfigBuilder;
 import org.opendaylight.yangtools.yang.common.RpcResult;
 
-/**
- * @author joe
- */
-public class OpendaylightMeterStatisticsServiceImpl extends CommonService implements OpendaylightMeterStatisticsService {
-
-
-    public OpendaylightMeterStatisticsServiceImpl(final RequestContextStack requestContextStack, DeviceContext deviceContext) {
-        super(requestContextStack, deviceContext);
+public class OpendaylightMeterStatisticsServiceImpl implements OpendaylightMeterStatisticsService {
+    private final AllMeterConfigStatsService allMeterConfig;
+    private final AllMeterStatsService allMeterStats;
+    private final MeterFeaturesService meterFeatures;
+    private final MeterStatsService meterStats;
+    private final NotificationPublishService notificationPublishService;
+
+    public OpendaylightMeterStatisticsServiceImpl(final RequestContextStack requestContextStack,
+                                                  final DeviceContext deviceContext,
+                                                  final AtomicLong compatibilityXidSeed,
+                                                  final NotificationPublishService notificationPublishService,
+                                                  final ConvertorExecutor convertorExecutor) {
+        this.notificationPublishService = notificationPublishService;
+
+        allMeterConfig = new AllMeterConfigStatsService(requestContextStack,
+                                                        deviceContext,
+                                                        compatibilityXidSeed,
+                                                        convertorExecutor);
+        allMeterStats = new AllMeterStatsService(requestContextStack,
+                                                 deviceContext,
+                                                 compatibilityXidSeed,
+                                                 convertorExecutor);
+        meterFeatures = new MeterFeaturesService(requestContextStack, deviceContext, compatibilityXidSeed);
+        meterStats = new MeterStatsService(requestContextStack, deviceContext, compatibilityXidSeed, convertorExecutor);
     }
 
     @Override
-    public Future<RpcResult<GetAllMeterConfigStatisticsOutput>> getAllMeterConfigStatistics(
+    public ListenableFuture<RpcResult<GetAllMeterConfigStatisticsOutput>> getAllMeterConfigStatistics(
             final GetAllMeterConfigStatisticsInput input) {
-        return this
-                .<GetAllMeterConfigStatisticsOutput, Void>handleServiceCall(new Function<DataCrate<GetAllMeterConfigStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
-
-                    @Override
-                    public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetAllMeterConfigStatisticsOutput> data) {
-
-                        MultipartRequestMeterConfigCaseBuilder caseBuilder =
-                                new MultipartRequestMeterConfigCaseBuilder();
-                        MultipartRequestMeterConfigBuilder mprMeterConfigBuild =
-                                new MultipartRequestMeterConfigBuilder();
-                        mprMeterConfigBuild.setMeterId(new MeterId(BinContent.intToUnsignedLong(
-                                org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common
-                                        .types.rev130731.Meter.OFPMALL.getIntValue())));
-                        caseBuilder.setMultipartRequestMeterConfig(mprMeterConfigBuild.build());
-
-                        final Xid xid = data.getRequestContext().getXid();
-                        MultipartRequestInputBuilder mprInput = RequestInputUtils
-                                .createMultipartHeader(MultipartType.OFPMPMETERCONFIG, xid.getValue(), getVersion());
-                        mprInput.setMultipartRequestBody(caseBuilder.build());
-                        Future<RpcResult<Void>> resultFromOFLib = getDeviceContext()
-                                .getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build());
-                        return JdkFutureAdapters
-                                .listenInPoolThread(resultFromOFLib);
-                    }
-                });
-
+        return allMeterConfig.handleAndNotify(input, notificationPublishService);
     }
 
     @Override
-    public Future<RpcResult<GetAllMeterStatisticsOutput>> getAllMeterStatistics(final GetAllMeterStatisticsInput input) {
-
-        return this.<GetAllMeterStatisticsOutput, Void>handleServiceCall(
-                new Function<DataCrate<GetAllMeterStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
-                    @Override
-                    public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetAllMeterStatisticsOutput> data) {
-
-                        MultipartRequestMeterCaseBuilder caseBuilder =
-                                new MultipartRequestMeterCaseBuilder();
-                        MultipartRequestMeterBuilder mprMeterBuild =
-                                new MultipartRequestMeterBuilder();
-                        mprMeterBuild.setMeterId(new MeterId(BinContent.intToUnsignedLong(
-                                org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common
-                                        .types.rev130731.Meter.OFPMALL.getIntValue())));
-                        caseBuilder.setMultipartRequestMeter(mprMeterBuild.build());
-
-                        final Xid xid = data.getRequestContext().getXid();
-                        MultipartRequestInputBuilder mprInput = RequestInputUtils
-                                .createMultipartHeader(MultipartType.OFPMPMETER, xid.getValue(), getVersion());
-                        mprInput.setMultipartRequestBody(caseBuilder.build());
-                        Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext()
-                                .getConnectionAdapter().multipartRequest(mprInput.build());
-
-                        return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
-                    }
-                }
-        );
-
+    public ListenableFuture<RpcResult<GetAllMeterStatisticsOutput>> getAllMeterStatistics(
+                                                                      final GetAllMeterStatisticsInput input) {
+        return allMeterStats.handleAndNotify(input, notificationPublishService);
     }
 
     @Override
-    public Future<RpcResult<GetMeterFeaturesOutput>> getMeterFeatures(final GetMeterFeaturesInput input) {
-        return this.<GetMeterFeaturesOutput, Void>handleServiceCall(
-                new Function<DataCrate<GetMeterFeaturesOutput>, ListenableFuture<RpcResult<Void>>>() {
-                    @Override
-                    public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetMeterFeaturesOutput> data) {
-
-                        MultipartRequestMeterFeaturesCaseBuilder mprMeterFeaturesBuild =
-                                new MultipartRequestMeterFeaturesCaseBuilder();
-
-                        final Xid xid = data.getRequestContext().getXid();
-                        MultipartRequestInputBuilder mprInput =
-                                RequestInputUtils.createMultipartHeader(MultipartType.OFPMPMETERFEATURES, xid.getValue(), getVersion());
-                        mprInput.setMultipartRequestBody(mprMeterFeaturesBuild.build());
-                        Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build());
-                        return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
-                    }
-                });
+    public ListenableFuture<RpcResult<GetMeterFeaturesOutput>> getMeterFeatures(final GetMeterFeaturesInput input) {
+        return meterFeatures.handleAndNotify(input, notificationPublishService);
     }
 
     @Override
-    public Future<RpcResult<GetMeterStatisticsOutput>> getMeterStatistics(final GetMeterStatisticsInput input) {
-        return this.<GetMeterStatisticsOutput, Void>handleServiceCall(
-                new Function<DataCrate<GetMeterStatisticsOutput>, ListenableFuture<RpcResult<Void>>>() {
-                    @Override
-                    public ListenableFuture<RpcResult<Void>> apply(final DataCrate<GetMeterStatisticsOutput> data) {
-                        MultipartRequestMeterCaseBuilder caseBuilder =
-                                new MultipartRequestMeterCaseBuilder();
-                        MultipartRequestMeterBuilder mprMeterBuild =
-                                new MultipartRequestMeterBuilder();
-                        mprMeterBuild.setMeterId(new MeterId(input.getMeterId().getValue()));
-                        caseBuilder.setMultipartRequestMeter(mprMeterBuild.build());
-
-                        final Xid xid = data.getRequestContext().getXid();
-                        MultipartRequestInputBuilder mprInput =
-                                RequestInputUtils.createMultipartHeader(MultipartType.OFPMPMETER, xid.getValue(), getVersion());
-                        mprInput.setMultipartRequestBody(caseBuilder.build());
-                        Future<RpcResult<Void>> resultFromOFLib = getDeviceContext().getPrimaryConnectionContext().getConnectionAdapter().multipartRequest(mprInput.build());
-                        return JdkFutureAdapters.listenInPoolThread(resultFromOFLib);
-                    }
-                });
-
+    public ListenableFuture<RpcResult<GetMeterStatisticsOutput>> getMeterStatistics(
+            final GetMeterStatisticsInput input) {
+        return meterStats.handleAndNotify(input, notificationPublishService);
     }
-
 }