Coverage Report - org.trails.component.HibernateTableModel
 
Classes in this File Line Coverage Branch Coverage Complexity
HibernateTableModel
79% 
100% 
1.143
 
 1  
 package org.trails.component;
 2  
 
 3  
 import java.util.Iterator;
 4  
 
 5  
 import org.apache.commons.lang.SerializationUtils;
 6  
 import org.apache.tapestry.contrib.table.model.IBasicTableModel;
 7  
 import org.apache.tapestry.contrib.table.model.ITableColumn;
 8  
 import org.hibernate.criterion.DetachedCriteria;
 9  
 import org.hibernate.criterion.Order;
 10  
 import org.trails.persistence.HibernatePersistenceService;
 11  
 
 12  
 public class HibernateTableModel implements IBasicTableModel
 13  
 {
 14  
 
 15  
         private HibernatePersistenceService persistenceService;
 16  
 
 17  
         private Class entityType;
 18  
         private DetachedCriteria criteria;
 19  
 
 20  
         public HibernateTableModel(Class entityType, HibernatePersistenceService persistenceService, DetachedCriteria criteria)
 21  
         {
 22  2
                 super();
 23  2
                 this.entityType = entityType;
 24  2
                 this.persistenceService = persistenceService;
 25  2
                 this.criteria = criteria;
 26  2
         }
 27  
 
 28  
         public HibernatePersistenceService getPersistenceService()
 29  
         {
 30  2
                 return persistenceService;
 31  
         }
 32  
 
 33  
         public void setPersistenceService(HibernatePersistenceService persistenceService)
 34  
         {
 35  0
                 this.persistenceService = persistenceService;
 36  0
         }
 37  
 
 38  
         public DetachedCriteria getCriteria()
 39  
         {
 40  2
                 return criteria;
 41  
         }
 42  
 
 43  
         public void setCriteria(DetachedCriteria criteria)
 44  
         {
 45  0
                 this.criteria = criteria;
 46  0
         }
 47  
 
 48  
         public Iterator getCurrentPageRows(int startIndex, int maxResults, ITableColumn column,
 49  
                                                                            boolean asc)
 50  
         {
 51  1
                 DetachedCriteria clonedCriteria = (DetachedCriteria) SerializationUtils.clone(getCriteria());
 52  1
                 TrailsTableColumn trailsTableColumn = (TrailsTableColumn) column;
 53  1
                 if (trailsTableColumn != null)
 54  
                 {
 55  1
                         String sortProperty = trailsTableColumn.getPropertyDescriptor().getName();
 56  1
                         clonedCriteria.addOrder(asc ? Order.asc(sortProperty) : Order.desc(sortProperty));
 57  
                 }
 58  1
                 return getPersistenceService().getInstances(entityType, clonedCriteria, startIndex, maxResults).iterator();
 59  
         }
 60  
 
 61  
         public int getRowCount()
 62  
         {
 63  
                 // doing a count alters the criteria
 64  1
                 DetachedCriteria clonedCriteria = (DetachedCriteria) SerializationUtils.clone(getCriteria());
 65  1
                 return getPersistenceService().count(entityType, clonedCriteria);
 66  
         }
 67  
 }