Speed up getModifiedChild()
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / schema / tree / InMemoryDataTreeFactory.java
index 7251e9259e698a816db1f1631e7938ef37c091af..5caf94ec53b3b6f5a21186c9c46e0d09c55cda3d 100644 (file)
@@ -7,12 +7,12 @@
  */
 package org.opendaylight.yangtools.yang.data.impl.schema.tree;
 
-import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeFactory;
+import org.opendaylight.yangtools.yang.data.api.schema.tree.TipProducingDataTree;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.TreeNodeFactory;
 import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.Version;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 
 /**
@@ -20,17 +20,15 @@ import org.opendaylight.yangtools.yang.model.api.SchemaContext;
  */
 public final class InMemoryDataTreeFactory implements DataTreeFactory {
     private static final InMemoryDataTreeFactory INSTANCE = new InMemoryDataTreeFactory();
+    private final NormalizedNode<?, ?> root = ImmutableNodes.containerNode(SchemaContext.NAME);
 
     private InMemoryDataTreeFactory() {
         // Never instantiated externally
     }
 
     @Override
-    public InMemoryDataTree create() {
-        final NodeIdentifier root = new NodeIdentifier(SchemaContext.NAME);
-        final NormalizedNode<?, ?> data = Builders.containerBuilder().withNodeIdentifier(root).build();
-
-        return new InMemoryDataTree(TreeNodeFactory.createTreeNodeRecursively(data, Version.initial()), null);
+    public TipProducingDataTree create() {
+        return new InMemoryDataTree(TreeNodeFactory.createTreeNode(root, Version.initial()), null);
     }
 
     /**
@@ -38,7 +36,7 @@ public final class InMemoryDataTreeFactory implements DataTreeFactory {
      *
      * @return Data tree factory instance.
      */
-    public static final InMemoryDataTreeFactory getInstance() {
+    public static InMemoryDataTreeFactory getInstance() {
         return INSTANCE;
     }
 }