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%2FStoreMetadataNode.java;h=695a1f1dd3b2becd6088432ab153f220640c9ff9;hb=refs%2Fchanges%2F94%2F7294%2F2;hp=8addb89bd1ae2180959ba458b2d0762f998d7f21;hpb=0f366ff59742b728025efa3db408c57f2794050e;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/StoreMetadataNode.java b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/data/StoreMetadataNode.java index 8addb89bd1..695a1f1dd3 100644 --- a/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/data/StoreMetadataNode.java +++ b/opendaylight/md-sal/sal-dom-broker/src/main/java/org/opendaylight/controller/md/sal/dom/store/impl/tree/data/StoreMetadataNode.java @@ -13,7 +13,6 @@ import java.util.Collections; import java.util.HashMap; import java.util.Map; -import org.opendaylight.controller.md.sal.dom.store.impl.tree.StoreTreeNode; import org.opendaylight.yangtools.concepts.Identifiable; import org.opendaylight.yangtools.concepts.Immutable; import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument; @@ -24,15 +23,12 @@ import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.primitives.UnsignedLong; -// FIXME: this should not be public -public class StoreMetadataNode implements Immutable, Identifiable, StoreTreeNode { - +class StoreMetadataNode implements Immutable, Identifiable { + private final Map children; private final UnsignedLong nodeVersion; private final UnsignedLong subtreeVersion; private final NormalizedNode data; - private final Map children; - /** * * @param data @@ -40,11 +36,11 @@ public class StoreMetadataNode implements Immutable, Identifiable, * @param subtreeVersion * @param children Map of children, must not be modified externally */ - protected StoreMetadataNode(final NormalizedNode data, final UnsignedLong nodeVersion, + private StoreMetadataNode(final NormalizedNode data, final UnsignedLong nodeVersion, final UnsignedLong subtreeVersion, final Map children) { - this.nodeVersion = nodeVersion; - this.subtreeVersion = subtreeVersion; - this.data = data; + this.nodeVersion = Preconditions.checkNotNull(nodeVersion); + this.subtreeVersion = Preconditions.checkNotNull(subtreeVersion); + this.data = Preconditions.checkNotNull(data); this.children = Preconditions.checkNotNull(children); } @@ -53,16 +49,11 @@ public class StoreMetadataNode implements Immutable, Identifiable, Collections.emptyMap()); } - public StoreMetadataNode(final NormalizedNode data, final UnsignedLong nodeVersion, - final UnsignedLong subtreeVersion) { - this(data, nodeVersion, subtreeVersion, Collections.emptyMap()); - } - - public static Builder builder() { - return new Builder(); + public static Builder builder(final UnsignedLong version) { + return new Builder(version); } - public static Builder builder(StoreMetadataNode node) { + public static Builder builder(final StoreMetadataNode node) { return new Builder(node); } @@ -83,8 +74,7 @@ public class StoreMetadataNode implements Immutable, Identifiable, return this.data; } - @Override - public Optional getChild(final PathArgument key) { + Optional getChild(final PathArgument key) { return Optional.fromNullable(children.get(key)); } @@ -93,33 +83,17 @@ public class StoreMetadataNode implements Immutable, Identifiable, return "StoreMetadataNode [identifier=" + getIdentifier() + ", nodeVersion=" + nodeVersion + "]"; } - public static Optional getVersion(final Optional currentMetadata) { - if (currentMetadata.isPresent()) { - return Optional.of(currentMetadata.get().getNodeVersion()); - } - return Optional.absent(); - } - - public static Optional getChild(final Optional parent, - final PathArgument child) { - if (parent.isPresent()) { - return parent.get().getChild(child); - } - return Optional.absent(); - } - public static final StoreMetadataNode createRecursively(final NormalizedNode node, - final UnsignedLong nodeVersion, final UnsignedLong subtreeVersion) { - Builder builder = builder() // - .setNodeVersion(nodeVersion) // - .setSubtreeVersion(subtreeVersion) // + final UnsignedLong version) { + Builder builder = builder(version) // + .setSubtreeVersion(version) // .setData(node); if (node instanceof NormalizedNodeContainer) { @SuppressWarnings("unchecked") NormalizedNodeContainer> nodeContainer = (NormalizedNodeContainer>) node; for (NormalizedNode subNode : nodeContainer.getValue()) { - builder.add(createRecursively(subNode, nodeVersion, subtreeVersion)); + builder.add(createRecursively(subNode, version)); } } return builder.build(); @@ -127,30 +101,22 @@ public class StoreMetadataNode implements Immutable, Identifiable, public static class Builder { - private UnsignedLong nodeVersion; + private final UnsignedLong nodeVersion; private UnsignedLong subtreeVersion; private NormalizedNode data; private Map children; private boolean dirty = false; - private Builder() { + private Builder(final UnsignedLong version) { + this.nodeVersion = Preconditions.checkNotNull(version); children = new HashMap<>(); } - public Builder(StoreMetadataNode node) { + private Builder(final StoreMetadataNode node) { + this.nodeVersion = node.getNodeVersion(); children = new HashMap<>(node.children); } - public UnsignedLong getVersion() { - return nodeVersion; - - } - - public Builder setNodeVersion(final UnsignedLong version) { - this.nodeVersion = version; - return this; - } - public Builder setSubtreeVersion(final UnsignedLong version) { this.subtreeVersion = version; return this; @@ -188,7 +154,4 @@ public class StoreMetadataNode implements Immutable, Identifiable, } } - public static StoreMetadataNode createRecursively(final NormalizedNode node, final UnsignedLong version) { - return createRecursively(node, version, version); - } }