package org.opendaylight.controller.sal.dom.broker.util; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.data.api.CompositeNode; import org.opendaylight.yangtools.yang.data.api.SimpleNode; import static com.google.common.base.Preconditions.*; public class YangDataUtils { public YangDataUtils() { // TODO Auto-generated constructor stub } public static Map,CompositeNode> toIndexMap(List nodes,List keys) { ConcurrentHashMap,CompositeNode> ret = new ConcurrentHashMap<>(); for(CompositeNode node : nodes) { Map key = getKeyMap(node,keys); ret.put(key, node); } return ret; } public static Map getKeyMap(CompositeNode node, List keys) { Map map = new HashMap<>(); for(QName key : keys) { SimpleNode keyNode = node.getFirstSimpleByName(QName.create(node.getNodeType(), key.getLocalName())); checkArgument(keyNode != null,"Node must contains all keys."); Object value = keyNode.getValue(); map.put(key, value); } return map; } }