1 package org.opendaylight.yangtools.yang.data.impl.schema.transform.dom.parser;
3 import org.opendaylight.yangtools.yang.data.api.schema.*;
4 import org.opendaylight.yangtools.yang.data.impl.codec.xml.XmlCodecProvider;
5 import org.opendaylight.yangtools.yang.data.impl.schema.transform.ToNormalizedNodeParser;
6 import org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher;
7 import org.opendaylight.yangtools.yang.model.api.*;
8 import org.opendaylight.yangtools.yang.model.api.ChoiceNode;
9 import org.w3c.dom.Element;
11 public class DomNodeDispatcher extends NodeParserDispatcher.BaseNodeParserDispatcher<Element> {
13 private final ContainerNodeDomParser containerNodeDomParser;
14 private final LeafNodeDomParser leafNodeDomParser;
15 private final LeafSetNodeDomParser leafSetNodeDomParser;
16 private final MapNodeDomParser mapNodeDomParser;
17 private final ChoiceNodeDomParser choiceNodeDomParser;
18 private final AugmentationNodeDomParser augmentationNodeDomParser;
20 private static DomNodeDispatcher instance = null;
22 private DomNodeDispatcher(XmlCodecProvider codecProvider) {
23 leafNodeDomParser = new LeafNodeDomParser(codecProvider);
24 containerNodeDomParser = new ContainerNodeDomParser(codecProvider);
25 leafSetNodeDomParser = new LeafSetNodeDomParser(new LeafSetEntryNodeDomParser(codecProvider));
26 mapNodeDomParser = new MapNodeDomParser(new MapEntryNodeDomParser(codecProvider));
27 choiceNodeDomParser = new ChoiceNodeDomParser(codecProvider);
28 augmentationNodeDomParser = new AugmentationNodeDomParser(codecProvider);
32 protected ToNormalizedNodeParser<Element, ContainerNode, ContainerSchemaNode> getContainerNodeParser() {
33 return containerNodeDomParser;
37 protected ToNormalizedNodeParser<Element, LeafNode<?>, LeafSchemaNode> getLeafNodeParser() {
38 return leafNodeDomParser;
42 protected ToNormalizedNodeParser<Element, LeafSetNode<?>, LeafListSchemaNode> getLeafSetNodeParser() {
43 return leafSetNodeDomParser;
47 protected ToNormalizedNodeParser<Element, MapNode, ListSchemaNode> getMapNodeParser() {
48 return mapNodeDomParser;
52 protected ToNormalizedNodeParser<Element, org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode, ChoiceNode> getChoiceNodeParser() {
53 return choiceNodeDomParser;
57 protected ToNormalizedNodeParser<Element, AugmentationNode, AugmentationSchema> getAugmentationNodeParser() {
58 return augmentationNodeDomParser;
61 public static NodeParserDispatcher<Element> getInstance(XmlCodecProvider codecProvider) {
62 if (instance == null) {
63 instance = new DomNodeDispatcher(codecProvider);