/** * Computes the module builds that correspond to this build. * * <p>A module may be built multiple times (by the user action), so the value is a list. */ public Map<IvyModule, List<IvyBuild>> getModuleBuilds() { Collection<IvyModule> mods = getParent().getModules(); // identify the build number range. [start,end) IvyModuleSetBuild nb = getNextBuild(); int end = nb != null ? nb.getNumber() : Integer.MAX_VALUE; // preserve the order by using LinkedHashMap Map<IvyModule, List<IvyBuild>> r = new LinkedHashMap<IvyModule, List<IvyBuild>>(mods.size()); for (IvyModule m : mods) { List<IvyBuild> builds = new ArrayList<IvyBuild>(); IvyBuild b = m.getNearestBuild(number); while (b != null && b.getNumber() < end) { builds.add(b); b = b.getNextBuild(); } r.put(m, builds); } return r; }