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=8e6381748ef856c7963739b0caf01a164795d64b;hb=c4dc5b33e7d24670b59cc81b65e15b37a3268608;hp=a02b60b2fd24b6443596e3dd4fe4e508433b0518;hpb=e609ad90a443547fa613118274a8773fa90c839f;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..8e6381748e 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,16 +16,21 @@ 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; import org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher; import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode; import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; +import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode; 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 +42,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, final boolean strictParsing) { + 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, strictParsing); + mapEntryNodeParser = new MapEntryNodeDomParser(dispatcher, strictParsing); + mapNodeParser = new MapNodeDomParser(mapEntryNodeParser); + orderedListNodeParser = new OrderedListNodeDomParser(mapEntryNodeParser); + unkeyedListEntryNodeParser = new UnkeyedListEntryNodeDomParser(dispatcher); + unkeyedListNodeParser = new UnkeyedListNodeDomParser(unkeyedListEntryNodeParser); + choiceNodeParser = new ChoiceNodeDomParser(dispatcher); + augmentationNodeParser = new AugmentationNodeDomParser(dispatcher, strictParsing); + } + + @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 +81,22 @@ 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, final boolean strictParsing) { + return new DomToNormalizedNodeParserFactory(codecProvider, schema, strictParsing); + } + + public static DomToNormalizedNodeParserFactory getInstance(final XmlCodecProvider codecProvider, final SchemaContext schema) { + return new DomToNormalizedNodeParserFactory(codecProvider, schema, true); + } + + @Deprecated public static DomToNormalizedNodeParserFactory getInstance(final XmlCodecProvider codecProvider) { return new DomToNormalizedNodeParserFactory(codecProvider); } @@ -64,7 +107,7 @@ public final class DomToNormalizedNodeParserFactory implements ToNormalizedNodeP } @Override - public ToNormalizedNodeParser getChoiceNodeParser() { + public ToNormalizedNodeParser getChoiceNodeParser() { return choiceNodeParser; } @@ -98,8 +141,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; } }