X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fstore%2Fimpl%2Ftree%2Fdata%2FInMemoryDataTreeSnapshot.java;fp=opendaylight%2Fmd-sal%2Fsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fstore%2Fimpl%2Ftree%2Fdata%2FInMemoryDataTreeSnapshot.java;h=96f1565659d62a18f0ba9b1e5bf4d205dabcab5e;hb=8d160966fa8752235d01bb8dc57c11391b86f187;hp=0000000000000000000000000000000000000000;hpb=3f00001b2652f56ba9fc73681aeac27cb0e0d7df;p=controller.git diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/data/InMemoryDataTreeSnapshot.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/data/InMemoryDataTreeSnapshot.java new file mode 100644 index 0000000000..96f1565659 --- /dev/null +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/data/InMemoryDataTreeSnapshot.java @@ -0,0 +1,45 @@ +package org.opendaylight.controller.md.sal.dom.store.impl.tree.data; + +import org.opendaylight.controller.md.sal.dom.store.impl.tree.DataTreeSnapshot; +import org.opendaylight.controller.md.sal.dom.store.impl.tree.ModificationApplyOperation; +import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; +import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeUtils; +import org.opendaylight.yangtools.yang.model.api.SchemaContext; + +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; + +final class InMemoryDataTreeSnapshot implements DataTreeSnapshot { + private final SchemaContext schemaContext; + private final StoreMetadataNode rootNode; + + InMemoryDataTreeSnapshot(final SchemaContext schemaContext, final StoreMetadataNode rootNode) { + this.schemaContext = Preconditions.checkNotNull(schemaContext); + this.rootNode = Preconditions.checkNotNull(rootNode); + } + + StoreMetadataNode getRootNode() { + return rootNode; + } + + SchemaContext getSchemaContext() { + return schemaContext; + } + + @Override + public Optional> readNode(final InstanceIdentifier path) { + return NormalizedNodeUtils.findNode(rootNode.getData(), path); + } + + @Override + public InMemoryDataTreeModification newModification(ModificationApplyOperation applyOper) { + return new InMemoryDataTreeModification(this, applyOper); + } + + @Override + public String toString() { + return rootNode.getSubtreeVersion().toString(); + } + +} \ No newline at end of file