2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.yangtools.yang.data.composite.node.schema.cnsn.parser;
10 import org.opendaylight.yangtools.yang.data.api.Node;
11 import org.opendaylight.yangtools.yang.data.api.schema.AnyXmlNode;
12 import org.opendaylight.yangtools.yang.data.api.schema.AugmentationNode;
13 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
14 import org.opendaylight.yangtools.yang.data.api.schema.LeafNode;
15 import org.opendaylight.yangtools.yang.data.api.schema.LeafSetEntryNode;
16 import org.opendaylight.yangtools.yang.data.api.schema.LeafSetNode;
17 import org.opendaylight.yangtools.yang.data.api.schema.MapEntryNode;
18 import org.opendaylight.yangtools.yang.data.api.schema.MapNode;
19 import org.opendaylight.yangtools.yang.data.api.schema.OrderedMapNode;
20 import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListEntryNode;
21 import org.opendaylight.yangtools.yang.data.api.schema.UnkeyedListNode;
22 import org.opendaylight.yangtools.yang.data.impl.schema.transform.ToNormalizedNodeParser;
23 import org.opendaylight.yangtools.yang.data.impl.schema.transform.ToNormalizedNodeParserFactory;
24 import org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher;
25 import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode;
26 import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
27 import org.opendaylight.yangtools.yang.model.api.ChoiceNode;
28 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
29 import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
30 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
31 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
33 public class CnSnToNormalizedNodeParserFactory implements ToNormalizedNodeParserFactory<Node<?>> {
35 private final ContainerNodeCnSnParser containerNodeCnSnParser;
36 private final LeafNodeCnSnParser leafNodeCnSnParser;
37 private final LeafSetEntryNodeCnSnParser leafSetEntryNodeCnSnParser;
38 private final LeafSetNodeCnSnParser leafSetNodeCnSnParser;
39 private final MapNodeCnSnParser mapNodeCnSnParser;
40 private final MapEntryNodeCnSnParser mapEntryNodeCnSnParser;
41 private final UnkeyedListNodeCnSnParser unkeyedListNodeCnSnParser;
42 private final UnkeyedListEntryNodeCnSnParser unkeyedListEntryNodeCnSnParser;
43 private final ChoiceNodeCnSnParser choiceNodeCnSnParser;
44 private final AugmentationNodeCnSnParser augmentationNodeCnSnParser;
45 private final AnyXmlNodeCnSnParser anyXmlNodeCnSnParser;
46 private final OrderedListNodeCnSnParser orderedListNodeCnSnParser;
48 private CnSnToNormalizedNodeParserFactory() {
49 leafNodeCnSnParser = new LeafNodeCnSnParser();
50 leafSetEntryNodeCnSnParser = new LeafSetEntryNodeCnSnParser();
51 leafSetNodeCnSnParser = new LeafSetNodeCnSnParser(leafSetEntryNodeCnSnParser);
52 anyXmlNodeCnSnParser = new AnyXmlNodeCnSnParser();
54 final NodeParserDispatcher<Node<?>> dispatcher = new NodeParserDispatcher.BaseNodeParserDispatcher<Node<?>>(
59 containerNodeCnSnParser = new ContainerNodeCnSnParser(dispatcher);
60 mapEntryNodeCnSnParser = new MapEntryNodeCnSnParser(dispatcher);
61 mapNodeCnSnParser = new MapNodeCnSnParser(mapEntryNodeCnSnParser);
62 orderedListNodeCnSnParser = new OrderedListNodeCnSnParser(mapEntryNodeCnSnParser);
63 unkeyedListEntryNodeCnSnParser = new UnkeyedListEntryNodeCnSnParser(dispatcher);
64 unkeyedListNodeCnSnParser = new UnkeyedListNodeCnSnParser(unkeyedListEntryNodeCnSnParser);
65 choiceNodeCnSnParser = new ChoiceNodeCnSnParser(dispatcher);
66 augmentationNodeCnSnParser = new AugmentationNodeCnSnParser(dispatcher);
70 public static CnSnToNormalizedNodeParserFactory getInstance() {
71 return new CnSnToNormalizedNodeParserFactory();
75 public ToNormalizedNodeParser<Node<?>, ContainerNode, ContainerSchemaNode> getContainerNodeParser() {
76 return containerNodeCnSnParser;
80 public ToNormalizedNodeParser<Node<?>, LeafNode<?>, LeafSchemaNode> getLeafNodeParser() {
81 return leafNodeCnSnParser;
85 public ToNormalizedNodeParser<Node<?>, LeafSetNode<?>, LeafListSchemaNode> getLeafSetNodeParser() {
86 return leafSetNodeCnSnParser;
90 public ToNormalizedNodeParser<Node<?>, MapNode, ListSchemaNode> getMapNodeParser() {
91 return mapNodeCnSnParser;
95 public ToNormalizedNodeParser<Node<?>, org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode, ChoiceNode> getChoiceNodeParser() {
96 return choiceNodeCnSnParser;
100 public ToNormalizedNodeParser<Node<?>, AugmentationNode, AugmentationSchema> getAugmentationNodeParser() {
101 return augmentationNodeCnSnParser;
105 public ToNormalizedNodeParser<Node<?>, LeafSetEntryNode<?>, LeafListSchemaNode> getLeafSetEntryNodeParser() {
106 return leafSetEntryNodeCnSnParser;
110 public ToNormalizedNodeParser<Node<?>, MapEntryNode, ListSchemaNode> getMapEntryNodeParser() {
111 return mapEntryNodeCnSnParser;
115 public ToNormalizedNodeParser<Node<?>, AnyXmlNode, AnyXmlSchemaNode> getAnyXmlNodeParser() {
116 return anyXmlNodeCnSnParser;
120 public ToNormalizedNodeParser<Node<?>, UnkeyedListNode, ListSchemaNode> getUnkeyedListNodeParser() {
121 return unkeyedListNodeCnSnParser;
125 public ToNormalizedNodeParser<Node<?>, UnkeyedListEntryNode, ListSchemaNode> getUnkeyedListEntryNodeParser() {
126 return unkeyedListEntryNodeCnSnParser;
130 public ToNormalizedNodeParser<Node<?>, OrderedMapNode, ListSchemaNode> getOrderedListNodeParser() {
131 return orderedListNodeCnSnParser;