Merge "Leafref and identityref types to Json"
[controller.git] / opendaylight / md-sal / sal-binding-broker / src / main / java / org / opendaylight / controller / sal / binding / impl / OsgiProviderContext.xtend
index c769ca1ee38509fa3dbebd52948f81735fddf59c..d1ec35157f5770080b75fbe794637c220c0a2d43 100644 (file)
@@ -12,32 +12,43 @@ import java.util.Hashtable;
 import java.util.Map;
 
 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RpcServiceRegistration;
 import org.opendaylight.yangtools.yang.binding.RpcService;
 import org.osgi.framework.BundleContext;
 
 import static org.opendaylight.controller.sal.binding.impl.osgi.Constants.*;
 import static extension org.opendaylight.controller.sal.binding.impl.osgi.PropertiesUtils.*;
+import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.RpcRegistration
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier
+import org.opendaylight.controller.sal.binding.api.BindingAwareProvider.ProviderFunctionality
+import static com.google.common.base.Preconditions.*
 
 class OsgiProviderContext extends OsgiConsumerContext implements ProviderContext {
 
     @Property
-    val Map<Class<? extends RpcService>, RpcServiceRegistrationImpl<? extends RpcService>> registeredServices
+    val Map<Class<? extends RpcService>, RpcRegistration<? extends RpcService>> registeredServices
 
     new(BundleContext ctx, BindingAwareBrokerImpl broker) {
         super(ctx, broker);
         _registeredServices = new HashMap();
     }
 
-    override def <T extends RpcService> RpcServiceRegistration<T> addRpcImplementation(Class<T> type, T implementation) {
-
-        // TODO Auto-generated method stub
-        val properties = new Hashtable<String, String>();
-        properties.salServiceType = SAL_SERVICE_TYPE_PROVIDER
+    override <T extends RpcService> addRpcImplementation(Class<T> type, T implementation) {
+        val salReg = broker.addRpcImplementation(type, implementation)
+        registeredServices.put(type, salReg)
+        return salReg;
+    }
 
-        // Fill requirements
-        val salReg = broker.registerRpcImplementation(type, implementation, this, properties)
+    override <T extends RpcService> addRoutedRpcImplementation(Class<T> type, T implementation) throws IllegalStateException {
+        val salReg = broker.addRoutedRpcImplementation(type, implementation)
         registeredServices.put(type, salReg)
         return salReg;
     }
+
+    override registerFunctionality(ProviderFunctionality functionality) {
+        // NOOP for now
+    }
+
+    override unregisterFunctionality(ProviderFunctionality functionality) {
+        // NOOP for now
+    }
 }