code: function () {
              var self = this;
              Y.log('External data received, mixing', 'info', 'builder');
              self.options.externalData.forEach(function (exData) {
  
                  ['files', 'classes', 'modules'].forEach(function (k) {
                      Y.each(exData[k], function (item, key) {
                          item.external = true;
                          var file = item.name;
                          if (!item.file) {
                              file = self.filterFileName(item.name);
                          }
  
                          if (item.type) {
                              item.type = fixType(item.type);
                          }
  
                          item.path = exData.base + path.join(k, file + '.html');
  
                          self.data[k][key] = item;
                      });
                  });
                  Y.each(exData.classitems, function (item) {
                      item.external = true;
                      item.path = exData.base + path.join('files', self.filterFileName(item.file) + '.html');
                      if (item.type) {
                          item.type = fixType(item.type);
                      }
                      if (item.params) {
                          item.params.forEach(function (p) {
                              if (p.type) {
                                  p.type = fixType(p.type);
                              }
                          });
                      }
                      if (item["return"]) {
                          item["return"].type = fixType(item["return"].type);
                      }
                      self.data.classitems.push(item);
                  });
              });
          }
docs: Mixes the various external data soures together into the local data, augmenting
  it with flags.
  @method _mixExternal
  @private