Temporary disabled method getDerivedIdentities() from IdentitySchemaNode.
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / builder / impl / LeafSchemaNodeBuilder.java
index 3ee60d8fd9df73902e64f0011a7ce23d309462ca..303ee73db0b16325cc24a290c7c18077fb4e10d6 100644 (file)
@@ -22,6 +22,7 @@ import org.opendaylight.yangtools.yang.parser.builder.api.AbstractTypeAwareBuild
 import org.opendaylight.yangtools.yang.parser.builder.api.DataSchemaNodeBuilder;
 import org.opendaylight.yangtools.yang.parser.builder.api.GroupingMember;
 import org.opendaylight.yangtools.yang.parser.util.Comparators;
+import org.opendaylight.yangtools.yang.parser.util.YangParseException;
 
 public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implements DataSchemaNodeBuilder,
         GroupingMember {
@@ -48,28 +49,6 @@ public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implem
         constraints = new ConstraintsBuilder(moduleName, line);
     }
 
-    public LeafSchemaNodeBuilder(final LeafSchemaNodeBuilder b, final QName qname) {
-        super(b.getModuleName(), b.getLine(), qname);
-        instance = new LeafSchemaNodeImpl(qname);
-        constraints = new ConstraintsBuilder(b.getConstraints());
-        schemaPath = b.getPath();
-
-        type = b.getType();
-        typedef = b.getTypedef();
-
-        description = b.getDescription();
-        reference = b.getReference();
-        status = b.getStatus();
-        augmenting = b.isAugmenting();
-        addedByUses = b.isAddedByUses();
-        configuration = b.isConfiguration();
-        unknownNodes = b.unknownNodes;
-        addedUnknownNodes.addAll(b.getUnknownNodeBuilders());
-
-        defaultStr = b.getDefaultStr();
-        unitsStr = b.getUnits();
-    }
-
     @Override
     public LeafSchemaNode build() {
         if (!isBuilt) {
@@ -84,6 +63,10 @@ public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implem
             instance.setDefault(defaultStr);
             instance.setUnits(unitsStr);
 
+            if (type == null && typedef == null) {
+                throw new YangParseException(moduleName, line, "Failed to resolve leaf type.");
+            }
+
             // TYPE
             if (type == null) {
                 instance.setType(typedef.build());
@@ -106,6 +89,12 @@ public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implem
         return instance;
     }
 
+    @Override
+    public void setQName(QName qname) {
+        this.qname = qname;
+    }
+
+    @Override
     public SchemaPath getPath() {
         return schemaPath;
     }
@@ -120,6 +109,7 @@ public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implem
         return constraints;
     }
 
+    @Override
     public String getDescription() {
         return description;
     }
@@ -129,6 +119,7 @@ public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implem
         this.description = description;
     }
 
+    @Override
     public String getReference() {
         return reference;
     }
@@ -138,6 +129,7 @@ public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implem
         this.reference = reference;
     }
 
+    @Override
     public Status getStatus() {
         return status;
     }
@@ -149,6 +141,7 @@ public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implem
         }
     }
 
+    @Override
     public boolean isAugmenting() {
         return augmenting;
     }
@@ -168,6 +161,7 @@ public final class LeafSchemaNodeBuilder extends AbstractTypeAwareBuilder implem
         this.addedByUses = addedByUses;
     }
 
+    @Override
     public Boolean isConfiguration() {
         return configuration;
     }