X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=olm%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Ftransportpce%2Folm%2FOlmPowerServiceRpcImpl.java;h=5f01d43b3219cf6040933dec97b203349b9ab6ab;hb=cb41f80cf1b6e12834b91ad1a651061f13a0d9a8;hp=c12491b58945a9fa57dcdec709a9460ac8392e1d;hpb=9162dd1116e482ccf3d2f833d56ffb133be4be82;p=transportpce.git diff --git a/olm/src/main/java/org/opendaylight/transportpce/olm/OlmPowerServiceRpcImpl.java b/olm/src/main/java/org/opendaylight/transportpce/olm/OlmPowerServiceRpcImpl.java index c12491b58..5f01d43b3 100644 --- a/olm/src/main/java/org/opendaylight/transportpce/olm/OlmPowerServiceRpcImpl.java +++ b/olm/src/main/java/org/opendaylight/transportpce/olm/OlmPowerServiceRpcImpl.java @@ -8,36 +8,69 @@ 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.>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"); } /** @@ -58,9 +91,9 @@ public class OlmPowerServiceRpcImpl implements TransportpceOlmService { * @return Result of the request */ @Override - public ListenableFuture> getPm(GetPmInput input) { - if (this.olmPowerService.getPm(input).getNodeId() == null) { - LOG.error("getPm: Error with input parameters"); + public final ListenableFuture> getPm(GetPmInput input) { + if (input.getNodeId() == null) { + LOG.error("getPm: NodeId can not be null"); return RpcResultBuilder.failed() .withError(ErrorType.RPC, "Error with input parameters") .buildFuture(); @@ -89,7 +122,7 @@ public class OlmPowerServiceRpcImpl implements TransportpceOlmService { * @return Result of the request */ @Override - public ListenableFuture> servicePowerSetup( + public final ListenableFuture> servicePowerSetup( ServicePowerSetupInput input) { return RpcResultBuilder.success(this.olmPowerService.servicePowerSetup(input)).buildFuture(); } @@ -115,7 +148,7 @@ public class OlmPowerServiceRpcImpl implements TransportpceOlmService { * @return Result of the request */ @Override - public ListenableFuture> + public final ListenableFuture> servicePowerTurndown(ServicePowerTurndownInput input) { return RpcResultBuilder.success(this.olmPowerService.servicePowerTurndown(input)).buildFuture(); } @@ -143,19 +176,24 @@ public class OlmPowerServiceRpcImpl implements TransportpceOlmService { * @return Result of the request */ @Override - public ListenableFuture> + public final ListenableFuture> calculateSpanlossBase(CalculateSpanlossBaseInput input) { return RpcResultBuilder.success(this.olmPowerService.calculateSpanlossBase(input)).buildFuture(); } @Override - public ListenableFuture> calculateSpanlossCurrent( + public final ListenableFuture> calculateSpanlossCurrent( CalculateSpanlossCurrentInput input) { return RpcResultBuilder.success(this.olmPowerService.calculateSpanlossCurrent(input)).buildFuture(); } @Override - public ListenableFuture> servicePowerReset(ServicePowerResetInput input) { + public final ListenableFuture> servicePowerReset(ServicePowerResetInput input) { return RpcResultBuilder.success(this.olmPowerService.servicePowerReset(input)).buildFuture(); } + + public Registration getRegisteredRpc() { + return reg; + } + }