Reduce ObjectRegistration use
[mdsal.git] / binding / mdsal-binding-dom-adapter / src / main / java / org / opendaylight / mdsal / binding / dom / adapter / osgi / OSGiActionProviderService.java
index 1226faabcf9a0c634aeace8663b3c56b69638da9..9ca49caabde26d0b254d63d6cec1a4dce5d7f715 100644 (file)
@@ -7,14 +7,12 @@
  */
 package org.opendaylight.mdsal.binding.dom.adapter.osgi;
 
-import com.google.common.annotations.Beta;
 import java.util.Map;
 import java.util.Set;
-import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.mdsal.binding.api.ActionProviderService;
-import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
+import org.opendaylight.mdsal.binding.api.ActionSpec;
 import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
-import org.opendaylight.yangtools.concepts.ObjectRegistration;
+import org.opendaylight.yangtools.concepts.Registration;
 import org.opendaylight.yangtools.yang.binding.Action;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
@@ -22,32 +20,26 @@ import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
 import org.osgi.service.component.annotations.Deactivate;
 
-@Beta
 @Component(factory = OSGiActionProviderService.FACTORY_NAME)
 public final class OSGiActionProviderService extends AbstractAdaptedService<ActionProviderService>
         implements ActionProviderService {
     // OSGi DS Component Factory name
     static final String FACTORY_NAME = "org.opendaylight.mdsal.binding.dom.adapter.osgi.OSGiActionProviderService";
 
-    public OSGiActionProviderService() {
-        super(ActionProviderService.class);
-    }
-
-    @Override
-    public <O extends @NonNull DataObject, P extends @NonNull InstanceIdentifier<O>,
-            T extends @NonNull Action<P, ?, ?>, S extends T> @NonNull ObjectRegistration<S> registerImplementation(
-                    final Class<T> actionInterface, final S implementation, final LogicalDatastoreType datastore,
-                    final Set<@NonNull DataTreeIdentifier<O>> validNodes) {
-        return delegate().registerImplementation(actionInterface, implementation, datastore, validNodes);
-    }
-
     @Activate
-    void activate(final Map<String, ?> properties) {
-        start(properties);
+    public OSGiActionProviderService(final Map<String, ?> properties) {
+        super(ActionProviderService.class, properties);
     }
 
     @Deactivate
-    void deactivate() {
-        stop();
+    void deactivate(final int reason) {
+        stop(reason);
+    }
+
+    @Override
+    public <P extends DataObject, A extends Action<? extends InstanceIdentifier<P>, ?, ?>>
+            Registration registerImplementation(final ActionSpec<A, P> spec, final A implementation,
+                final LogicalDatastoreType datastore, final Set<? extends InstanceIdentifier<P>> validNodes) {
+        return delegate.registerImplementation(spec, implementation, datastore, validNodes);
     }
 }