X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-distributed-datastore%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2FShardDataTree.java;h=abe106170b46c97fd48e04f40d7d8d00d3e316ab;hb=d207a2f677545357095f2e5f145a5ecc8d3a60dd;hp=18f0cddf179b2ed010123c6eaf9f65f320314049;hpb=d9ea4400df226eb65c964ab0cb2aa81ee495ba15;p=controller.git diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java index 18f0cddf17..abe106170b 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java @@ -25,8 +25,10 @@ import org.opendaylight.yangtools.concepts.ListenerRegistration; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidate; +import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateTip; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidates; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeModification; +import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeSnapshot; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataValidationFailedException; import org.opendaylight.yangtools.yang.data.api.schema.tree.TipProducingDataTree; import org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeFactory; @@ -196,4 +198,24 @@ public class ShardDataTree extends ShardDataTreeTransactionParent { snapshot.ready(); return new SimpleShardDataTreeCohort(this, snapshot, transaction.getId()); } + + public Optional> readNode(YangInstanceIdentifier path) { + return dataTree.takeSnapshot().readNode(path); + } + + public DataTreeSnapshot takeSnapshot() { + return dataTree.takeSnapshot(); + } + + public DataTreeModification newModification() { + return dataTree.takeSnapshot().newModification(); + } + + public DataTreeCandidate commit(DataTreeModification modification) throws DataValidationFailedException { + modification.ready(); + dataTree.validate(modification); + DataTreeCandidateTip candidate = dataTree.prepare(modification); + dataTree.commit(candidate); + return candidate; + } }