Merge "Make sure maven artifacts are provided"
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / schema / transform / dom / parser / DomToNormalizedNodeParserFactory.java
index a02b60b2fd24b6443596e3dd4fe4e508433b0518..00da553142a2460a2d3f77d72e1b10e6704dc140 100644 (file)
@@ -16,6 +16,9 @@ import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
+import org.opendaylight.yangtools.yang.data.api.schema.OrderedMapNode;
+import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
+import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
 import org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlCodecProvider;
 import org.opendaylight.yangtools.yang.data.impl.schema.transform.ToNormalizedNodeParser;
 import org.opendaylight.yangtools.yang.data.impl.schema.transform.ToNormalizedNodeParserFactory;
@@ -26,6 +29,7 @@ import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.w3c.dom.Element;
 
 public final class DomToNormalizedNodeParserFactory implements ToNormalizedNodeParserFactory<Element> {
@@ -37,11 +41,37 @@ public final class DomToNormalizedNodeParserFactory implements ToNormalizedNodeP
     private final LeafSetNodeDomParser leafSetNodeParser;
     private final MapNodeDomParser mapNodeParser;
     private final MapEntryNodeDomParser mapEntryNodeParser;
+    private final UnkeyedListEntryNodeDomParser unkeyedListEntryNodeParser;
+    private final UnkeyedListNodeDomParser unkeyedListNodeParser;
+    private final OrderedListNodeDomParser orderedListNodeParser;
+    private final AnyXmlDomParser anyXmlNodeParser;
+
+    private DomToNormalizedNodeParserFactory(final XmlCodecProvider codecProvider, final SchemaContext schema) {
+        leafNodeParser = new LeafNodeDomParser(codecProvider, schema);
+        leafSetEntryNodeParser = new LeafSetEntryNodeDomParser(codecProvider, schema);
+        leafSetNodeParser = new LeafSetNodeDomParser(leafSetEntryNodeParser);
+        anyXmlNodeParser = new AnyXmlDomParser();
+
+        final NodeParserDispatcher<Element> dispatcher = new NodeParserDispatcher.BaseNodeParserDispatcher<Element>(this) {
+
+        };
+
+        containerNodeParser = new ContainerNodeDomParser(dispatcher);
+        mapEntryNodeParser = new MapEntryNodeDomParser(dispatcher);
+        mapNodeParser = new MapNodeDomParser(mapEntryNodeParser);
+        orderedListNodeParser = new OrderedListNodeDomParser(mapEntryNodeParser);
+        unkeyedListEntryNodeParser = new UnkeyedListEntryNodeDomParser(dispatcher);
+        unkeyedListNodeParser = new UnkeyedListNodeDomParser(unkeyedListEntryNodeParser);
+        choiceNodeParser = new ChoiceNodeDomParser(dispatcher);
+        augmentationNodeParser = new AugmentationNodeDomParser(dispatcher);
+    }
 
+    @Deprecated
     private DomToNormalizedNodeParserFactory(final XmlCodecProvider codecProvider) {
         leafNodeParser = new LeafNodeDomParser(codecProvider);
         leafSetEntryNodeParser = new LeafSetEntryNodeDomParser(codecProvider);
         leafSetNodeParser = new LeafSetNodeDomParser(leafSetEntryNodeParser);
+        anyXmlNodeParser = new AnyXmlDomParser();
 
         final NodeParserDispatcher<Element> dispatcher = new NodeParserDispatcher.BaseNodeParserDispatcher<Element>(this) {
 
@@ -50,10 +80,18 @@ public final class DomToNormalizedNodeParserFactory implements ToNormalizedNodeP
         containerNodeParser = new ContainerNodeDomParser(dispatcher);
         mapEntryNodeParser = new MapEntryNodeDomParser(dispatcher);
         mapNodeParser = new MapNodeDomParser(mapEntryNodeParser);
+        orderedListNodeParser = new OrderedListNodeDomParser(mapEntryNodeParser);
+        unkeyedListEntryNodeParser = new UnkeyedListEntryNodeDomParser(dispatcher);
+        unkeyedListNodeParser = new UnkeyedListNodeDomParser(unkeyedListEntryNodeParser);
         choiceNodeParser = new ChoiceNodeDomParser(dispatcher);
         augmentationNodeParser = new AugmentationNodeDomParser(dispatcher);
     }
 
+    public static DomToNormalizedNodeParserFactory getInstance(final XmlCodecProvider codecProvider, final SchemaContext schema) {
+        return new DomToNormalizedNodeParserFactory(codecProvider, schema);
+    }
+
+    @Deprecated
     public static DomToNormalizedNodeParserFactory getInstance(final XmlCodecProvider codecProvider) {
         return new DomToNormalizedNodeParserFactory(codecProvider);
     }
@@ -98,8 +136,23 @@ public final class DomToNormalizedNodeParserFactory implements ToNormalizedNodeP
         return mapNodeParser;
     }
 
+    @Override
+    public ToNormalizedNodeParser<Element, UnkeyedListNode, ListSchemaNode> getUnkeyedListNodeParser() {
+        return unkeyedListNodeParser;
+    }
+
+    @Override
+    public ToNormalizedNodeParser<Element, UnkeyedListEntryNode, ListSchemaNode> getUnkeyedListEntryNodeParser() {
+        return unkeyedListEntryNodeParser;
+    }
+
+    @Override
+    public ToNormalizedNodeParser<Element, OrderedMapNode, ListSchemaNode> getOrderedListNodeParser() {
+        return orderedListNodeParser;
+    }
+
     @Override
     public ToNormalizedNodeParser<Element, AnyXmlNode, AnyXmlSchemaNode> getAnyXmlNodeParser() {
-        throw new UnsupportedOperationException();
+        return anyXmlNodeParser;
     }
 }