package pl.net.bluesoft.util.lang; import org.apache.commons.beanutils.PropertyUtils; import pl.net.bluesoft.util.lang.exception.UtilityInvocationException; import java.util.*; /** * @author tlipski@bluesoft.net.pl */ public abstract class MapUtil { private MapUtil() {} public static <T1, T2> Map<T1,T2> collectionToMap(Collection<T2> collection, String key) { Map<T1,T2> m = new HashMap(collection.size()); for (T2 o : collection) { try { m.put((T1) PropertyUtils.getProperty(o, key), o); } catch (Exception e) { throw new UtilityInvocationException(key, e); } } return m; } public static <T1, T2> List<T2> getListFromMap(Map<T1,List<T2>> map, T1 key) { List<T2> list = map.get(key); if (list == null) { list = new LinkedList(); map.put(key, list); } return list; } public static <T1, T2> Set<T2> getSetFromMap(Map<T1,Set<T2>> map, T1 key) { Set<T2> list = map.get(key); if (list == null) { list = new HashSet(); map.put(key, list); } return list; } }