import org.opendaylight.yangtools.yang.data.tree.api.TreeType;
import org.opendaylight.yangtools.yang.data.tree.impl.node.MutableTreeNode;
import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNode;
-import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNodeFactory;
import org.opendaylight.yangtools.yang.data.tree.impl.node.Version;
import org.opendaylight.yangtools.yang.model.api.DocumentedNode.WithStatus;
@Override
protected TreeNode applyWrite(final ModifiedNode modification, final NormalizedNode newValue,
final Optional<? extends TreeNode> currentMeta, final Version version) {
- final TreeNode newValueMeta = TreeNodeFactory.createTreeNode(newValue, version);
+ final TreeNode newValueMeta = TreeNode.of(newValue, version);
if (modification.getChildren().isEmpty()) {
return newValueMeta;
// We are good to go except one detail: this is a single logical write, but
// we have a result TreeNode which has been forced to materialized, e.g. it
// is larger than it needs to be. Create a new TreeNode to host the data.
- return TreeNodeFactory.createTreeNode(result.getData(), version);
+ return TreeNode.of(result.getData(), version);
}
/**
}
static final TreeNode defaultTreeNode(final NormalizedNode emptyNode) {
- return TreeNodeFactory.createTreeNode(emptyNode, FAKE_VERSION);
+ return TreeNode.of(emptyNode, FAKE_VERSION);
}
@Override
import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer;
import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNode;
-import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNodeFactory;
import org.opendaylight.yangtools.yang.data.tree.impl.node.Version;
/**
}
private static Optional<TreeNode> fakeMeta(final NormalizedNode emptyNode, final Version version) {
- return Optional.of(TreeNodeFactory.createTreeNode(emptyNode, version));
+ return Optional.of(TreeNode.of(emptyNode, version));
}
private static boolean isEmpty(final TreeNode treeNode) {
import org.opendaylight.yangtools.yang.data.tree.api.IncorrectDataStructureException;
import org.opendaylight.yangtools.yang.data.tree.impl.node.MutableTreeNode;
import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNode;
-import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNodeFactory;
import org.opendaylight.yangtools.yang.data.tree.impl.node.Version;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
@Override
protected TreeNode applyWrite(final ModifiedNode modification, final NormalizedNode newValue,
final Optional<? extends TreeNode> currentMeta, final Version version) {
- final TreeNode newValueMeta = TreeNodeFactory.createTreeNode(newValue, version);
+ final TreeNode newValueMeta = TreeNode.of(newValue, version);
if (modification.getChildren().isEmpty()) {
return newValueMeta;
}
import org.opendaylight.yangtools.yang.data.api.schema.tree.StoreTreeNode;
import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNode;
-import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNodeFactory;
import org.opendaylight.yangtools.yang.data.tree.impl.node.Version;
/**
// Lazy instantiation, as we do not want do this for all writes. We are using the modification's version
// here, as that version is what the SchemaAwareApplyOperation will see when dealing with the resulting
// modifications.
- writtenOriginal = TreeNodeFactory.createTreeNode(value, modVersion);
+ writtenOriginal = TreeNode.of(value, modVersion);
}
return writtenOriginal.findChildByArg(child);
import org.opendaylight.yangtools.yang.data.tree.api.IncorrectDataStructureException;
import org.opendaylight.yangtools.yang.data.tree.api.ModificationType;
import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNode;
-import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNodeFactory;
import org.opendaylight.yangtools.yang.data.tree.impl.node.Version;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
@Override
protected TreeNode applyWrite(final ModifiedNode modification, final NormalizedNode newValue,
final Optional<? extends TreeNode> currentMeta, final Version version) {
- return TreeNodeFactory.createTreeNode(newValue, version);
+ return TreeNode.of(newValue, version);
}
@Override
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.TreeNodeFactory;
+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;
@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);
}
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);
}
static TreeNode getChildFromData(final DistinctNodeContainer<PathArgument, NormalizedNode> data,
final PathArgument childId, final Version version) {
final NormalizedNode child = data.childByArg(childId);
- return child != null ? TreeNodeFactory.createTreeNode(child, version) : null;
+ return child != null ? TreeNode.of(child, version) : null;
}
}
import org.eclipse.jdt.annotation.NonNullByDefault;
import org.opendaylight.yangtools.concepts.Identifiable;
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.api.schema.OrderedNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.tree.StoreTreeNode;
/**
this.version = requireNonNull(version);
}
+ /**
+ * Create a new AbstractTreeNode from a data node.
+ *
+ * @param data data node
+ * @param version data node version
+ * @return new AbstractTreeNode instance, covering the data tree provided
+ */
+ public static final TreeNode of(final NormalizedNode data, final Version version) {
+ if (data instanceof DistinctNodeContainer) {
+ @SuppressWarnings("unchecked")
+ final DistinctNodeContainer<?, NormalizedNode> container = (DistinctNodeContainer<?, NormalizedNode>) data;
+ return new SimpleContainerNode(container, version);
+ } else if (data instanceof OrderedNodeContainer) {
+ return new SimpleContainerNode(data, version);
+ } else {
+ return new ValueNode(data, version);
+ }
+ }
+
@Override
public final PathArgument getIdentifier() {
return data.getIdentifier();
+++ /dev/null
-/*
- * 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.tree.impl.node;
-
-import org.opendaylight.yangtools.yang.data.api.schema.DistinctNodeContainer;
-import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.api.schema.OrderedNodeContainer;
-
-/**
- * Public entrypoint for other packages. Allows instantiating a tree node
- * with specified version.
- */
-public final class TreeNodeFactory {
- private TreeNodeFactory() {
- // Hidden on purpose
- }
-
- /**
- * Create a new AbstractTreeNode from a data node.
- *
- * @param data data node
- * @param version data node version
- * @return new AbstractTreeNode instance, covering the data tree provided
- */
- public static TreeNode createTreeNode(final NormalizedNode data, final Version version) {
- if (data instanceof DistinctNodeContainer) {
- @SuppressWarnings("unchecked")
- final DistinctNodeContainer<?, NormalizedNode> container = (DistinctNodeContainer<?, NormalizedNode>) data;
- return new SimpleContainerNode(container, version);
- } else if (data instanceof OrderedNodeContainer) {
- return new SimpleContainerNode(data, version);
- } else {
- return new ValueNode(data, version);
- }
- }
-}
import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.data.tree.api.DataTreeModification;
import org.opendaylight.yangtools.yang.data.tree.impl.di.InMemoryDataTreeFactory;
-import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNodeFactory;
+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.model.api.SchemaContext;
public void basicReadWrites() {
final DataTreeModification modificationTree = new InMemoryDataTreeModification(
new InMemoryDataTreeSnapshot(SCHEMA_CONTEXT,
- TreeNodeFactory.createTreeNode(createDocumentOne(), Version.initial()), rootOper), rootOper);
+ TreeNode.of(createDocumentOne(), Version.initial()), rootOper), rootOper);
final Optional<NormalizedNode> originalBarNode = modificationTree.readNode(OUTER_LIST_2_PATH);
assertTrue(originalBarNode.isPresent());
assertSame(BAR_NODE, originalBarNode.get());
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
import org.opendaylight.yangtools.yang.data.tree.api.DataTreeConfiguration;
import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNode;
-import org.opendaylight.yangtools.yang.data.tree.impl.node.TreeNodeFactory;
import org.opendaylight.yangtools.yang.data.tree.impl.node.Version;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.slf4j.Logger;
@Test
public void findNodeTestNodeFound() {
final InMemoryDataTreeSnapshot inMemoryDataTreeSnapshot = new InMemoryDataTreeSnapshot(SCHEMA_CONTEXT,
- TreeNodeFactory.createTreeNode(createDocumentOne(), Version.initial()), rootOper);
+ TreeNode.of(createDocumentOne(), Version.initial()), rootOper);
final TreeNode rootNode = inMemoryDataTreeSnapshot.getRootNode();
final Optional<? extends TreeNode> node = StoreTreeNodes.findNode(rootNode, OUTER_LIST_1_PATH);
assertPresentAndType(node, TreeNode.class);
@Test
public void findNodeTestNodeNotFound() {
final InMemoryDataTreeSnapshot inMemoryDataTreeSnapshot = new InMemoryDataTreeSnapshot(SCHEMA_CONTEXT,
- TreeNodeFactory.createTreeNode(createDocumentOne(), Version.initial()), rootOper);
+ TreeNode.of(createDocumentOne(), Version.initial()), rootOper);
final TreeNode rootNode = inMemoryDataTreeSnapshot.getRootNode();
final YangInstanceIdentifier outerList1InvalidPath = YangInstanceIdentifier.builder(TestModel.OUTER_LIST_PATH)
.nodeWithKey(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 3) //
@Test
public void findNodeCheckedTestNodeFound() {
final InMemoryDataTreeSnapshot inMemoryDataTreeSnapshot = new InMemoryDataTreeSnapshot(SCHEMA_CONTEXT,
- TreeNodeFactory.createTreeNode(createDocumentOne(), Version.initial()), rootOper);
+ TreeNode.of(createDocumentOne(), Version.initial()), rootOper);
final TreeNode rootNode = inMemoryDataTreeSnapshot.getRootNode();
TreeNode foundNode = null;
try {
@Test
public void findNodeCheckedTestNodeNotFound() {
final InMemoryDataTreeSnapshot inMemoryDataTreeSnapshot = new InMemoryDataTreeSnapshot(SCHEMA_CONTEXT,
- TreeNodeFactory.createTreeNode(createDocumentOne(), Version.initial()), rootOper);
+ TreeNode.of(createDocumentOne(), Version.initial()), rootOper);
final TreeNode rootNode = inMemoryDataTreeSnapshot.getRootNode();
final YangInstanceIdentifier outerList1InvalidPath = YangInstanceIdentifier.builder(TestModel.OUTER_LIST_PATH)
.nodeWithKey(TestModel.OUTER_LIST_QNAME, TestModel.ID_QNAME, 3) //
@Test
public void findClosestOrFirstMatchTestNodeExists() {
final InMemoryDataTreeSnapshot inMemoryDataTreeSnapshot = new InMemoryDataTreeSnapshot(SCHEMA_CONTEXT,
- TreeNodeFactory.createTreeNode(createDocumentOne(), Version.initial()), rootOper);
+ TreeNode.of(createDocumentOne(), Version.initial()), rootOper);
final TreeNode rootNode = inMemoryDataTreeSnapshot.getRootNode();
final Optional<? extends TreeNode> expectedNode = StoreTreeNodes.findNode(rootNode, TWO_TWO_PATH);
assertPresentAndType(expectedNode, TreeNode.class);
@Test
public void findClosestOrFirstMatchTestNodeDoesNotExist() {
final InMemoryDataTreeSnapshot inMemoryDataTreeSnapshot = new InMemoryDataTreeSnapshot(SCHEMA_CONTEXT,
- TreeNodeFactory.createTreeNode(createDocumentOne(), Version.initial()), rootOper);
+ TreeNode.of(createDocumentOne(), Version.initial()), rootOper);
final TreeNode rootNode = inMemoryDataTreeSnapshot.getRootNode();
final YangInstanceIdentifier outerListInnerListPath = YangInstanceIdentifier.builder(OUTER_LIST_2_PATH)
.node(TestModel.INNER_LIST_QNAME)
public void testNormalizedNodeContainer() {
final ContainerNode data = Mockito.mock(ContainerNode.class);
final Version version = Version.initial();
- final TreeNode node = TreeNodeFactory.createTreeNode(data, version);
+ final TreeNode node = TreeNode.of(data, version);
assertTrue(node instanceof SimpleContainerNode);
checkTreeNode(node, data, version);
public void testOrderedNodeContainer() {
final UserMapNode data = Mockito.mock(UserMapNode.class);
final Version version = Version.initial();
- final TreeNode node = TreeNodeFactory.createTreeNode(data, version);
+ final TreeNode node = TreeNode.of(data, version);
assertTrue(node instanceof SimpleContainerNode);
checkTreeNode(node, data, version);
public void testLeaf() {
final LeafNode<?> data = Mockito.mock(LeafNode.class);
final Version version = Version.initial();
- final TreeNode node = TreeNodeFactory.createTreeNode(data, version);
+ final TreeNode node = TreeNode.of(data, version);
assertTrue(node instanceof ValueNode);
checkTreeNode(node, data, version);