Improve AdaptingTracker type safety 26/97226/1
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 16 Aug 2021 16:55:18 +0000 (18:55 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Mon, 16 Aug 2021 16:55:18 +0000 (18:55 +0200)
Component{Factory,Instance} are generic with OSGi R7, let's take
advantage of that to improve type safety.

Change-Id: Ibe5c7937ad37117bab3492c9a2dfd5b67b972e4e
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding/mdsal-binding-dom-adapter/src/main/java/org/opendaylight/mdsal/binding/dom/adapter/osgi/AdaptingTracker.java

index 2413ca9e832ee0d4f9cfa4e53b3ee33b64275304..60401dc9d4a529069fc68fcddabaec101a851f00 100644 (file)
@@ -32,9 +32,9 @@ final class AdaptingTracker<D extends DOMService, B extends BindingService>
         extends ServiceTracker<D, AdaptingTracker.ComponentHolder<B>> {
     static final class ComponentHolder<B extends BindingService> {
         final B binding;
-        ComponentInstance component;
+        ComponentInstance<? extends B> component;
 
-        ComponentHolder(final B binding, final ComponentInstance component) {
+        ComponentHolder(final B binding, final ComponentInstance<? extends B> component) {
             this.binding = requireNonNull(binding);
             this.component = requireNonNull(component);
         }
@@ -44,10 +44,10 @@ final class AdaptingTracker<D extends DOMService, B extends BindingService>
 
     private final Function<D, B> bindingFactory;
     private final @NonNull Class<B> bindingClass;
-    private final ComponentFactory componentFactory;
+    private final ComponentFactory<? extends B> componentFactory;
 
     AdaptingTracker(final BundleContext ctx, final Class<D> domClass, final Class<B> bindingClass,
-            final Function<D, B> bindingFactory, final ComponentFactory componentFactory) {
+            final Function<D, B> bindingFactory, final ComponentFactory<? extends B> componentFactory) {
         super(ctx, domClass, null);
         this.bindingClass = requireNonNull(bindingClass);
         this.bindingFactory = requireNonNull(bindingFactory);