@Override
 public final DataSchemaNodeBuilder getDataChildByName(final String name) {
   for (DataSchemaNodeBuilder child : addedChildNodes) {
     if (child.getQName().getLocalName().equals(name)) {
       return child;
     }
   }
   return null;
 }
  protected void buildChildren() {
    checkNotSealed();
    seal();

    for (DataSchemaNodeBuilder node : addedChildNodes) {
      childNodes.put(node.getQName(), node.build());
    }

    for (GroupingBuilder builder : addedGroupings) {
      groupings.add(builder.build());
    }

    for (TypeDefinitionBuilder entry : addedTypedefs) {
      typedefs.add(entry.build());
    }

    for (UsesNodeBuilder builder : addedUsesNodes) {
      usesNodes.add(builder.build());
    }
  }
 private void checkIsPresent(final DataSchemaNodeBuilder child) {
   for (DataSchemaNodeBuilder addedChildNode : addedChildNodes) {
     if (addedChildNode.getQName().equals(child.getQName())) {
       throw new YangParseException(
           child.getModuleName(),
           child.getLine(),
           String.format(
               "Can not add '%s' to '%s' in module '%s': node with same name already declared at line %d",
               child, this, getModuleName(), addedChildNode.getLine()));
     }
   }
 }