2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.md.sal.dom.store.impl.tree.data;
10 import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.PathArgument;
11 import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeContainerBuilder;
13 import com.google.common.base.Preconditions;
14 import com.google.common.primitives.UnsignedLong;
22 @SuppressWarnings("rawtypes")
23 public class StoreNodeCompositeBuilder {
25 private final StoreMetadataNode.Builder metadata;
27 private final NormalizedNodeContainerBuilder data;
29 private StoreNodeCompositeBuilder(final NormalizedNodeContainerBuilder nodeBuilder) {
30 this.metadata = StoreMetadataNode.builder();
31 this.data = Preconditions.checkNotNull(nodeBuilder);
34 public StoreNodeCompositeBuilder(NormalizedNodeContainerBuilder nodeBuilder, StoreMetadataNode currentMeta) {
35 this.metadata = StoreMetadataNode.builder(currentMeta);
36 this.data = Preconditions.checkNotNull(nodeBuilder);
39 @SuppressWarnings("unchecked")
40 public StoreNodeCompositeBuilder add(final StoreMetadataNode node) {
42 data.addChild(node.getData());
46 @SuppressWarnings("unchecked")
47 public StoreNodeCompositeBuilder remove(PathArgument id) {
53 public StoreMetadataNode build() {
54 return metadata.setData(data.build()).build();
57 public static StoreNodeCompositeBuilder from(final NormalizedNodeContainerBuilder nodeBuilder) {
58 return new StoreNodeCompositeBuilder(nodeBuilder);
61 public static StoreNodeCompositeBuilder from(final NormalizedNodeContainerBuilder nodeBuilder, StoreMetadataNode currentMeta) {
62 return new StoreNodeCompositeBuilder(nodeBuilder, currentMeta);
65 @SuppressWarnings("unchecked")
66 public StoreNodeCompositeBuilder setIdentifier(final PathArgument identifier) {
67 data.withNodeIdentifier(identifier);
71 public StoreNodeCompositeBuilder setNodeVersion(final UnsignedLong nodeVersion) {
72 metadata.setNodeVersion(nodeVersion);
76 public StoreNodeCompositeBuilder setSubtreeVersion(final UnsignedLong updatedSubtreeVersion) {
77 metadata.setSubtreeVersion(updatedSubtreeVersion);