BUG-2138: Add shard DTO classes to spi
[mdsal.git] / dom / mdsal-dom-inmemory-datastore / src / main / java / org / opendaylight / mdsal / dom / store / inmemory / InMemoryDOMDataTreeShard.java
index 127821fc099a9bede2d13006aa958173b0e66499..6449653ad7207b9da94067befae64a404c47f7f2 100644 (file)
@@ -15,7 +15,6 @@ import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.Maps;
 import com.google.common.util.concurrent.ListeningExecutorService;
 import com.google.common.util.concurrent.MoreExecutors;
-import java.util.ArrayList;
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -29,6 +28,11 @@ import org.opendaylight.mdsal.dom.api.DOMDataTreeChangeListener;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeIdentifier;
 import org.opendaylight.mdsal.dom.api.DOMDataTreeShard;
 import org.opendaylight.mdsal.dom.spi.DOMDataTreePrefixTable;
+import org.opendaylight.mdsal.dom.spi.shard.ChildShardContext;
+import org.opendaylight.mdsal.dom.spi.shard.ForeignShardModificationContext;
+import org.opendaylight.mdsal.dom.spi.shard.ReadableWriteableDOMDataTreeShard;
+import org.opendaylight.mdsal.dom.spi.shard.SubshardProducerSpecification;
+import org.opendaylight.mdsal.dom.spi.shard.WriteableDOMDataTreeShard;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.util.concurrent.CountingRejectedExecutionHandler;
 import org.opendaylight.yangtools.util.concurrent.FastThreadPoolExecutor;
@@ -45,26 +49,6 @@ import org.slf4j.LoggerFactory;
 
 @Beta
 public class InMemoryDOMDataTreeShard implements ReadableWriteableDOMDataTreeShard, SchemaContextListener {
-    private static final class SubshardProducerSpecification {
-        private final Collection<DOMDataTreeIdentifier> prefixes = new ArrayList<>(1);
-        private final ChildShardContext shard;
-
-        SubshardProducerSpecification(final ChildShardContext subshard) {
-            this.shard = Preconditions.checkNotNull(subshard);
-        }
-
-        void addPrefix(final DOMDataTreeIdentifier prefix) {
-            prefixes.add(prefix);
-        }
-
-        DOMDataTreeShardProducer createProducer() {
-            return shard.getShard().createProducer(prefixes);
-        }
-
-        DOMDataTreeIdentifier getPrefix() {
-            return shard.getPrefix();
-        }
-    }
 
     private static final Logger LOG = LoggerFactory.getLogger(InMemoryDOMDataTreeShard.class);
     private static final int DEFAULT_SUBMIT_QUEUE_SIZE = 1000;
@@ -137,7 +121,7 @@ public class InMemoryDOMDataTreeShard implements ReadableWriteableDOMDataTreeSha
     }
 
     @VisibleForTesting
-    ShardDataModificationFactory createModificationFactory(final Collection<DOMDataTreeIdentifier> prefixes) {
+    InMemoryShardDataModificationFactory createModificationFactory(final Collection<DOMDataTreeIdentifier> prefixes) {
         final Map<DOMDataTreeIdentifier, SubshardProducerSpecification> affected = new HashMap<>();
         for (final DOMDataTreeIdentifier producerPrefix : prefixes) {
             for (final ChildShardContext child : childShards.values()) {
@@ -160,7 +144,8 @@ public class InMemoryDOMDataTreeShard implements ReadableWriteableDOMDataTreeSha
             }
         }
 
-        final ShardDataModificationFactoryBuilder builder = new ShardDataModificationFactoryBuilder(prefix);
+        final InmemoryShardDataModificationFactoryBuilder builder =
+                new InmemoryShardDataModificationFactoryBuilder(prefix);
         for (final SubshardProducerSpecification spec : affected.values()) {
             final ForeignShardModificationContext foreignContext =
                     new ForeignShardModificationContext(spec.getPrefix(), spec.createProducer());
@@ -175,11 +160,11 @@ public class InMemoryDOMDataTreeShard implements ReadableWriteableDOMDataTreeSha
     public InMemoryDOMDataTreeShardProducer createProducer(final Collection<DOMDataTreeIdentifier> prefixes) {
         for (final DOMDataTreeIdentifier prodPrefix : prefixes) {
             Preconditions.checkArgument(prefix.contains(prodPrefix), "Prefix %s is not contained under shart root",
-                prodPrefix, prefix);
+                    prodPrefix, prefix);
         }
 
         final InMemoryDOMDataTreeShardProducer ret = new InMemoryDOMDataTreeShardProducer(this, prefixes,
-            createModificationFactory(prefixes));
+                createModificationFactory(prefixes));
         producers.add(ret);
         return ret;
     }
@@ -227,9 +212,9 @@ public class InMemoryDOMDataTreeShard implements ReadableWriteableDOMDataTreeSha
     }
 
     private static ChildShardContext createContextFor(final DOMDataTreeIdentifier prefix,
-            final DOMDataTreeShard child) {
+                                                      final DOMDataTreeShard child) {
         Preconditions.checkArgument(child instanceof WriteableDOMDataTreeShard,
-            "Child %s is not a writable shared", child);
+                "Child %s is not a writable shared", child);
         return new ChildShardContext(prefix, (WriteableDOMDataTreeShard) child);
     }
 
@@ -258,7 +243,7 @@ public class InMemoryDOMDataTreeShard implements ReadableWriteableDOMDataTreeSha
         Preconditions.checkArgument(snapshot instanceof CursorAwareDataTreeSnapshot);
 
         return new InmemoryDOMDataTreeShardWriteTransaction(producer,
-            producer.getModificationFactory().createModification((CursorAwareDataTreeSnapshot)snapshot), dataTree,
-            shardChangePublisher, executor);
+                producer.getModificationFactory().createModification((CursorAwareDataTreeSnapshot) snapshot), dataTree,
+                shardChangePublisher, executor);
     }
 }