@Override public Map<Requirement, Collection<Capability>> findProviders(Collection<? extends Requirement> requirements) { Map<Requirement, Collection<Capability>> fromRepos = repository.findProviders(requirements); for (Requirement requirement : requirements) { List<Capability> provided = new ArrayList<>(); boolean replaced = false; for (Capability originalCapability : fromRepos.get(requirement)) { if (isValid(originalCapability)) { Capability wrappedCapability = wrapped.get(originalCapability); if (wrappedCapability != null) { provided.add(wrappedCapability); replaced = true; } else provided.add(originalCapability); } } Collection<Capability> additional = ResourceUtils.findProviders(requirement, augmentedCapabilities); replaced |= provided.addAll(additional); if (replaced) fromRepos.put(requirement, provided); } return fromRepos; }
@Override public Map<Requirement, Collection<Capability>> findProviders(Collection<? extends Requirement> requirements) { Map<Requirement, Collection<Capability>> fromRepos = repository.findProviders(requirements); for (Requirement requirement : requirements) { List<Capability> provided = new ArrayList<>(); boolean replaced = false; for (Capability originalCapability : fromRepos.get(requirement)) { if (isValid(originalCapability)) { Capability wrappedCapability = wrapped.get(originalCapability); if (wrappedCapability != null) { provided.add(wrappedCapability); replaced = true; } else provided.add(originalCapability); } } Collection<Capability> additional = ResourceUtils.findProviders(requirement, augmentedCapabilities); replaced |= provided.addAll(additional); if (replaced) fromRepos.put(requirement, provided); } return fromRepos; }