Speed up getModifiedChild()
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / schema / tree / InMemoryDataTreeFactory.java
index 6c24d4f06c84d3c63baf0e4f1ffe9d42716e66fe..5caf94ec53b3b6f5a21186c9c46e0d09c55cda3d 100644 (file)
@@ -1,12 +1,18 @@
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others.  All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
 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;
 
 /**
@@ -14,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);
     }
 
     /**
@@ -32,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;
     }
 }