*/
package org.opendaylight.yangtools.yang.data.api.schema.tree.spi;
+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.NormalizedNodeContainer;
import org.opendaylight.yangtools.yang.data.api.schema.OrderedNodeContainer;
/**
*/
public final class TreeNodeFactory {
private TreeNodeFactory() {
- throw new UnsupportedOperationException("Utility class should not be instantiated");
- }
-
- /**
- * Create a new AbstractTreeNode from a data node, descending recursively as needed.
- * This method should only ever be used for new data.
- *
- * @param data data node
- * @param version data node version
- * @return new AbstractTreeNode instance, covering the data tree provided
- */
- public static final TreeNode createTreeNodeRecursively(final NormalizedNode<?, ?> data, final Version version) {
- if (data instanceof NormalizedNodeContainer<?, ?, ?>) {
- @SuppressWarnings("unchecked")
- NormalizedNodeContainer<?, ?, NormalizedNode<?, ?>> container = (NormalizedNodeContainer<?, ?, NormalizedNode<?, ?>>) data;
- return ContainerNode.createNormalizedNodeRecursively(version, container);
-
- }
- if (data instanceof OrderedNodeContainer<?>) {
- @SuppressWarnings("unchecked")
- OrderedNodeContainer<NormalizedNode<?, ?>> container = (OrderedNodeContainer<NormalizedNode<?, ?>>) data;
- return ContainerNode.createOrderedNodeRecursively(version, container);
- }
-
- return new ValueNode(data, version);
+ // Hidden on purpose
}
/**
* @param version data node version
* @return new AbstractTreeNode instance, covering the data tree provided
*/
- public static final TreeNode createTreeNode(final NormalizedNode<?, ?> data, final Version version) {
- if (data instanceof NormalizedNodeContainer<?, ?, ?>) {
+ public static TreeNode createTreeNode(final NormalizedNode data, final Version version) {
+ if (data instanceof DistinctNodeContainer<?, ?, ?>) {
@SuppressWarnings("unchecked")
- NormalizedNodeContainer<?, ?, NormalizedNode<?, ?>> container = (NormalizedNodeContainer<?, ?, NormalizedNode<?, ?>>) data;
- return ContainerNode.createNormalizedNode(version, container);
+ final DistinctNodeContainer<?, ?, NormalizedNode> container =
+ (DistinctNodeContainer<?, ?, NormalizedNode>) data;
+ return new SimpleContainerNode(container, version);
}
if (data instanceof OrderedNodeContainer<?>) {
- @SuppressWarnings("unchecked")
- OrderedNodeContainer<NormalizedNode<?, ?>> container = (OrderedNodeContainer<NormalizedNode<?, ?>>) data;
- return ContainerNode.createOrderedNode(version, container);
+ return new SimpleContainerNode(data, version);
}
return new ValueNode(data, version);
}