package org.quaere; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.HashMap; public class Group { private final Object key; private final List<Object> group; public Group(Object key) { this.key = key; group = new ArrayList<Object>(); } public Group(Object key, List<Object> values) { this.key = key; this.group = values; } public List<Object> getGroup() { return group; } public Object getKey() { return key; } public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; Group group1 = (Group) o; if (group != null ? !group.equals(group1.group) : group1.group != null) return false; if (key != null ? !key.equals(group1.key) : group1.key != null) return false; return true; } public int hashCode() { int result; result = (key != null ? key.hashCode() : 0); result = 31 * result + (group != null ? group.hashCode() : 0); return result; } public String toString() { return String.format("%s: %s", key, group); } public static List<Group> fromMap(Map<Object, List<Object>> map) { List<Group> groups = new ArrayList<Group>(); for (Object key : map.keySet()) { groups.add(new Group(key, map.get(key))); } return groups; } }