X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-dom-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fmd%2Fsal%2Fdom%2Fstore%2Fimpl%2Ftree%2Fdata%2FNoopDataTreeCandidate.java;h=8a467484141bf9631cd05b26ae09b85f1943d6fd;hp=1782da2835df6be2f13c0c5d9b76dfc4ea357aa2;hb=b2f1e02e9c650f9c9dbbe8eb5b7fa52210276866;hpb=c3c49eaef5b1435b871f97eb060f8abdba5a6671 diff --git a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/data/NoopDataTreeCandidate.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/data/NoopDataTreeCandidate.java index 1782da2835..8a46748414 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/data/NoopDataTreeCandidate.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/data/NoopDataTreeCandidate.java @@ -7,25 +7,52 @@ */ package org.opendaylight.controller.md.sal.dom.store.impl.tree.data; +import java.util.Collections; + +import org.opendaylight.controller.md.sal.dom.store.impl.tree.DataTreeCandidateNode; +import org.opendaylight.controller.md.sal.dom.store.impl.tree.ModificationType; import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier; +import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; + +import com.google.common.base.Optional; +import com.google.common.base.Preconditions; final class NoopDataTreeCandidate extends AbstractDataTreeCandidate { - protected NoopDataTreeCandidate(final InstanceIdentifier rootPath, final NodeModification modificationRoot) { - super(rootPath, modificationRoot); - } - - @Override - public void close() { - // NO-OP - } - - @Override - public StoreMetadataNode getBeforeRoot() { - return null; - } - - @Override - public StoreMetadataNode getAfterRoot() { - return null; - } + private static final DataTreeCandidateNode ROOT = new DataTreeCandidateNode() { + @Override + public ModificationType getModificationType() { + return ModificationType.UNMODIFIED; + } + + @Override + public Iterable getChildNodes() { + return Collections.emptyList(); + } + + @Override + public PathArgument getIdentifier() { + throw new IllegalStateException("Attempted to read identifier of the no-operation change"); + } + + @Override + public Optional> getDataAfter() { + return Optional.absent(); + } + + @Override + public Optional> getDataBefore() { + return Optional.absent(); + } + }; + + protected NoopDataTreeCandidate(final InstanceIdentifier rootPath, final NodeModification modificationRoot) { + super(rootPath); + Preconditions.checkArgument(modificationRoot.getModificationType() == ModificationType.UNMODIFIED); + } + + @Override + public DataTreeCandidateNode getRootNode() { + return ROOT; + } }