code: private IntermediateParseResults getEntityTypeFromSource(RepositoryCollection source) {
      IntermediateParseResults intermediateResults = parseTagsSheet(source.getRepository(EMX_TAGS));
  
      parsePackagesSheet(source.getRepository(EMX_PACKAGES), intermediateResults);
      parseEntitiesSheet(source.getRepository(EMX_ENTITIES), intermediateResults);
      parseAttributesSheet(source.getRepository(EMX_ATTRIBUTES), intermediateResults);
      reiterateToMapRefEntity(source.getRepository(EMX_ATTRIBUTES), intermediateResults);
  
      // languages tab
      if (source.hasRepository(EMX_LANGUAGES))
        parseLanguages(source.getRepository(EMX_LANGUAGES), intermediateResults);
  
      // i18nstrings tab
      if (source.hasRepository(EMX_I18NSTRINGS))
        parseI18nStrings(source.getRepository(EMX_I18NSTRINGS), intermediateResults);
  
      postProcessMetadata(intermediateResults);
  
      return intermediateResults;
    }
docs: Parses metadata from a collection of repositories.
  
  @param source the {@link RepositoryCollection} containing the metadata to parse
  @return {@link IntermediateParseResults} containing the parsed metadata