/** * Groups remote repositories by their relative subdirectories. * Builds a map where key - directory, * and value - list of repositories with this directory. * * @param repositories list of remote repositories * @return map with repositories grouped by subdirectory. */ private Map<String, List<RemoteConfig>> getRemoteConfigMap(List<RemoteConfig> repositories) { Map<String, List<RemoteConfig>> map = new HashMap<String, List<RemoteConfig>>(); for (RemoteConfig repo : repositories) { String targetDir = getRemoteConfigTargetDir(repo); List<RemoteConfig> repos = map.get(targetDir); if (null == repos) { repos = new ArrayList<RemoteConfig>(); map.put(targetDir, repos); } repos.add(repo); } return map; }
/** * Expand parameters in {@link #remoteRepositories} with the parameter values provided in the given build * and return them. * * @return can be empty but never null. */ public List<RemoteConfig> getParamExpandedRepos(AbstractBuild<?, ?> build) { List<RemoteConfig> expandedRepos = new ArrayList<RemoteConfig>(); for (RemoteConfig oldRepo : Util.fixNull(remoteRepositories)) { expandedRepos.add(newRemoteConfig(oldRepo.getName(), oldRepo.getURIs().get(0).toPrivateString(), new RefSpec(getRefSpec(oldRepo, build)), getRemoteConfigTargetDir(oldRepo))); } return expandedRepos; }