001 package net.databinder.models.ao;
002
003 import java.sql.SQLException;
004 import java.util.Arrays;
005 import java.util.List;
006
007 import net.databinder.ao.Databinder;
008 import net.java.ao.Query;
009 import net.java.ao.RawEntity;
010
011 import org.apache.wicket.WicketRuntimeException;
012 import org.apache.wicket.model.LoadableDetachableModel;
013
014 @SuppressWarnings("unchecked")
015 public class EntityListModel extends LoadableDetachableModel {
016
017 private Class entityType;
018 private Query query;
019 private Object managerKey;
020
021 public EntityListModel(Class entityType) {
022 this (entityType, Query.select());
023 }
024 public EntityListModel(Class entityType, Query query) {
025 this.entityType = entityType;
026 this.query = query;
027 }
028
029 @Override
030 protected List<RawEntity> load() {
031 try {
032 return Arrays.asList(Databinder.getEntityManager(managerKey).find(entityType, query));
033 } catch (SQLException e) {
034 throw new WicketRuntimeException("Error loading list", e);
035 }
036 }
037 public Object getManagerKey() {
038 return managerKey;
039 }
040 public void setManagerKey(Object managerKey) {
041 this.managerKey = managerKey;
042 }
043 }