Merge "BUG-994: remove the legacy public constructor"
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / schema / tree / InMemoryDataTreeSnapshot.java
1 package org.opendaylight.yangtools.yang.data.impl.schema.tree;
2
3
4 import com.google.common.base.Optional;
5 import com.google.common.base.Preconditions;
6 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
7 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
8 import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot;
9 import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.TreeNode;
10 import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeUtils;
11 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
12
13 final class InMemoryDataTreeSnapshot implements DataTreeSnapshot {
14     private final ModificationApplyOperation applyOper;
15     private final SchemaContext schemaContext;
16     private final TreeNode rootNode;
17
18     InMemoryDataTreeSnapshot(final SchemaContext schemaContext, final TreeNode rootNode,
19             final ModificationApplyOperation applyOper) {
20         this.schemaContext = Preconditions.checkNotNull(schemaContext);
21         this.rootNode = Preconditions.checkNotNull(rootNode);
22         this.applyOper = Preconditions.checkNotNull(applyOper);
23     }
24
25     TreeNode getRootNode() {
26         return rootNode;
27     }
28
29     SchemaContext getSchemaContext() {
30         return schemaContext;
31     }
32
33     @Override
34     public Optional<NormalizedNode<?, ?>> readNode(final InstanceIdentifier path) {
35         return NormalizedNodeUtils.findNode(rootNode.getData(), path);
36     }
37
38     @Override
39     public InMemoryDataTreeModification newModification() {
40         return new InMemoryDataTreeModification(this, applyOper);
41     }
42
43     @Override
44     public String toString() {
45         return rootNode.getSubtreeVersion().toString();
46     }
47
48 }