1 package org.opendaylight.yangtools.yang.data.impl.schema.tree;
4 import com.google.common.base.Optional;
5 import com.google.common.base.Preconditions;
6 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
7 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
8 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodes;
9 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot;
10 import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.TreeNode;
11 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
13 final class InMemoryDataTreeSnapshot implements DataTreeSnapshot {
14 private final RootModificationApplyOperation applyOper;
15 private final SchemaContext schemaContext;
16 private final TreeNode rootNode;
18 InMemoryDataTreeSnapshot(final SchemaContext schemaContext, final TreeNode rootNode,
19 final RootModificationApplyOperation applyOper) {
20 this.schemaContext = Preconditions.checkNotNull(schemaContext);
21 this.rootNode = Preconditions.checkNotNull(rootNode);
22 this.applyOper = Preconditions.checkNotNull(applyOper);
25 TreeNode getRootNode() {
29 SchemaContext getSchemaContext() {
34 public Optional<NormalizedNode<?, ?>> readNode(final YangInstanceIdentifier path) {
35 return NormalizedNodes.findNode(rootNode.getData(), path);
39 public InMemoryDataTreeModification newModification() {
40 return new InMemoryDataTreeModification(this, applyOper);
44 public String toString() {
45 return rootNode.getSubtreeVersion().toString();