Collections.<PathArgument, StoreMetadataNode>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);
}
return "StoreMetadataNode [identifier=" + getIdentifier() + ", nodeVersion=" + nodeVersion + "]";
}
- public static Optional<UnsignedLong> getVersion(final Optional<StoreMetadataNode> currentMetadata) {
- if (currentMetadata.isPresent()) {
- return Optional.of(currentMetadata.get().getNodeVersion());
- }
- return Optional.absent();
- }
-
- public static Optional<StoreMetadataNode> getChild(final Optional<StoreMetadataNode> 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<?, ?, NormalizedNode<?, ?>> nodeContainer = (NormalizedNodeContainer<?, ?, NormalizedNode<?, ?>>) node;
for (NormalizedNode<?, ?> subNode : nodeContainer.getValue()) {
- builder.add(createRecursively(subNode, nodeVersion, subtreeVersion));
+ builder.add(createRecursively(subNode, version));
}
}
return builder.build();
public static class Builder {
- private UnsignedLong nodeVersion;
+ private final UnsignedLong nodeVersion;
private UnsignedLong subtreeVersion;
private NormalizedNode<?, ?> data;
private Map<PathArgument, StoreMetadataNode> children;
private boolean dirty = false;
- private Builder() {
+ private Builder(final UnsignedLong version) {
+ this.nodeVersion = Preconditions.checkNotNull(version);
children = new HashMap<>();
}
- private 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;
}
}
- public static StoreMetadataNode createRecursively(final NormalizedNode<?, ?> node, final UnsignedLong version) {
- return createRecursively(node, version, version);
- }
}