package org.ovirt.engine.core.common.scheduling; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.validation.constraints.NotNull; import org.ovirt.engine.core.compat.Guid; public class PerHostMessages { Map<Guid, List<String>> messages; public PerHostMessages() { messages = new HashMap<>(); } public void addMessage(Guid hostId, String message) { ensureHost(hostId); messages.get(hostId).add(message); } private void ensureHost(Guid hostId) { if (!messages.containsKey(hostId)) { messages.put(hostId, new ArrayList<String>()); } } public void addMessages(Guid hostId, Collection<? extends String> message) { ensureHost(hostId); messages.get(hostId).addAll(message); } public Map<Guid, List<String>> getMessages() { return messages; } @NotNull public List<String> getMessages(Guid hostId) { if (messages.containsKey(hostId)) { return messages.get(hostId); } else { return Collections.emptyList(); } } }