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.impl.schema.transform.ToNormalizedNodeParser;
20 import org.opendaylight.yangtools.yang.data.impl.schema.transform.ToNormalizedNodeParserFactory;
21 import org.opendaylight.yangtools.yang.data.impl.schema.transform.base.parser.NodeParserDispatcher;
22 import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode;
23 import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
24 import org.opendaylight.yangtools.yang.model.api.ChoiceNode;
25 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
26 import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
27 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
28 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
30 public class CnSnToNormalizedNodeParserFactory implements ToNormalizedNodeParserFactory<Node<?>> {
32 private final ContainerNodeCnSnParser containerNodeCnSnParser;
33 private final LeafNodeCnSnParser leafNodeCnSnParser;
34 private final LeafSetEntryNodeCnSnParser leafSetEntryNodeCnSnParser;
35 private final LeafSetNodeCnSnParser leafSetNodeCnSnParser;
36 private final MapNodeCnSnParser mapNodeCnSnParser;
37 private final MapEntryNodeCnSnParser mapEntryNodeCnSnParser;
38 private final ChoiceNodeCnSnParser choiceNodeCnSnParser;
39 private final AugmentationNodeCnSnParser augmentationNodeCnSnParser;
40 private final AnyXmlNodeCnSnParser anyXmlNodeCnSnParser;
42 private CnSnToNormalizedNodeParserFactory() {
43 leafNodeCnSnParser = new LeafNodeCnSnParser();
44 leafSetEntryNodeCnSnParser = new LeafSetEntryNodeCnSnParser();
45 leafSetNodeCnSnParser = new LeafSetNodeCnSnParser(leafSetEntryNodeCnSnParser);
46 anyXmlNodeCnSnParser = new AnyXmlNodeCnSnParser();
48 final NodeParserDispatcher<Node<?>> dispatcher = new NodeParserDispatcher.BaseNodeParserDispatcher<Node<?>>(
53 containerNodeCnSnParser = new ContainerNodeCnSnParser(dispatcher);
54 mapEntryNodeCnSnParser = new MapEntryNodeCnSnParser(dispatcher);
55 mapNodeCnSnParser = new MapNodeCnSnParser(mapEntryNodeCnSnParser);
56 choiceNodeCnSnParser = new ChoiceNodeCnSnParser(dispatcher);
57 augmentationNodeCnSnParser = new AugmentationNodeCnSnParser(dispatcher);
61 public static CnSnToNormalizedNodeParserFactory getInstance() {
62 return new CnSnToNormalizedNodeParserFactory();
66 public ToNormalizedNodeParser<Node<?>, ContainerNode, ContainerSchemaNode> getContainerNodeParser() {
67 return containerNodeCnSnParser;
71 public ToNormalizedNodeParser<Node<?>, LeafNode<?>, LeafSchemaNode> getLeafNodeParser() {
72 return leafNodeCnSnParser;
76 public ToNormalizedNodeParser<Node<?>, LeafSetNode<?>, LeafListSchemaNode> getLeafSetNodeParser() {
77 return leafSetNodeCnSnParser;
81 public ToNormalizedNodeParser<Node<?>, MapNode, ListSchemaNode> getMapNodeParser() {
82 return mapNodeCnSnParser;
86 public ToNormalizedNodeParser<Node<?>, org.opendaylight.yangtools.yang.data.api.schema.ChoiceNode, ChoiceNode> getChoiceNodeParser() {
87 return choiceNodeCnSnParser;
91 public ToNormalizedNodeParser<Node<?>, AugmentationNode, AugmentationSchema> getAugmentationNodeParser() {
92 return augmentationNodeCnSnParser;
96 public ToNormalizedNodeParser<Node<?>, LeafSetEntryNode<?>, LeafListSchemaNode> getLeafSetEntryNodeParser() {
97 return leafSetEntryNodeCnSnParser;
101 public ToNormalizedNodeParser<Node<?>, MapEntryNode, ListSchemaNode> getMapEntryNodeParser() {
102 return mapEntryNodeCnSnParser;
106 public ToNormalizedNodeParser<Node<?>, AnyXmlNode, AnyXmlSchemaNode> getAnyXmlNodeParser() {
107 return anyXmlNodeCnSnParser;