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 {
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) {
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());
return instance;
}
+ @Override
+ public void setQName(QName qname) {
+ this.qname = qname;
+ }
+
+ @Override
public SchemaPath getPath() {
return schemaPath;
}
return constraints;
}
+ @Override
public String getDescription() {
return description;
}
this.description = description;
}
+ @Override
public String getReference() {
return reference;
}
this.reference = reference;
}
+ @Override
public Status getStatus() {
return status;
}
}
}
+ @Override
public boolean isAugmenting() {
return augmenting;
}
this.addedByUses = addedByUses;
}
+ @Override
public Boolean isConfiguration() {
return configuration;
}