Bug 499: Initial draft of in-memory datastore and data broker
[controller.git] / opendaylight / md-sal / sal-dom-broker / src / main / java / org / opendaylight / controller / md / sal / dom / store / impl / tree / StoreNodeCompositeBuilder.java
index d1583cafd1c0fe3544e5f388a27df5d67dfd86a7..41fc8239fbab36edee44a6ecacd7940a4722e4ce 100644 (file)
@@ -10,6 +10,9 @@ package org.opendaylight.controller.md.sal.dom.store.impl.tree;
 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeContainerBuilder;
 
+import com.google.common.base.Optional;
+import com.google.common.primitives.UnsignedLong;
+
 /**
  *
  * Helper builder
@@ -23,7 +26,6 @@ public class StoreNodeCompositeBuilder {
 
     private final NormalizedNodeContainerBuilder data;
 
-
     private StoreNodeCompositeBuilder(final NormalizedNodeContainerBuilder nodeBuilder) {
         this.metadata = StoreMetadataNode.builder();
         this.data = nodeBuilder;
@@ -36,23 +38,37 @@ public class StoreNodeCompositeBuilder {
         return this;
     }
 
+    @SuppressWarnings("unchecked")
+    public StoreNodeCompositeBuilder addIfPresent(final Optional<StoreMetadataNode> potential) {
+        if (potential.isPresent()) {
+            StoreMetadataNode node = potential.get();
+            metadata.add(node);
+            data.addChild(node.getData());
+        }
+        return this;
+    }
 
     public StoreMetadataNode build() {
         return metadata.setData(data.build()).build();
     }
 
-
     public static StoreNodeCompositeBuilder from(final NormalizedNodeContainerBuilder nodeBuilder) {
         return new StoreNodeCompositeBuilder(nodeBuilder);
     }
 
-    public static StoreNodeCompositeBuilder from(final StoreMetadataNode previous, final NormalizedNodeContainerBuilder nodeBuilder) {
+    @SuppressWarnings("unchecked")
+    public StoreNodeCompositeBuilder setIdentifier(final PathArgument identifier) {
+        data.withNodeIdentifier(identifier);
+        return this;
+    }
 
-        return new StoreNodeCompositeBuilder(nodeBuilder);
+    public StoreNodeCompositeBuilder setNodeVersion(final UnsignedLong nodeVersion) {
+        metadata.setNodeVersion(nodeVersion);
+        return this;
     }
 
-    public StoreNodeCompositeBuilder setIdentifier(final PathArgument identifier) {
-        data.withNodeIdentifier(identifier);
+    public StoreNodeCompositeBuilder setSubtreeVersion(final UnsignedLong updatedSubtreeVersion) {
+        metadata.setSubtreeVersion(updatedSubtreeVersion);
         return this;
     }