package elw;
import elw.vo.IdNamed;
import org.akraievoy.couch.Squab;
import java.util.*;
public class ElwPackage {
public ElwPackage() { /*sealed*/ }
public static <IN extends IdNamed> Collection<List<IN>> filterDuplicateIds(Collection<IN> fullList) {
final TreeMap<String, List<IN>> idToList = new TreeMap<String, List<IN>>();
for (IN in : fullList) {
if (idToList.containsKey(in.getId())) {
idToList.get(in.getId()).add(in);
} else {
final List<IN> list = new ArrayList<IN>();
list.add(in);
idToList.put(in.getId(), list);
}
}
for (Iterator<String> idIt = idToList.keySet().iterator(); idIt.hasNext(); ) {
if (idToList.get(idIt.next()).size() == 1) {
idIt.remove();
}
}
return idToList.values();
}
public static Collection<String> mapToCouchIds(Collection<? extends Squab> squabs) {
final List<String> couchIds = new ArrayList<String>(squabs.size());
for (Squab squab : squabs) {
couchIds.add(squab.getCouchId());
}
return couchIds;
}
public static <IN extends IdNamed> Map<String, IN> groupById(Collection<IN> ins) {
final TreeMap<String, IN> idToIn = new TreeMap<String, IN>();
for (IN in : ins) {
idToIn.put(in.getId(), in);
}
return idToIn;
}
}