Share common EntityOwnershipChange
[mdsal.git] / singleton-service / mdsal-singleton-dom-impl / src / main / java / org / opendaylight / mdsal / singleton / dom / impl / PlaceholderGroup.java
index be2faad72e3af733b29def9d0b96d9c1c6dbab8f..9d8db85b81c04299d2b8cbd1e33e6f2949d61616 100644 (file)
@@ -16,8 +16,8 @@ import com.google.common.util.concurrent.ListenableFuture;
 import java.util.ArrayList;
 import java.util.List;
 import org.opendaylight.mdsal.eos.common.api.CandidateAlreadyRegisteredException;
+import org.opendaylight.mdsal.eos.common.api.EntityOwnershipChange;
 import org.opendaylight.mdsal.eos.common.api.GenericEntity;
-import org.opendaylight.mdsal.eos.common.api.GenericEntityOwnershipChange;
 import org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceRegistration;
 import org.opendaylight.yangtools.concepts.HierarchicalIdentifier;
 import org.slf4j.Logger;
@@ -27,17 +27,17 @@ import org.slf4j.LoggerFactory;
  * Intermediate place-holder to catch user requests while asynchronous shutdown of previous incarnation of
  * a {@link ClusterSingletonServiceGroup} finishes.
  */
-final class PlaceholderGroup<P extends HierarchicalIdentifier<P>, E extends GenericEntity<P>,
-        C extends GenericEntityOwnershipChange<P, E>> extends ClusterSingletonServiceGroup<P, E, C> {
+final class PlaceholderGroup<P extends HierarchicalIdentifier<P>, E extends GenericEntity<P>>
+        extends ClusterSingletonServiceGroup<P, E> {
     private static final Logger LOG = LoggerFactory.getLogger(PlaceholderGroup.class);
 
     private final List<ClusterSingletonServiceRegistration> services = new ArrayList<>(0);
-    private final ClusterSingletonServiceGroup<P, E, C> previous;
+    private final ClusterSingletonServiceGroup<P, E> previous;
     private final ListenableFuture<?> closeFuture;
 
-    private volatile ClusterSingletonServiceGroup<P, E, C> successor;
+    private volatile ClusterSingletonServiceGroup<P, E> successor;
 
-    PlaceholderGroup(final ClusterSingletonServiceGroup<P, E, C> previous, final ListenableFuture<?> closeFuture) {
+    PlaceholderGroup(final ClusterSingletonServiceGroup<P, E> previous, final ListenableFuture<?> closeFuture) {
         this.previous = requireNonNull(previous);
         this.closeFuture = requireNonNull(closeFuture);
     }
@@ -68,15 +68,15 @@ final class PlaceholderGroup<P extends HierarchicalIdentifier<P>, E extends Gene
     }
 
     @Override
-    void ownershipChanged(final C ownershipChange) {
+    void ownershipChanged(final EntityOwnershipChange<E> ownershipChange) {
         // This really should not happen, but let's be defensive
-        final ClusterSingletonServiceGroup<P, E, C> local = successor;
+        final var local = successor;
         (local == null ? previous : local).ownershipChanged(ownershipChange);
     }
 
     @Override
     ListenableFuture<?> closeClusterSingletonGroup() {
-        final ClusterSingletonServiceGroup<P, E, C> local = successor;
+        final var local = successor;
         return local == null ? closeFuture : local.closeClusterSingletonGroup();
     }
 
@@ -87,7 +87,7 @@ final class PlaceholderGroup<P extends HierarchicalIdentifier<P>, E extends Gene
         return services;
     }
 
-    void setSuccessor(final ClusterSingletonServiceGroup<P, E, C> successor) {
+    void setSuccessor(final ClusterSingletonServiceGroup<P, E> successor) {
         verifyNoSuccessor();
         this.successor = verifyNotNull(successor);
         LOG.debug("{}: successor set to {}", this, successor);