Added more descriptive parsing exceptions.
[controller.git] / opendaylight / sal / yang-prototype / code-generator / yang-model-parser-impl / src / main / java / org / opendaylight / controller / yang / parser / builder / impl / UsesNodeBuilderImpl.java
index 3b1eb33d3940b86187848d9cd2cd08397ecae963..ee07e8be4603ac99d14f68f2c0fbaf33abc97db6 100644 (file)
@@ -20,6 +20,7 @@ import org.opendaylight.controller.yang.model.api.SchemaNode;
 import org.opendaylight.controller.yang.model.api.SchemaPath;\r
 import org.opendaylight.controller.yang.model.api.UnknownSchemaNode;\r
 import org.opendaylight.controller.yang.model.api.UsesNode;\r
+import org.opendaylight.controller.yang.parser.builder.api.AbstractBuilder;\r
 import org.opendaylight.controller.yang.parser.builder.api.AugmentationSchemaBuilder;\r
 import org.opendaylight.controller.yang.parser.builder.api.Builder;\r
 import org.opendaylight.controller.yang.parser.builder.api.DataNodeContainerBuilder;\r
@@ -28,10 +29,9 @@ import org.opendaylight.controller.yang.parser.builder.api.UsesNodeBuilder;
 import org.opendaylight.controller.yang.parser.util.RefineHolder;\r
 import org.opendaylight.controller.yang.parser.util.YangParseException;\r
 \r
-public final class UsesNodeBuilderImpl implements UsesNodeBuilder {\r
+public final class UsesNodeBuilderImpl extends AbstractBuilder implements UsesNodeBuilder {\r
     private boolean isBuilt;\r
     private UsesNodeImpl instance;\r
-    private final int line;\r
     private DataNodeContainerBuilder parent;\r
     private final String groupingName;\r
     private SchemaPath groupingPath;\r
@@ -40,16 +40,15 @@ public final class UsesNodeBuilderImpl implements UsesNodeBuilder {
     private final Set<AugmentationSchemaBuilder> addedAugments = new HashSet<AugmentationSchemaBuilder>();\r
     private final List<SchemaNodeBuilder> refineBuilders = new ArrayList<SchemaNodeBuilder>();\r
     private final List<RefineHolder> refines = new ArrayList<RefineHolder>();\r
-    private final List<UnknownSchemaNodeBuilder> addedUnknownNodes = new ArrayList<UnknownSchemaNodeBuilder>();\r
 \r
-    public UsesNodeBuilderImpl(final int line, final String groupingName) {\r
+    public UsesNodeBuilderImpl(final String moduleName, final int line, final String groupingName) {\r
+        super(moduleName, line);\r
         this.groupingName = groupingName;\r
-        this.line = line;\r
     }\r
 \r
     public UsesNodeBuilderImpl(UsesNodeBuilder b) {\r
+        super(b.getModuleName(), b.getLine());\r
         groupingName = b.getGroupingName();\r
-        line = b.getLine();\r
         parent = b.getParent();\r
         groupingPath = b.getGroupingPath();\r
         augmenting = b.isAugmenting();\r
@@ -93,11 +92,6 @@ public final class UsesNodeBuilderImpl implements UsesNodeBuilder {
         return instance;\r
     }\r
 \r
-    @Override\r
-    public int getLine() {\r
-        return line;\r
-    }\r
-\r
     @Override\r
     public DataNodeContainerBuilder getParent() {\r
         return parent;\r
@@ -106,7 +100,7 @@ public final class UsesNodeBuilderImpl implements UsesNodeBuilder {
     @Override\r
     public void setParent(Builder parent) {\r
         if (!(parent instanceof DataNodeContainerBuilder)) {\r
-            throw new YangParseException(line, "Unresolved parent of uses '" + groupingName + "'.");\r
+            throw new YangParseException(moduleName, line, "Unresolved parent of uses '" + groupingName + "'.");\r
         }\r
         this.parent = (DataNodeContainerBuilder) parent;\r
     }\r
@@ -176,16 +170,6 @@ public final class UsesNodeBuilderImpl implements UsesNodeBuilder {
         refines.add(refine);\r
     }\r
 \r
-    @Override\r
-    public List<UnknownSchemaNodeBuilder> getUnknownNodeBuilders() {\r
-        return addedUnknownNodes;\r
-    }\r
-\r
-    @Override\r
-    public void addUnknownNodeBuilder(UnknownSchemaNodeBuilder unknownNode) {\r
-        addedUnknownNodes.add(unknownNode);\r
-    }\r
-\r
     @Override\r
     public int hashCode() {\r
         final int prime = 31;\r