+import com.google.common.base.Function;
+import com.google.common.base.Joiner;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import javax.xml.xpath.XPathExpression;
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.CompositeNode;
import org.opendaylight.yangtools.yang.data.api.ModifyAction;
import org.opendaylight.yangtools.yang.data.api.Node;
import org.opendaylight.yangtools.yang.data.api.NodeModification;
import org.opendaylight.yangtools.yang.data.api.SimpleNode;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.CompositeNode;
import org.opendaylight.yangtools.yang.data.api.ModifyAction;
import org.opendaylight.yangtools.yang.data.api.Node;
import org.opendaylight.yangtools.yang.data.api.NodeModification;
import org.opendaylight.yangtools.yang.data.api.SimpleNode;
import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
+ private static final Function<QName, String> LOCALNAME_FUNCTION = new Function<QName, String>() {
+ @Override
+ public String apply(final @Nonnull QName input) {
+ Preconditions.checkNotNull(input);
+ return input.getLocalName();
+ }
+ };
jobQueue.push(new SimpleEntry<org.w3c.dom.Node, Node<?>>(doc, treeRootNode));
while (!jobQueue.isEmpty()) {
jobQueue.push(new SimpleEntry<org.w3c.dom.Node, Node<?>>(doc, treeRootNode));
while (!jobQueue.isEmpty()) {
public static Map<String, ListSchemaNode> buildMapOfListNodes(final SchemaContext context) {
Map<String, ListSchemaNode> mapOfLists = new HashMap<>();
public static Map<String, ListSchemaNode> buildMapOfListNodes(final SchemaContext context) {
Map<String, ListSchemaNode> mapOfLists = new HashMap<>();
jobQueue.addAll(context.getDataDefinitions());
while (!jobQueue.isEmpty()) {
DataSchemaNode dataSchema = jobQueue.pop();
if (dataSchema instanceof ListSchemaNode) {
jobQueue.addAll(context.getDataDefinitions());
while (!jobQueue.isEmpty()) {
DataSchemaNode dataSchema = jobQueue.pop();
if (dataSchema instanceof ListSchemaNode) {
- private static String schemaPathToPath(final List<QName> qNamesPath) {
- List<String> pathSeed = new ArrayList<>();
- for (QName qNameItem : qNamesPath) {
- pathSeed.add(qNameItem.getLocalName());
- }
- return Joiner.on(".").join(pathSeed);
+ private static String schemaPathToPath(final Iterable<QName> qNamesPath) {
+ return DOT_JOINER.join(Iterables.transform(qNamesPath, LOCALNAME_FUNCTION));