code: public NodeTypeData build()
     {
        if (nodeDefinitionDataBuilders.size() > 0)
        {
           childNodeDefinitions = new NodeDefinitionData[nodeDefinitionDataBuilders.size()];
           for (int i = 0; i < childNodeDefinitions.length; i++)
           {
              childNodeDefinitions[i] = nodeDefinitionDataBuilders.get(i).build();
           }
        }
        if (propertyDefinitionDataBuilders.size() > 0)
        {
           propertyDefinitions = new PropertyDefinitionData[propertyDefinitionDataBuilders.size()];
           for (int i = 0; i < propertyDefinitions.length; i++)
           {
              propertyDefinitions[i] = propertyDefinitionDataBuilders.get(i).build();
           }
        }
        return new NodeTypeDataImpl(name, primaryItemName, isMixin, isOrderable,  supertypes,
           propertyDefinitions, childNodeDefinitions);
     }
docs: Creates instance of NodeTypeData using parameters stored in this object.
  
  @return NodeTypeData