package pl.net.bluesoft.util.lang.cquery;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
/**
* User: POlszewski
* Date: 2011-07-29
*/
public final class GroupByCollection<K, V> extends CQueryCollection<Grouping<K, V>> {
private final Map<K, List<V>> groups;
public GroupByCollection(Map<K, List<V>> groups) {
this.groups = groups;
}
@Override
public Iterator<Grouping<K, V>> iterator() {
return new CQueryIterator<Map.Entry<K, List<V>>, Grouping<K, V>>(groups.entrySet().iterator()) {
@Override
public boolean hasNext() {
return iterator.hasNext();
}
@Override
public Grouping<K, V> next() {
Map.Entry<K, List<V>> kv = iterator.next();
return new Grouping<K, V>(kv.getKey(), kv.getValue());
}
};
}
public Map<K, List<V>> toMap() {
return groups;
}
}