X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fimpl%2Fschema%2Ftransform%2Fdom%2Fparser%2FDomToNormalizedNodeParserFactory.java;h=00da553142a2460a2d3f77d72e1b10e6704dc140;hb=c3c24461dbbf8bab18fc291c89fb99fbf92fe1ba;hp=a02b60b2fd24b6443596e3dd4fe4e508433b0518;hpb=c6e9aa40d3d9a93cc886dcc36d558e123fe79ea7;p=yangtools.git diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/transform/dom/parser/DomToNormalizedNodeParserFactory.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/transform/dom/parser/DomToNormalizedNodeParserFactory.java index a02b60b2fd..00da553142 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/transform/dom/parser/DomToNormalizedNodeParserFactory.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/schema/transform/dom/parser/DomToNormalizedNodeParserFactory.java @@ -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 { @@ -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 dispatcher = new NodeParserDispatcher.BaseNodeParserDispatcher(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 dispatcher = new NodeParserDispatcher.BaseNodeParserDispatcher(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 getUnkeyedListNodeParser() { + return unkeyedListNodeParser; + } + + @Override + public ToNormalizedNodeParser getUnkeyedListEntryNodeParser() { + return unkeyedListEntryNodeParser; + } + + @Override + public ToNormalizedNodeParser getOrderedListNodeParser() { + return orderedListNodeParser; + } + @Override public ToNormalizedNodeParser getAnyXmlNodeParser() { - throw new UnsupportedOperationException(); + return anyXmlNodeParser; } }