1 package org.opendaylight.controller.md.sal.dom.store.impl.tree.data;
3 import org.opendaylight.controller.md.sal.dom.store.impl.tree.DataTreeSnapshot;
4 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
5 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
6 import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeUtils;
7 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
9 import com.google.common.base.Optional;
10 import com.google.common.base.Preconditions;
12 final class InMemoryDataTreeSnapshot implements DataTreeSnapshot {
13 private final ModificationApplyOperation applyOper;
14 private final SchemaContext schemaContext;
15 private final StoreMetadataNode rootNode;
17 InMemoryDataTreeSnapshot(final SchemaContext schemaContext, final StoreMetadataNode rootNode,
18 final ModificationApplyOperation applyOper) {
19 this.schemaContext = Preconditions.checkNotNull(schemaContext);
20 this.rootNode = Preconditions.checkNotNull(rootNode);
21 this.applyOper = Preconditions.checkNotNull(applyOper);
24 StoreMetadataNode getRootNode() {
28 SchemaContext getSchemaContext() {
33 public Optional<NormalizedNode<?, ?>> readNode(final InstanceIdentifier path) {
34 return NormalizedNodeUtils.findNode(rootNode.getData(), path);
38 public InMemoryDataTreeModification newModification() {
39 return new InMemoryDataTreeModification(this, applyOper);
43 public String toString() {
44 return rootNode.getSubtreeVersion().toString();