package org.ovirt.engine.core.utils.violation; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; import org.ovirt.engine.core.utils.ReplacementUtils; import org.ovirt.engine.core.utils.collections.MultiValueMapUtils; import org.ovirt.engine.core.utils.collections.MultiValueMapUtils.LinkedHashSetCreator; final class ViolatingEntityDetails implements ViolationRenderer { private final Map<String, Set<String>> details = new LinkedHashMap<>(); ViolatingEntityDetails(String detailName, String detailValue) { addDetail(detailName, detailValue); } void addDetail(String detailName, String detailValue) { MultiValueMapUtils.addToMap(detailName, detailValue, details, new LinkedHashSetCreator<>()); } @Override public List<String> render() { final List<String> result = new ArrayList<>(details.size()); for (Entry<String, Set<String>> detailEntry : details.entrySet()) { final String detailName = detailEntry.getKey(); final Set<String> detailValues = detailEntry.getValue(); result.addAll(ReplacementUtils.replaceWith(detailName, detailValues)); } return result; } }