- public InMemoryDataTree create() {
- final NodeIdentifier root = new NodeIdentifier(SchemaContext.NAME);
- final NormalizedNode<?, ?> data = Builders.containerBuilder().withNodeIdentifier(root).build();
+ public TipProducingDataTree create(final TreeType treeType) {
+ return new InMemoryDataTree(TreeNodeFactory.createTreeNode(rootContainer, Version.initial()),
+ treeType, YangInstanceIdentifier.EMPTY, null);
+ }
+
+ @Override
+ public TipProducingDataTree create(final TreeType treeType, final YangInstanceIdentifier rootPath) {
+ if (rootPath.isEmpty()) {
+ return create(treeType);
+ }
+ final NormalizedNode<?, ?> root;
+ final PathArgument arg = rootPath.getLastPathArgument();
+ if (arg instanceof NodeIdentifier) {
+ root = rootContainer;
+ } else if (arg instanceof NodeIdentifierWithPredicates) {
+ final DataContainerNodeBuilder<NodeIdentifierWithPredicates, MapEntryNode> b = ImmutableNodes.mapEntryBuilder();
+ b.withNodeIdentifier((NodeIdentifierWithPredicates) arg);
+ root = b.build();
+ } else {
+
+ // FIXME: implement augmentations and leaf-lists
+ throw new IllegalArgumentException("Unsupported root node " + arg);
+ }