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    }