2 * Copyright © 2018 Orange, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.transportpce.tapi.connectivity;
10 import com.google.common.collect.ImmutableClassToInstanceMap;
11 import org.opendaylight.mdsal.binding.api.RpcService;
12 import org.opendaylight.transportpce.common.network.NetworkTransactionService;
13 import org.opendaylight.transportpce.tapi.impl.rpc.CreateConnectivityServiceImpl;
14 import org.opendaylight.transportpce.tapi.impl.rpc.DeleteConnectivityServiceImpl;
15 import org.opendaylight.transportpce.tapi.impl.rpc.GetConnectionDetailsImpl;
16 import org.opendaylight.transportpce.tapi.impl.rpc.GetConnectivityServiceDetailsImpl;
17 import org.opendaylight.transportpce.tapi.impl.rpc.GetConnectivityServiceListImpl;
18 import org.opendaylight.transportpce.tapi.listeners.TapiPceNotificationHandler;
19 import org.opendaylight.transportpce.tapi.listeners.TapiRendererNotificationHandler;
20 import org.opendaylight.transportpce.tapi.utils.TapiContext;
21 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev221121.CreateConnectivityService;
22 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev221121.DeleteConnectivityService;
23 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev221121.GetConnectionDetails;
24 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev221121.GetConnectivityServiceDetails;
25 import org.opendaylight.yang.gen.v1.urn.onf.otcc.yang.tapi.connectivity.rev221121.GetConnectivityServiceList;
26 import org.opendaylight.yangtools.yang.binding.Rpc;
27 import org.slf4j.Logger;
28 import org.slf4j.LoggerFactory;
31 * Top level service interface providing main TAPI Connectivity services.
33 public class TapiConnectivityImpl {
34 private static final Logger LOG = LoggerFactory.getLogger(TapiConnectivityImpl.class);
36 private RpcService rpcService;
37 private final TapiContext tapiContext;
38 private final ConnectivityUtils connectivityUtils;
39 private TapiPceNotificationHandler pceListenerImpl;
40 private TapiRendererNotificationHandler rendererListenerImpl;
41 private final NetworkTransactionService networkTransactionService;
43 public TapiConnectivityImpl(RpcService rpcService, TapiContext tapiContext,
44 ConnectivityUtils connectivityUtils, TapiPceNotificationHandler pceListenerImpl,
45 TapiRendererNotificationHandler rendererListenerImpl,
46 NetworkTransactionService networkTransactionService) {
47 LOG.info("inside TapiImpl constructor");
48 this.rpcService = rpcService;
49 this.tapiContext = tapiContext;
50 this.connectivityUtils = connectivityUtils;
51 this.pceListenerImpl = pceListenerImpl;
52 this.rendererListenerImpl = rendererListenerImpl;
53 this.networkTransactionService = networkTransactionService;
57 public ImmutableClassToInstanceMap<Rpc<?, ?>> registerRPCs() {
58 return ImmutableClassToInstanceMap.<Rpc<?, ?>>builder()
59 .put(CreateConnectivityService.class, new CreateConnectivityServiceImpl(rpcService, tapiContext,
60 connectivityUtils, pceListenerImpl, rendererListenerImpl))
61 .put(GetConnectivityServiceDetails.class, new GetConnectivityServiceDetailsImpl(tapiContext))
62 .put(GetConnectionDetails.class, new GetConnectionDetailsImpl(tapiContext))
63 .put(DeleteConnectivityService.class, new DeleteConnectivityServiceImpl(rpcService, tapiContext,
64 networkTransactionService))
65 .put(GetConnectivityServiceList.class, new GetConnectivityServiceListImpl(tapiContext))