package br.com.caelum.calopsita.plugins.prioritization;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.collections.Factory;
import org.apache.commons.collections.list.LazyList;
import org.hibernate.Session;
import br.com.caelum.calopsita.model.Card;
import br.com.caelum.calopsita.model.Project;
import br.com.caelum.vraptor.ioc.Component;
@Component
public class PrioritizationDao implements PrioritizationRepository {
private final Session session;
public PrioritizationDao(Session session) {
this.session = session;
}
public PrioritizableCard load(PrioritizableCard card) {
return (PrioritizableCard) session.load(PrioritizableCard.class, card.getId());
}
public List<List<Card>> listCards(Project project) {
List<List<Card>> result = LazyList.decorate(new ArrayList<List<Card>>(), new Factory() {
public Object create() {
return new ArrayList<Card>();
}
});
for (Card card : project.getAllToDoCards()) {
PrioritizableCard gadget = card.getGadget(PrioritizableCard.class);
if(gadget != null)
result.get(gadget.getPriority()).add(card);
}
for (int i = 0; i < result.size(); i++) {
result.get(i);
}
return result;
}
}