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.controller.md.sal.dom.store.impl.tree.ModificationApplyOperation;
5 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier;
6 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
7 import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeUtils;
8 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
10 import com.google.common.base.Optional;
11 import com.google.common.base.Preconditions;
13 final class InMemoryDataTreeSnapshot implements DataTreeSnapshot {
14 private final SchemaContext schemaContext;
15 private final StoreMetadataNode rootNode;
17 InMemoryDataTreeSnapshot(final SchemaContext schemaContext, final StoreMetadataNode rootNode) {
18 this.schemaContext = Preconditions.checkNotNull(schemaContext);
19 this.rootNode = Preconditions.checkNotNull(rootNode);
22 StoreMetadataNode getRootNode() {
26 SchemaContext getSchemaContext() {
31 public Optional<NormalizedNode<?, ?>> readNode(final InstanceIdentifier path) {
32 return NormalizedNodeUtils.findNode(rootNode.getData(), path);
36 public InMemoryDataTreeModification newModification(ModificationApplyOperation applyOper) {
37 return new InMemoryDataTreeModification(this, applyOper);
41 public String toString() {
42 return rootNode.getSubtreeVersion().toString();