X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fimpl%2Fschema%2Ftree%2FInMemoryDataTreeCandidate.java;h=c2f7d8ca96373015683a43b3af82b8c421cb42b2;hb=5e2ee5120180b2cff62a6e8c2a2c172fbc625817;hp=45227c88b549cce7a4395cfe964df8e56e4cd90e;hpb=0f129679000fb1a9645501dc16154a67936ad7f4;p=yangtools.git diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeCandidate.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeCandidate.java index 45227c88b5..c2f7d8ca96 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeCandidate.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/tree/InMemoryDataTreeCandidate.java @@ -7,98 +7,16 @@ */ package org.opendaylight.yangtools.yang.data.impl.schema.tree; -import com.google.common.base.Function; -import com.google.common.base.Optional; -import com.google.common.base.Preconditions; -import com.google.common.collect.Iterables; +import com.google.common.base.MoreObjects; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument; -import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.tree.DataTreeCandidateNode; -import org.opendaylight.yangtools.yang.data.api.schema.tree.ModificationType; import org.opendaylight.yangtools.yang.data.api.schema.tree.spi.TreeNode; final class InMemoryDataTreeCandidate extends AbstractDataTreeCandidate { - private static abstract class AbstractNode implements DataTreeCandidateNode { - private final ModifiedNode mod; - private final TreeNode newMeta; - private final TreeNode oldMeta; - protected AbstractNode(final ModifiedNode mod, - final TreeNode oldMeta, final TreeNode newMeta) { - this.newMeta = newMeta; - this.oldMeta = oldMeta; - this.mod = Preconditions.checkNotNull(mod); - } - - protected final ModifiedNode getMod() { - return mod; - } - - protected final TreeNode getNewMeta() { - return newMeta; - } - - protected final TreeNode getOldMeta() { - return oldMeta; - } - - private static final TreeNode childMeta(final TreeNode parent, final PathArgument id) { - if (parent != null) { - return parent.getChild(id).orNull(); - } else { - return null; - } - } - - @Override - public Iterable getChildNodes() { - return Iterables.transform(mod.getChildren(), new Function() { - @Override - public DataTreeCandidateNode apply(final ModifiedNode input) { - final PathArgument id = input.getIdentifier(); - return new ChildNode(input, childMeta(oldMeta, id), childMeta(newMeta, id)); - } - }); - } - - @Override - public ModificationType getModificationType() { - return mod.getType(); - } - - private Optional> optionalData(final TreeNode meta) { - if (meta != null) { - return Optional.>of(meta.getData()); - } else { - return Optional.absent(); - } - } - - @Override - public Optional> getDataAfter() { - return optionalData(newMeta); - } - - @Override - public Optional> getDataBefore() { - return optionalData(oldMeta); - } - } - - private static final class ChildNode extends AbstractNode { - public ChildNode(final ModifiedNode mod, final TreeNode oldMeta, final TreeNode newMeta) { - super(mod, oldMeta, newMeta); - } - - @Override - public PathArgument getIdentifier() { - return getMod().getIdentifier(); - } - } - - private static final class RootNode extends AbstractNode { - public RootNode(final ModifiedNode mod, final TreeNode oldMeta, final TreeNode newMeta) { + private static final class RootNode extends AbstractModifiedNodeBasedCandidateNode { + RootNode(final ModifiedNode mod, final TreeNode oldMeta, final TreeNode newMeta) { super(mod, oldMeta, newMeta); } @@ -116,7 +34,8 @@ final class InMemoryDataTreeCandidate extends AbstractDataTreeCandidate { this.root = new RootNode(modificationRoot, beforeRoot, afterRoot); } - TreeNode getAfterRoot() { + @Override + protected TreeNode getTipRoot() { return root.getNewMeta(); } @@ -128,4 +47,10 @@ final class InMemoryDataTreeCandidate extends AbstractDataTreeCandidate { public DataTreeCandidateNode getRootNode() { return root; } + + @Override + public String toString() { + return MoreObjects.toStringHelper(this).add("rootPath", getRootPath()) + .add("rootNode", getRootNode()).toString(); + } }