package org.opendaylight.transportpce.olm;
+import com.google.common.collect.ImmutableClassToInstanceMap;
import com.google.common.util.concurrent.ListenableFuture;
+import org.opendaylight.mdsal.binding.api.RpcProviderService;
import org.opendaylight.transportpce.olm.service.OlmPowerService;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.CalculateSpanlossBase;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.CalculateSpanlossBaseInput;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.CalculateSpanlossBaseOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.CalculateSpanlossCurrent;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.CalculateSpanlossCurrentInput;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.CalculateSpanlossCurrentOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.GetPm;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.GetPmInput;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.GetPmOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerReset;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerResetInput;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerResetOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerSetup;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerSetupInput;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerSetupOutput;
+import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerTurndown;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerTurndownInput;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.ServicePowerTurndownOutput;
import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.olm.rev210618.TransportpceOlmService;
+import org.opendaylight.yangtools.concepts.Registration;
+import org.opendaylight.yangtools.yang.binding.Rpc;
import org.opendaylight.yangtools.yang.common.ErrorType;
import org.opendaylight.yangtools.yang.common.RpcResult;
import org.opendaylight.yangtools.yang.common.RpcResultBuilder;
+import org.osgi.service.component.annotations.Activate;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
+import org.osgi.service.component.annotations.Reference;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* The Class OlmPowerServiceRpcImpl.
*/
+@Component
public class OlmPowerServiceRpcImpl implements TransportpceOlmService {
private static final Logger LOG = LoggerFactory.getLogger(OlmPowerServiceRpcImpl.class);
private final OlmPowerService olmPowerService;
+ private Registration reg;
- public OlmPowerServiceRpcImpl(OlmPowerService olmPowerService) {
+ @Activate
+ public OlmPowerServiceRpcImpl(@Reference OlmPowerService olmPowerService,
+ @Reference RpcProviderService rpcProviderService) {
this.olmPowerService = olmPowerService;
+ this.reg = rpcProviderService.registerRpcImplementations(ImmutableClassToInstanceMap.<Rpc<?, ?>>builder()
+ .put(GetPm.class, this::getPm)
+ .put(ServicePowerSetup.class, this::servicePowerSetup)
+ .put(ServicePowerTurndown.class, this::servicePowerTurndown)
+ .put(CalculateSpanlossBase.class, this::calculateSpanlossBase)
+ .put(CalculateSpanlossCurrent.class, this::calculateSpanlossCurrent)
+ .put(ServicePowerReset.class, this::servicePowerReset)
+ .build());
+ LOG.info("OlmPowerServiceRpcImpl instantiated");
+ }
+
+ @Deactivate
+ public void close() {
+ this.reg.close();
+ LOG.info("OlmPowerServiceRpcImpl Closed");
}
/**
* @return Result of the request
*/
@Override
- public ListenableFuture<RpcResult<GetPmOutput>> getPm(GetPmInput input) {
- if (this.olmPowerService.getPm(input).getNodeId() == null) {
- LOG.error("getPm: Error with input parameters");
+ public final ListenableFuture<RpcResult<GetPmOutput>> getPm(GetPmInput input) {
+ if (input.getNodeId() == null) {
+ LOG.error("getPm: NodeId can not be null");
return RpcResultBuilder.<GetPmOutput>failed()
.withError(ErrorType.RPC, "Error with input parameters")
.buildFuture();
* @return Result of the request
*/
@Override
- public ListenableFuture<RpcResult<ServicePowerSetupOutput>> servicePowerSetup(
+ public final ListenableFuture<RpcResult<ServicePowerSetupOutput>> servicePowerSetup(
ServicePowerSetupInput input) {
return RpcResultBuilder.success(this.olmPowerService.servicePowerSetup(input)).buildFuture();
}
* @return Result of the request
*/
@Override
- public ListenableFuture<RpcResult<ServicePowerTurndownOutput>>
+ public final ListenableFuture<RpcResult<ServicePowerTurndownOutput>>
servicePowerTurndown(ServicePowerTurndownInput input) {
return RpcResultBuilder.success(this.olmPowerService.servicePowerTurndown(input)).buildFuture();
}
* @return Result of the request
*/
@Override
- public ListenableFuture<RpcResult<CalculateSpanlossBaseOutput>>
+ public final ListenableFuture<RpcResult<CalculateSpanlossBaseOutput>>
calculateSpanlossBase(CalculateSpanlossBaseInput input) {
return RpcResultBuilder.success(this.olmPowerService.calculateSpanlossBase(input)).buildFuture();
}
@Override
- public ListenableFuture<RpcResult<CalculateSpanlossCurrentOutput>> calculateSpanlossCurrent(
+ public final ListenableFuture<RpcResult<CalculateSpanlossCurrentOutput>> calculateSpanlossCurrent(
CalculateSpanlossCurrentInput input) {
return RpcResultBuilder.success(this.olmPowerService.calculateSpanlossCurrent(input)).buildFuture();
}
@Override
- public ListenableFuture<RpcResult<ServicePowerResetOutput>> servicePowerReset(ServicePowerResetInput input) {
+ public final ListenableFuture<RpcResult<ServicePowerResetOutput>> servicePowerReset(ServicePowerResetInput input) {
return RpcResultBuilder.success(this.olmPowerService.servicePowerReset(input)).buildFuture();
}
+
+ public Registration getRegisteredRpc() {
+ return reg;
+ }
+
}