Merge "Fix for Bug 3"
[controller.git] / opendaylight / md-sal / sal-binding-broker / src / main / java / org / opendaylight / controller / sal / binding / impl / connect / dom / BindingDomConnectorDeployer.java
1 package org.opendaylight.controller.sal.binding.impl.connect.dom;
2
3 import static com.google.common.base.Preconditions.checkNotNull;
4
5 import org.opendaylight.controller.sal.binding.api.NotificationProviderService;
6 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
7 import org.opendaylight.controller.sal.binding.api.data.DataProviderService;
8 import org.opendaylight.controller.sal.binding.impl.RootBindingAwareBroker;
9 import org.opendaylight.controller.sal.core.api.Broker.ProviderSession;
10 import org.opendaylight.controller.sal.core.api.RpcProvisionRegistry;
11 import org.opendaylight.controller.sal.core.api.notify.NotificationPublishService;
12
13 public class BindingDomConnectorDeployer {
14
15     private static BindingIndependentMappingService mappingService;
16
17     public static BindingIndependentConnector tryToDeployConnector(RootBindingAwareBroker baBroker,
18             ProviderSession domSession) {
19         checkNotNull(baBroker);
20         checkNotNull(domSession);
21         BindingIndependentConnector connector = createConnector(mappingService);
22         return connector;
23     }
24
25     public static BindingIndependentConnector createConnector(BindingIndependentMappingService mappingService) {
26         BindingIndependentConnector connector = new BindingIndependentConnector();
27         connector.setMappingService(mappingService);
28         return connector;
29     }
30
31     public static BindingIndependentConnector createConnector(BindingIndependentConnector source) {
32         BindingIndependentConnector connector = new BindingIndependentConnector();
33         connector.setMappingService(source.getMappingService());
34         return connector;
35     }
36     
37     public static void startDataForwarding(BindingIndependentConnector connector, DataProviderService baService,
38             ProviderSession domContext) {
39         startDataForwarding(connector, baService,
40                 domContext.getService(org.opendaylight.controller.sal.core.api.data.DataProviderService.class));
41     }
42
43     public static void startRpcForwarding(BindingIndependentConnector connector,
44             RpcProviderRegistry rpcProviderRegistry, ProviderSession domProviderContext) {
45         startRpcForwarding(connector, rpcProviderRegistry, domProviderContext.getService(RpcProvisionRegistry.class));
46
47     }
48     
49     public static void startNotificationForwarding(BindingIndependentConnector connector, NotificationProviderService provider,ProviderSession domProviderContext) {
50         startNotificationForwarding(connector, provider, domProviderContext.getService(NotificationPublishService.class));
51     }
52
53     public static void startRpcForwarding(BindingIndependentConnector connector, RpcProviderRegistry baService,
54             RpcProvisionRegistry domService) {
55         if (connector.isRpcForwarding()) {
56             return;
57         }
58
59         connector.setDomRpcRegistry(domService);
60         connector.setBindingRpcRegistry(baService);
61         connector.startRpcForwarding();
62     }
63
64     public static void startDataForwarding(BindingIndependentConnector connector, DataProviderService baService,
65             org.opendaylight.controller.sal.core.api.data.DataProviderService domService) {
66         if (connector.isDataForwarding()) {
67             return;
68         }
69
70         connector.setBindingDataService(baService);
71         connector.setDomDataService(domService);
72         connector.startDataForwarding();
73     }
74     
75     public static void startNotificationForwarding(BindingIndependentConnector connector, NotificationProviderService baService, NotificationPublishService domService) {
76         if(connector.isNotificationForwarding()) {
77             return;
78         }
79         
80         // FIXME
81     }
82
83     //
84     // public static BindingIndependentMappingService getGlobalMappingService()
85     // {
86     // return mappingService;
87     // }
88     //
89     // protected static BindingIndependentMappingService
90     // setGlobalMappingService(BindingIndependentMappingService service) {
91     // mappingService= service;
92     // return mappingService;
93     // }
94     //
95     // public static BindingIndependentConnector
96     // tryToDeployConnector(MountProviderInstance baMount,MountProvisionInstance
97     // domMount) {
98     //
99     //
100     // return null;
101     // }
102
103 }