Modernize YangInstanceIdentifier
[yangtools.git] / data / yang-data-tree-ri / src / main / java / org / opendaylight / yangtools / yang / data / tree / impl / di / InMemoryDataTreeFactory.java
index 0762b021ebf9a98675af828e686142f8e345f133..b11de2f85347e7c7cb0959fb0e002da4b23c876c 100644 (file)
@@ -20,10 +20,8 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdent
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
+import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
-import org.opendaylight.yangtools.yang.data.spi.tree.TreeNodeFactory;
-import org.opendaylight.yangtools.yang.data.spi.tree.Version;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTree;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeCandidate;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
@@ -31,6 +29,8 @@ import org.opendaylight.yangtools.yang.data.tree.api.DataTreeFactory;
 import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
 import org.opendaylight.yangtools.yang.data.tree.api.DataValidationFailedException;
 import org.opendaylight.yangtools.yang.data.tree.impl.InMemoryDataTree;
+import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNode;
+import org.opendaylight.yangtools.yang.data.tree.impl.node.Version;
 import org.opendaylight.yangtools.yang.data.util.DataSchemaContextNode;
 import org.opendaylight.yangtools.yang.data.util.DataSchemaContextTree;
 import org.opendaylight.yangtools.yang.model.api.ContainerLike;
@@ -50,9 +50,9 @@ import org.slf4j.LoggerFactory;
 /**
  * A factory for creating in-memory data trees.
  */
-@MetaInfServices
 @Singleton
-@Component(immediate = true)
+@Component
+@MetaInfServices
 @RequireServiceComponentRuntime
 public final class InMemoryDataTreeFactory implements DataTreeFactory {
     private static final Logger LOG = LoggerFactory.getLogger(InMemoryDataTreeFactory.class);
@@ -67,7 +67,7 @@ public final class InMemoryDataTreeFactory implements DataTreeFactory {
 
     @Override
     public DataTree create(final DataTreeConfiguration treeConfig) {
-        return new InMemoryDataTree(TreeNodeFactory.createTreeNode(createRoot(treeConfig.getRootPath()),
+        return new InMemoryDataTree(TreeNode.of(createRoot(treeConfig.getRootPath()),
             Version.initial()), treeConfig, null);
     }
 
@@ -82,7 +82,7 @@ public final class InMemoryDataTreeFactory implements DataTreeFactory {
         final DataTree ret = createDataTree(treeConfig, initialSchemaContext, false);
 
         final DataTreeModification mod = ret.takeSnapshot().newModification();
-        mod.write(YangInstanceIdentifier.empty(), initialRoot);
+        mod.write(YangInstanceIdentifier.of(), initialRoot);
         mod.ready();
 
         ret.validate(mod);
@@ -94,13 +94,13 @@ public final class InMemoryDataTreeFactory implements DataTreeFactory {
     @Activate
     @SuppressWarnings("static-method")
     void activate() {
-        LOG.info("In-memory Data Tree activated");
+        LOG.debug("In-memory Data Tree activated");
     }
 
     @Deactivate
     @SuppressWarnings("static-method")
     void deactivate() {
-        LOG.info("In-memory Data Tree deactivated");
+        LOG.debug("In-memory Data Tree deactivated");
     }
 
     private static @NonNull DataTree createDataTree(final DataTreeConfiguration treeConfig,
@@ -108,7 +108,7 @@ public final class InMemoryDataTreeFactory implements DataTreeFactory {
         final DataSchemaNode rootSchemaNode = getRootSchemaNode(initialSchemaContext, treeConfig.getRootPath());
         final NormalizedNode rootDataNode = createRoot((DataNodeContainer)rootSchemaNode,
             treeConfig.getRootPath());
-        return new InMemoryDataTree(TreeNodeFactory.createTreeNode(rootDataNode, Version.initial()), treeConfig,
+        return new InMemoryDataTree(TreeNode.of(rootDataNode, Version.initial()), treeConfig,
             initialSchemaContext, rootSchemaNode, maskMandatory);
     }
 
@@ -123,7 +123,7 @@ public final class InMemoryDataTreeFactory implements DataTreeFactory {
         final PathArgument arg = path.getLastPathArgument();
         if (schemaNode instanceof ContainerSchemaNode) {
             checkArgument(arg instanceof NodeIdentifier, "Mismatched container %s path %s", schemaNode, path);
-            return ImmutableContainerNodeBuilder.create().withNodeIdentifier((NodeIdentifier) arg).build();
+            return Builders.containerBuilder().withNodeIdentifier((NodeIdentifier) arg).build();
         } else if (schemaNode instanceof ListSchemaNode) {
             // This can either be a top-level list or its individual entry
             if (arg instanceof NodeIdentifierWithPredicates) {
@@ -143,7 +143,7 @@ public final class InMemoryDataTreeFactory implements DataTreeFactory {
 
         final PathArgument arg = path.getLastPathArgument();
         if (arg instanceof NodeIdentifier) {
-            return ImmutableContainerNodeBuilder.create().withNodeIdentifier((NodeIdentifier) arg).build();
+            return Builders.containerBuilder().withNodeIdentifier((NodeIdentifier) arg).build();
         }
         if (arg instanceof NodeIdentifierWithPredicates) {
             return ImmutableNodes.mapEntryBuilder().withNodeIdentifier((NodeIdentifierWithPredicates) arg).build();
@@ -159,7 +159,7 @@ public final class InMemoryDataTreeFactory implements DataTreeFactory {
         final Optional<DataSchemaContextNode<?>> rootContextNode = contextTree.findChild(rootPath);
         checkArgument(rootContextNode.isPresent(), "Failed to find root %s in schema context", rootPath);
 
-        final DataSchemaNode rootSchemaNode = rootContextNode.get().getDataSchemaNode();
+        final DataSchemaNode rootSchemaNode = rootContextNode.orElseThrow().getDataSchemaNode();
         checkArgument(rootSchemaNode instanceof DataNodeContainer, "Root %s resolves to non-container type %s",
             rootPath, rootSchemaNode);
         return rootSchemaNode;