MDSAL-API Migration
[genius.git] / mdsalutil / mdsalutil-api / src / main / java / org / opendaylight / genius / mdsalutil / cache / DataObjectCache.java
index 5608309b03160ef813ea01c5d4d90ecf90836fd3..d396f8e29e45234a4843e54ca5b2185b57e5b4d4 100644 (file)
@@ -9,13 +9,13 @@ package org.opendaylight.genius.mdsalutil.cache;
 
 import static java.util.Objects.requireNonNull;
 
-import com.google.common.base.Optional;
 import com.google.common.cache.CacheBuilder;
 import com.google.common.cache.CacheLoader;
 import com.google.common.cache.LoadingCache;
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.Collection;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.function.BiFunction;
@@ -24,15 +24,15 @@ import java.util.stream.Collectors;
 import java.util.stream.Stream;
 import javax.annotation.PreDestroy;
 import org.eclipse.jdt.annotation.NonNull;
-import org.opendaylight.controller.md.sal.binding.api.ClusteredDataTreeChangeListener;
-import org.opendaylight.controller.md.sal.binding.api.DataBroker;
-import org.opendaylight.controller.md.sal.binding.api.DataObjectModification;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeIdentifier;
-import org.opendaylight.controller.md.sal.binding.api.DataTreeModification;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-import org.opendaylight.controller.md.sal.common.api.data.ReadFailedException;
 import org.opendaylight.genius.datastoreutils.SingleTransactionDataBroker;
 import org.opendaylight.infrautils.caches.CacheProvider;
+import org.opendaylight.mdsal.binding.api.ClusteredDataTreeChangeListener;
+import org.opendaylight.mdsal.binding.api.DataBroker;
+import org.opendaylight.mdsal.binding.api.DataObjectModification;
+import org.opendaylight.mdsal.binding.api.DataTreeIdentifier;
+import org.opendaylight.mdsal.binding.api.DataTreeModification;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
+import org.opendaylight.mdsal.common.api.ReadFailedException;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
@@ -75,7 +75,7 @@ public class DataObjectCache<K, V extends DataObject> implements AutoCloseable {
         requireNonNull(cacheProvider, "cacheProvider");
         cache = CacheBuilder.newBuilder().build(new CacheLoader<K, Optional<V>>() {
             @Override
-            public Optional<V> load(K key) throws ReadFailedException {
+            public Optional<V> load(K key) throws ReadFailedException, ExecutionException, InterruptedException  {
                 return broker.syncReadOptional(datastoreType, instanceIdFunction.apply(key));
             }
         });
@@ -88,7 +88,7 @@ public class DataObjectCache<K, V extends DataObject> implements AutoCloseable {
                     case WRITE:
                     case SUBTREE_MODIFIED:
                         V dataAfter = rootNode.getDataAfter();
-                        cache.put(keyFunction.apply(path, dataAfter), Optional.fromNullable(dataAfter));
+                        cache.put(keyFunction.apply(path, dataAfter), Optional.ofNullable(dataAfter));
                         added(path, dataAfter);
                         break;
                     case DELETE:
@@ -102,7 +102,7 @@ public class DataObjectCache<K, V extends DataObject> implements AutoCloseable {
             }
         };
 
-        listenerRegistration = dataBroker.registerDataTreeChangeListener(new DataTreeIdentifier<>(
+        listenerRegistration = dataBroker.registerDataTreeChangeListener(DataTreeIdentifier.create(
                 datastoreType, listenerRegistrationPath), dataObjectListener);
     }