1 package org.opendaylight.controller.sal.dom.broker.util;
3 import java.util.HashMap;
6 import java.util.concurrent.ConcurrentHashMap;
8 import org.opendaylight.yangtools.yang.common.QName;
9 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
10 import org.opendaylight.yangtools.yang.data.api.SimpleNode;
12 import static com.google.common.base.Preconditions.*;
14 public class YangDataUtils {
16 public YangDataUtils() {
17 // TODO Auto-generated constructor stub
22 public static Map<Map<QName,Object>,CompositeNode> toIndexMap(List<CompositeNode> nodes,List<QName> keys) {
23 ConcurrentHashMap<Map<QName,Object>,CompositeNode> ret = new ConcurrentHashMap<>();
24 for(CompositeNode node : nodes) {
25 Map<QName, Object> key = getKeyMap(node,keys);
33 public static Map<QName,Object> getKeyMap(CompositeNode node, List<QName> keys) {
34 Map<QName,Object> map = new HashMap<>();
35 for(QName key : keys) {
36 SimpleNode<?> keyNode = node.getFirstSimpleByName(QName.create(node.getNodeType(), key.getLocalName()));
37 checkArgument(keyNode != null,"Node must contains all keys.");
38 Object value = keyNode.getValue();