a2508237056b08703d215adbf34f8d089c4644a3
[controller.git] / benchmark / dsbenchmark / src / main / java / org / opendaylight / dsbenchmark / DomListBuilder.java
1 /*
2  * Copyright (c) 2015 Cisco Systems and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.dsbenchmark;
10
11 import java.util.ArrayList;
12 import java.util.List;
13
14 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.dsbenchmark.rev150105.test.exec.OuterList;
15 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.dsbenchmark.rev150105.test.exec.outer.list.InnerList;
16 import org.opendaylight.yangtools.yang.common.QName;
17 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
18 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
19 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
20 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
21 import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.CollectionNodeBuilder;
22
23 public final class DomListBuilder {
24     // Inner List Qname identifiers for yang model's 'name' and 'value'
25     private static final org.opendaylight.yangtools.yang.common.QName IL_NAME = QName.create(InnerList.QNAME, "name");
26     private static final org.opendaylight.yangtools.yang.common.QName IL_VALUE = QName.create(InnerList.QNAME, "value");
27
28     // Outer List Qname identifier for yang model's 'id'
29     private static final org.opendaylight.yangtools.yang.common.QName OL_ID = QName.create(OuterList.QNAME, "id");
30
31     static public List<MapEntryNode> buildOuterList(int outerElements, int innerElements) {
32         List<MapEntryNode> outerList = new ArrayList<MapEntryNode>(outerElements);
33         for (int j = 0; j < outerElements; j++) {
34             outerList.add(ImmutableNodes.mapEntryBuilder()
35                                 .withNodeIdentifier(new NodeIdentifierWithPredicates(OuterList.QNAME, OL_ID, j))
36                                 .withChild(ImmutableNodes.leafNode(OL_ID, j))
37                                 .withChild(buildInnerList(j, innerElements))
38                                 .build());
39         }
40
41         return outerList;
42     }
43
44     static private MapNode buildInnerList(int index, int elements ) {
45         CollectionNodeBuilder<MapEntryNode, MapNode> innerList = ImmutableNodes.mapNodeBuilder(InnerList.QNAME);
46
47         final String itemStr = "Item-" + String.valueOf(index) + "-";
48         for( int i = 0; i < elements; i++ ) {
49             innerList.addChild(ImmutableNodes.mapEntryBuilder()
50                                 .withNodeIdentifier(new NodeIdentifierWithPredicates(InnerList.QNAME, IL_NAME, i))
51                                 .withChild(ImmutableNodes.leafNode(IL_NAME, i))
52                                 .withChild(ImmutableNodes.leafNode(IL_VALUE, itemStr + String.valueOf(i)))
53                                 .build());
54         }
55         return innerList.build();
56     }
57
58
59 }