X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatabroker%2FAbstractDOMBroker.java;h=9905893f9f550b05279ccb4bb2c4e2412ff9843b;hp=e3b1c3039bfd92d926cd8129e92ede1d95796dea;hb=a6af137c30470b86d4bc624d4c48cb686495a182;hpb=f41c5e6e6f6e10b36b1e4b1992877e38e718c8fb diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBroker.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBroker.java index e3b1c3039b..9905893f9f 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBroker.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/databroker/AbstractDOMBroker.java @@ -10,8 +10,9 @@ package org.opendaylight.controller.cluster.databroker; import static com.google.common.base.Preconditions.checkState; -import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableMap.Builder; +import com.google.common.collect.ClassToInstanceMap; +import com.google.common.collect.ImmutableClassToInstanceMap; +import com.google.common.collect.ImmutableClassToInstanceMap.Builder; import java.util.EnumMap; import java.util.Map; import java.util.concurrent.atomic.AtomicLong; @@ -39,13 +40,14 @@ public abstract class AbstractDOMBroker extends AbstractDOMTransactionFactory, DOMDataBrokerExtension> extensions; + private final ClassToInstanceMap extensions; + private volatile AutoCloseable closeable; protected AbstractDOMBroker(final Map datastores) { super(datastores); - Builder, DOMDataBrokerExtension> extBuilder = ImmutableMap.builder(); + Builder extBuilder = ImmutableClassToInstanceMap.builder(); if (isSupported(datastores, DOMStoreTreeChangePublisher.class)) { extBuilder.put(DOMDataTreeChangeService.class, new DOMDataTreeChangeService() { @Override @@ -62,7 +64,7 @@ public abstract class AbstractDOMBroker extends AbstractDOMTransactionFactory DOMDataTreeCommitCohortRegistration registerCommitCohort( - DOMDataTreeIdentifier path, T cohort) { + final DOMDataTreeIdentifier path, final T cohort) { DOMStore store = getDOMStore(path.getDatastoreType()); return ((DOMDataTreeCommitCohortRegistry) store).registerCommitCohort(path, cohort); } @@ -72,15 +74,9 @@ public abstract class AbstractDOMBroker extends AbstractDOMTransactionFactory datastores, - Class expDOMStoreInterface) { - for (DOMStore ds : datastores.values()) { - if (!expDOMStoreInterface.isAssignableFrom(ds.getClass())) { - return false; - } - } - - return true; + private static boolean isSupported(final Map datastores, + final Class expDOMStoreInterface) { + return datastores.values().stream().allMatch(expDOMStoreInterface::isInstance); } public void setCloseable(final AutoCloseable closeable) { @@ -107,7 +103,7 @@ public abstract class AbstractDOMBroker extends AbstractDOMTransactionFactory, DOMDataBrokerExtension> getSupportedExtensions() { + public ClassToInstanceMap getExtensions() { return extensions; }