X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fmd-sal%2Fsal-common-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fcommon%2Fimpl%2Frouting%2FAbstractDataReadRouter.java;h=ee9af6cb80d91ccc4083a61e3e6a01604769a757;hb=48814d6a264b8f13e5db1422336d9ef25cb05fa9;hp=200948cc0c78c2bff6959b7fbfb9d03a2aa1ea68;hpb=9303b14b9dba1a940f0d0a6fe1604bfcd0f9e294;p=controller.git diff --git a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/routing/AbstractDataReadRouter.java b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/routing/AbstractDataReadRouter.java index 200948cc0c..ee9af6cb80 100644 --- a/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/routing/AbstractDataReadRouter.java +++ b/opendaylight/md-sal/sal-common-impl/src/main/java/org/opendaylight/controller/md/sal/common/impl/routing/AbstractDataReadRouter.java @@ -19,18 +19,19 @@ import com.google.common.base.Predicate; import com.google.common.collect.FluentIterable; import com.google.common.collect.HashMultimap; import com.google.common.collect.Multimap; +import com.google.common.collect.Multimaps; /** * Base abstract implementation of DataReadRouter, which performs * a read operation on multiple data readers and then merges result. - * + * * @param
* @param , D> implements DataReader {
- Multimap > configReaders = HashMultimap.create();
- Multimap > operationalReaders = HashMultimap.create();
+ Multimap > configReaders = Multimaps.synchronizedSetMultimap(HashMultimap. >create());
+ Multimap > operationalReaders = Multimaps.synchronizedSetMultimap(HashMultimap. >create());
@Override
public D readConfigurationData(P path) {
@@ -49,7 +50,7 @@ public abstract class AbstractDataReadRouter , D> implements Da
/**
* Merges data readed by reader instances from specified path
- *
+ *
* @param path Path on which read was performed
* @param data Data which was returned by read operation.
* @return Merged result.
@@ -58,11 +59,11 @@ public abstract class AbstractDataReadRouter , D> implements Da
/**
* Returns a function which performs configuration read for supplied path
- *
+ *
* @param path
* @return function which performs configuration read for supplied path
*/
-
+
private Function , D> implements Da
/**
* Returns a function which performs operational read for supplied path
- *
+ *
* @param path
* @return function which performs operational read for supplied path
*/
@@ -91,10 +92,10 @@ public abstract class AbstractDataReadRouter , D> implements Da
/**
* Register's a reader for operational data.
- *
+ *
* @param path Path which is served by this reader
* @param reader Reader instance which is responsible for reading particular subpath.
- * @return
+ * @return
*/
public Registration reader) {
OperationalDataReaderRegistration ret = new OperationalDataReaderRegistration<>(path, reader);
@@ -141,15 +142,15 @@ public abstract class AbstractDataReadRouter , D> implements Da
}
private Predicate super Entry >> affects(final P path) {
-
+
return new Predicate > input) {
final P key = input.getKey();
return key.contains(path) || ((P) path).contains(key);
}
-
+
};
}