package net.databinder.models.ao; import java.sql.SQLException; import java.util.Arrays; import java.util.List; import net.databinder.ao.Databinder; import net.java.ao.Query; import net.java.ao.RawEntity; import org.apache.wicket.WicketRuntimeException; import org.apache.wicket.model.LoadableDetachableModel; @SuppressWarnings("unchecked") public class EntityListModel<T extends RawEntity> extends LoadableDetachableModel<List<T>> { private Class<T> entityType; private Query query; private Object managerKey; public EntityListModel(Class<T> entityType) { this (entityType, Query.select()); } public EntityListModel(Class<T> entityType, Query query) { this.entityType = entityType; this.query = query; } @Override protected List<T> load() { try { return (List<T>) Arrays.asList(Databinder.getEntityManager(managerKey).find(entityType, query)); } catch (SQLException e) { throw new WicketRuntimeException("Error loading list", e); } } public Object getManagerKey() { return managerKey; } public void setManagerKey(Object managerKey) { this.managerKey = managerKey; } }