// does not store null values static Map indexFieldAsCIMap(Iterable c, S field) { Map map = ciMap(); for (A a : unnull(c)) { S val = getString(a, field); if (val != null) map.put(val, a); } ret map; } static Map indexFieldAsCIMap(S field, Iterable c) { ret indexFieldAsCIMap(c, field); }