docs: public Map<ResourceType, Collection<? extends RepositoryResource>> getResources(Collection<ProductDefinition> productDefinitions,
                                                                                      Collection<ResourceType> types,
                                                                                      Visibility visibility) throws RepositoryBackendException {
          // If there's only one connection, just return the result from it
          if (this.size() == 1) {
              return this.get(0).getResources(productDefinitions, types, visibility);
          }
  
          // Otherwise, we need to merge the results
          Map<ResourceType, ResourceCollector<RepositoryResource>> combinedMap = new HashMap<ResourceType, ResourceCollector<RepositoryResource>>();
  
          for (RepositoryConnection connection : this) {
              AbstractRepositoryConnection conn = (AbstractRepositoryConnection) connection;
  
              Map<ResourceType, Collection<? extends RepositoryResource>> singleRepo = conn.getResources(productDefinitions, types, visibility);
              for (Entry<ResourceType, Collection<? extends RepositoryResource>> entry : singleRepo.entrySet()) {
  
                  Collection<? extends RepositoryResource> singleType = entry.getValue();
  
                  ResourceCollector<RepositoryResource> overallType = combinedMap.get(entry.getKey());
                  if (overallType == null) {
                      overallType = new ResourceCollector<RepositoryResource>(DuplicatePolicy.FORBID_DUPLICATES);
                      combinedMap.put(entry.getKey(), overallType);
                  }
  
                  overallType.addAll(singleType);
              }
          }
  
          Map<ResourceType, Collection<? extends RepositoryResource>> returnMap = new HashMap<ResourceType, Collection<? extends RepositoryResource>>();
  
          for (Entry<ResourceType, ResourceCollector<RepositoryResource>> entry : combinedMap.entrySet()) {
              returnMap.put(entry.getKey(), entry.getValue().getResourceCollection());
          }
  
          return returnMap;
      }