Added line number to error messages.
[controller.git] / opendaylight / sal / yang-prototype / code-generator / yang-model-parser-impl / src / main / java / org / opendaylight / controller / yang / model / parser / builder / impl / TypedefBuilder.java
index 64df8c265a42d99e6a902af5b9b7a53c24dfd036..94b46e6360caeb64c12854c1a90e6b68c3f83f9f 100644 (file)
@@ -27,6 +27,7 @@ import org.opendaylight.controller.yang.model.util.UnknownType;
 
 public class TypedefBuilder extends AbstractTypeAwareBuilder implements
         TypeDefinitionBuilder {
+    private final int line;
     private final QName qname;
     private SchemaPath schemaPath;
 
@@ -38,12 +39,13 @@ public class TypedefBuilder extends AbstractTypeAwareBuilder implements
 
     private String description;
     private String reference;
-    private Status status;
+    private Status status = Status.CURRENT;
     private String units;
     private Object defaultValue;
 
-    public TypedefBuilder(QName qname) {
+    public TypedefBuilder(final QName qname, final int line) {
         this.qname = qname;
+        this.line = line;
     }
 
     @Override
@@ -55,12 +57,12 @@ public class TypedefBuilder extends AbstractTypeAwareBuilder implements
                     + qname.getLocalName() + "'.");
         }
         if (type == null || type instanceof UnknownType) {
-            typeBuilder = new ExtendedType.Builder(qname, typedef.build(),
-                    description, reference);
-        } else {
-            typeBuilder = new ExtendedType.Builder(qname, type, description,
-                    reference);
+            type = typedef.build();
         }
+
+        typeBuilder = new ExtendedType.Builder(qname, type, description,
+                reference, schemaPath);
+
         typeBuilder.status(status);
         typeBuilder.units(units);
         typeBuilder.defaultValue(defaultValue);
@@ -68,6 +70,7 @@ public class TypedefBuilder extends AbstractTypeAwareBuilder implements
         typeBuilder.ranges(ranges);
         typeBuilder.lengths(lengths);
         typeBuilder.patterns(patterns);
+        typeBuilder.fractionDigits(fractionDigits);
 
         // UNKNOWN NODES
         final List<UnknownSchemaNode> unknownNodes = new ArrayList<UnknownSchemaNode>();
@@ -79,6 +82,11 @@ public class TypedefBuilder extends AbstractTypeAwareBuilder implements
         return result;
     }
 
+    @Override
+    public int getLine() {
+        return line;
+    }
+
     @Override
     public QName getQName() {
         return qname;
@@ -132,7 +140,7 @@ public class TypedefBuilder extends AbstractTypeAwareBuilder implements
     }
 
     @Override
-    public void setUnits(String units) {
+    public void setUnits(final String units) {
         this.units = units;
     }
 
@@ -142,7 +150,7 @@ public class TypedefBuilder extends AbstractTypeAwareBuilder implements
     }
 
     @Override
-    public void setDefaultValue(Object defaultValue) {
+    public void setDefaultValue(final Object defaultValue) {
         this.defaultValue = defaultValue;
     }
 
@@ -152,7 +160,7 @@ public class TypedefBuilder extends AbstractTypeAwareBuilder implements
     }
 
     @Override
-    public void addUnknownSchemaNode(UnknownSchemaNodeBuilder unknownNode) {
+    public void addUnknownSchemaNode(final UnknownSchemaNodeBuilder unknownNode) {
         addedUnknownNodes.add(unknownNode);
     }
 
@@ -162,7 +170,7 @@ public class TypedefBuilder extends AbstractTypeAwareBuilder implements
     }
 
     @Override
-    public void setRanges(List<RangeConstraint> ranges) {
+    public void setRanges(final List<RangeConstraint> ranges) {
         if (ranges != null) {
             this.ranges = ranges;
         }
@@ -174,7 +182,7 @@ public class TypedefBuilder extends AbstractTypeAwareBuilder implements
     }
 
     @Override
-    public void setLengths(List<LengthConstraint> lengths) {
+    public void setLengths(final List<LengthConstraint> lengths) {
         if (lengths != null) {
             this.lengths = lengths;
         }
@@ -186,7 +194,7 @@ public class TypedefBuilder extends AbstractTypeAwareBuilder implements
     }
 
     @Override
-    public void setPatterns(List<PatternConstraint> patterns) {
+    public void setPatterns(final List<PatternConstraint> patterns) {
         if (patterns != null) {
             this.patterns = patterns;
         }
@@ -198,21 +206,22 @@ public class TypedefBuilder extends AbstractTypeAwareBuilder implements
     }
 
     @Override
-    public void setFractionDigits(Integer fractionDigits) {
+    public void setFractionDigits(final Integer fractionDigits) {
         this.fractionDigits = fractionDigits;
     }
 
     @Override
     public String toString() {
-        String result = "TypedefBuilder[" + qname.getLocalName();
-        result += ", type=";
+        final StringBuilder result = new StringBuilder("TypedefBuilder["
+                + qname.getLocalName());
+        result.append(", type=");
         if (type == null) {
-            result += typedef;
+            result.append(typedef);
         } else {
-            result += type;
+            result.append(type);
         }
-        result += "]";
-        return result;
+        result.append("]");
+        return result.toString();
     }
 
 }