Migrate from YangInstanceIdentifier.EMPTY
[controller.git] / opendaylight / md-sal / sal-distributed-datastore / src / main / java / org / opendaylight / controller / cluster / datastore / utils / NormalizedNodeAggregator.java
index efb14971bb309ad30eac877160461b12e848d99e..8d5994ea399de7f1e95f0724bc57dd185f9e01a4 100644 (file)
@@ -7,42 +7,42 @@
  */
 package org.opendaylight.controller.cluster.datastore.utils;
 
-import com.google.common.base.Optional;
 import java.util.List;
+import java.util.Optional;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTree;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate;
+import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeConfiguration;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException;
 import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 
-public class NormalizedNodeAggregator {
+public final class NormalizedNodeAggregator {
     private final YangInstanceIdentifier rootIdentifier;
     private final List<Optional<NormalizedNode<?, ?>>> nodes;
     private final DataTree dataTree;
 
-    private NormalizedNodeAggregator(final YangInstanceIdentifier rootIdentifier, final List<Optional<NormalizedNode<?, ?>>> nodes,
-                             final SchemaContext schemaContext) {
+    private NormalizedNodeAggregator(final YangInstanceIdentifier rootIdentifier,
+            final List<Optional<NormalizedNode<?, ?>>> nodes, final SchemaContext schemaContext,
+            final LogicalDatastoreType logicalDatastoreType) {
         this.rootIdentifier = rootIdentifier;
         this.nodes = nodes;
-        this.dataTree = InMemoryDataTreeFactory.getInstance().create();
+        this.dataTree = new InMemoryDataTreeFactory().create(
+            logicalDatastoreType == LogicalDatastoreType.CONFIGURATION ? DataTreeConfiguration.DEFAULT_CONFIGURATION
+                    : DataTreeConfiguration.DEFAULT_OPERATIONAL);
         this.dataTree.setSchemaContext(schemaContext);
     }
 
     /**
-     * Combine data from all the nodes in the list into a tree with root as rootIdentifier
-     *
-     * @param nodes
-     * @param schemaContext
-     * @return
-     * @throws DataValidationFailedException
+     * Combine data from all the nodes in the list into a tree with root as rootIdentifier.
      */
     public static Optional<NormalizedNode<?,?>> aggregate(final YangInstanceIdentifier rootIdentifier,
-                                                          final List<Optional<NormalizedNode<?, ?>>> nodes,
-                                                          final SchemaContext schemaContext) throws DataValidationFailedException {
-        return new NormalizedNodeAggregator(rootIdentifier, nodes, schemaContext).aggregate();
+            final List<Optional<NormalizedNode<?, ?>>> nodes, final SchemaContext schemaContext,
+            final LogicalDatastoreType logicalDatastoreType) throws DataValidationFailedException {
+        return new NormalizedNodeAggregator(rootIdentifier, nodes, schemaContext, logicalDatastoreType).aggregate();
     }
 
     private Optional<NormalizedNode<?,?>> aggregate() throws DataValidationFailedException {