Merge "removed dead code that was causing a warning"
[controller.git] / opendaylight / sal / yang-prototype / code-generator / yang-model-parser-impl / src / main / java / org / opendaylight / controller / model / parser / builder / UsesNodeBuilderImpl.java
1 /*\r
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.controller.model.parser.builder;\r
9 \r
10 import java.util.ArrayList;\r
11 import java.util.List;\r
12 \r
13 import org.opendaylight.controller.model.parser.api.AugmentationSchemaBuilder;\r
14 import org.opendaylight.controller.model.parser.api.Builder;\r
15 import org.opendaylight.controller.model.parser.api.UsesNodeBuilder;\r
16 import org.opendaylight.controller.yang.common.QName;\r
17 import org.opendaylight.controller.yang.model.api.SchemaPath;\r
18 import org.opendaylight.controller.yang.model.api.UsesNode;\r
19 \r
20 public class UsesNodeBuilderImpl implements UsesNodeBuilder, Builder {\r
21 \r
22     private final String groupingPathStr;\r
23 \r
24     UsesNodeBuilderImpl(String groupingPathStr) {\r
25         this.groupingPathStr = groupingPathStr;\r
26     }\r
27 \r
28     @Override\r
29     public UsesNode build() {\r
30         SchemaPath groupingPath = parseUsesPath(groupingPathStr);\r
31         final UsesNodeImpl instance = new UsesNodeImpl(groupingPath);\r
32         return instance;\r
33     }\r
34 \r
35     public void addAugment(AugmentationSchemaBuilder augmentBuilder) {\r
36         // TODO:\r
37     }\r
38 \r
39     private SchemaPath parseUsesPath(String augmentPath) {\r
40         String[] splittedPath = augmentPath.split("/");\r
41         List<QName> path = new ArrayList<QName>();\r
42         QName name;\r
43         for (String pathElement : splittedPath) {\r
44             String[] splittedElement = pathElement.split(":");\r
45             if (splittedElement.length == 1) {\r
46                 name = new QName(null, null, null, splittedElement[0]);\r
47             } else {\r
48                 name = new QName(null, null, splittedElement[0],\r
49                         splittedElement[1]);\r
50             }\r
51             path.add(name);\r
52         }\r
53         // TODO: absolute vs relative?\r
54         return new SchemaPath(path, false);\r
55     }\r
56 \r
57     private static class UsesNodeImpl implements UsesNode {\r
58 \r
59         private final SchemaPath groupingPath;\r
60 \r
61         private UsesNodeImpl(SchemaPath groupingPath) {\r
62             this.groupingPath = groupingPath;\r
63         }\r
64 \r
65         @Override\r
66         public SchemaPath getGroupingPath() {\r
67             return groupingPath;\r
68         }\r
69 \r
70         @Override\r
71         public String toString() {\r
72             return UsesNodeImpl.class.getSimpleName() + "[groupingPath="\r
73                     + groupingPath + "]";\r
74         }\r
75 \r
76     }\r
77 \r
78 }\r