Add InstanceNotification(Publish)ServiceAdapter
[mdsal.git] / binding / mdsal-binding-dom-adapter / src / main / java / org / opendaylight / mdsal / binding / dom / adapter / BindingDOMAdapterLoader.java
index 7049072c3d040102c974a2677623c6213711fb2c..a763ab932c7995cdec0c89edc996f49c2a69389b 100644 (file)
@@ -7,40 +7,48 @@
  */
 package org.opendaylight.mdsal.binding.dom.adapter;
 
-import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMAdapterBuilder.Factory;
-import com.google.common.base.Preconditions;
+import static com.google.common.base.Preconditions.checkArgument;
+import static java.util.Objects.requireNonNull;
+
 import com.google.common.collect.ImmutableMap;
 import java.util.Map;
-import org.opendaylight.controller.md.sal.binding.api.BindingService;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
-import org.opendaylight.controller.md.sal.binding.api.NotificationService;
-import org.opendaylight.controller.md.sal.dom.api.DOMService;
-import org.opendaylight.controller.sal.binding.api.RpcConsumerRegistry;
+import org.opendaylight.mdsal.binding.api.ActionProviderService;
+import org.opendaylight.mdsal.binding.api.ActionService;
+import org.opendaylight.mdsal.binding.api.BindingService;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.InstanceNotificationPublishService;
+import org.opendaylight.mdsal.binding.api.InstanceNotificationService;
+import org.opendaylight.mdsal.binding.api.NotificationPublishService;
+import org.opendaylight.mdsal.binding.api.NotificationService;
+import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry;
+import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMAdapterBuilder.Factory;
+import org.opendaylight.mdsal.dom.api.DOMService;
 
 public abstract class BindingDOMAdapterLoader extends AdapterLoader<BindingService, DOMService> {
-
-
-    private static final Map<Class<?>,BindingDOMAdapterBuilder.Factory<?>> FACTORIES = ImmutableMap.<Class<?>,BindingDOMAdapterBuilder.Factory<?>>builder()
-            .put(NotificationService.class,BindingDOMNotificationServiceAdapter.BUILDER_FACTORY)
-            .put(NotificationPublishService.class,BindingDOMNotificationPublishServiceAdapter.BUILDER_FACTORY)
-            .put(DataBroker.class,BindingDOMDataBrokerAdapter.BUILDER_FACTORY)
-            .put(RpcConsumerRegistry.class,BindingDOMRpcServiceAdapter.BUILDER_FACTORY)
+    private static final Map<Class<?>,BindingDOMAdapterBuilder.Factory<?>> FACTORIES =
+            ImmutableMap.<Class<?>, BindingDOMAdapterBuilder.Factory<?>>builder()
+            .put(NotificationService.class, BindingDOMNotificationServiceAdapter.BUILDER_FACTORY)
+            .put(NotificationPublishService.class, BindingDOMNotificationPublishServiceAdapter.BUILDER_FACTORY)
+            .put(DataBroker.class, BindingDOMDataBrokerAdapter.BUILDER_FACTORY)
+            .put(RpcConsumerRegistry.class, BindingDOMRpcServiceAdapter.BUILDER_FACTORY)
+            .put(ActionService.class, ActionServiceAdapter.BUILDER_FACTORY)
+            .put(ActionProviderService.class, ActionProviderServiceAdapter.BUILDER_FACTORY)
+            .put(InstanceNotificationService.class, InstanceNotificationServiceAdapter.BUILDER_FACTORY)
+            .put(InstanceNotificationPublishService.class,
+                InstanceNotificationPublishServiceAdapter.BUILDER_FACTORY)
             .build();
 
-    private final BindingToNormalizedNodeCodec codec;
+    private final AdapterContext codec;
 
-    public BindingDOMAdapterLoader(final BindingToNormalizedNodeCodec codec) {
-        super();
-        this.codec = codec;
+    public BindingDOMAdapterLoader(final AdapterContext codec) {
+        this.codec = requireNonNull(codec);
     }
 
     @Override
-    protected final AdapterBuilder<? extends BindingService, DOMService> createBuilder(final Class<? extends BindingService> key) {
+    protected final AdapterBuilder<? extends BindingService, DOMService> createBuilder(
+                final Class<? extends BindingService> key) {
         final Factory<?> factory = FACTORIES.get(key);
-        Preconditions.checkArgument(factory != null, "Unsupported service type %s", key);
-        final BindingDOMAdapterBuilder<?> builder = factory.newBuilder();
-        builder.setCodec(codec);
-        return builder;
+        checkArgument(factory != null, "Unsupported service type %s", key);
+        return factory.newBuilder(codec);
     }
 }