Package org.apache.tapestry5.jpa
Class JpaGridDataSource<E>
- java.lang.Object
-
- org.apache.tapestry5.jpa.JpaGridDataSource<E>
-
- All Implemented Interfaces:
GridDataSource
public class JpaGridDataSource<E> extends Object implements GridDataSource
A simple implementation ofGridDataSource
based on a EntityManager and a known entity class. This implementation does support multiplesort constraints
. This class is not thread-safe; it maintains internal state. Typically, an instance of this object is created fresh as needed (that is, it is not stored between requests).- Since:
- 5.3
-
-
Constructor Summary
Constructors Constructor Description JpaGridDataSource(EntityManager entityManager, Class<E> entityType)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
applyAdditionalConstraints(CriteriaQuery<?> criteria, Root<E> root, CriteriaBuilder builder)
int
getAvailableRows()
Returns the number of rows available in the data source.Class<E>
getRowType()
Returns the type of value in the rows, or null if not known.Object
getRowValue(int index)
Returns the row value at the provided index.void
prepare(int startIndex, int endIndex, List<SortConstraint> sortConstraints)
Invoked to allow the source to prepare to present values.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.tapestry5.grid.GridDataSource
getAvailableRows, isEmpty
-
-
-
-
Constructor Detail
-
JpaGridDataSource
public JpaGridDataSource(EntityManager entityManager, Class<E> entityType)
-
-
Method Detail
-
getAvailableRows
public int getAvailableRows()
Returns the number of rows available in the data source.- Specified by:
getAvailableRows
in interfaceGridDataSource
-
prepare
public void prepare(int startIndex, int endIndex, List<SortConstraint> sortConstraints)
Invoked to allow the source to prepare to present values. This gives the source a chance to pre-fetch data (when appropriate) and informs the source of the desired sort order. Sorting comes first, then extraction by range.- Specified by:
prepare
in interfaceGridDataSource
- Parameters:
startIndex
- the starting index to be retrievedendIndex
- the ending index to be retrievedsortConstraints
- identify how data is to be sorted
-
applyAdditionalConstraints
protected void applyAdditionalConstraints(CriteriaQuery<?> criteria, Root<E> root, CriteriaBuilder builder)
-
getRowValue
public Object getRowValue(int index)
Returns the row value at the provided index. This method will be invoked in sequential order. In rare instances,GridDataSource.getAvailableRows()
may return a different number of rows than are actually available (i.e., the database was changed between calls toGridDataSource.getAvailableRows()
and the call toGridDataSource.prepare(int, int, java.util.List)
). In that case, this method should return null for any out-of-range indexes.- Specified by:
getRowValue
in interfaceGridDataSource
-
getRowType
public Class<E> getRowType()
Returns the type of value in the rows, or null if not known. This value is used to create a defaultBeanModel
when no such model is explicitly provided.- Specified by:
getRowType
in interfaceGridDataSource
- Returns:
- the row type, or null
-
-