Package org.apache.tapestry5.hibernate.web

## Class HibernateGridDataSource

- java.lang.Object
- - org.apache.tapestry5.hibernate.web.HibernateGridDataSource

- All Implemented Interfaces:
    `GridDataSource`

      public class HibernateGridDataSource
      extends Object
      implements GridDataSource

  A simple implementation of `GridDataSource` based on a Hibernate Session and a known entity class. This implementation does support multiple `sort constraints`; however it assumes a direct mapping from sort constraint property to Hibernate property. 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).

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `HibernateGridDataSource​(org.hibernate.Session session, Class entityType)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `applyAdditionalConstraints​(org.hibernate.Criteria crit)` | Invoked after the main criteria has been set up (firstResult, maxResults and any sort contraints).
    `int` | `getAvailableRows()` | Returns the total number of rows for the configured entity type.
    `Class` | `getRowType()` | Returns the entity type, as provided via the constructor.
    `Object` | `getRowValue​(int index)` | Returns a row value at the given index (which must be within the range defined by the call to `prepare(int, int, java.util.List)` ).
    `void` | `prepare​(int startIndex, int endIndex, List<SortConstraint> sortConstraints)` | Prepares the results, performing a query (applying the sort results, and the provided start and end index).

    - ### 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

    - #### HibernateGridDataSource

          public HibernateGridDataSource​(org.hibernate.Session session,
                                         Class entityType)

  - ### Method Detail

    - #### getAvailableRows

          public int getAvailableRows()

      Returns the total number of rows for the configured entity type.
      Specified by:
        `getAvailableRows` in interface `GridDataSource`

    - #### prepare

          public void prepare​(int startIndex,
                              int endIndex,
                              List<SortConstraint> sortConstraints)

      Prepares the results, performing a query (applying the sort results, and the provided start and end index). The results can later be obtained from `getRowValue(int)` }.
      Specified by:
        `prepare` in interface `GridDataSource`
      Parameters:
        `startIndex` - index, from zero, of the first item to be retrieved
        `endIndex` - index, from zero, of the last item to be retrieved
        `sortConstraints` - zero or more constraints used to set the order of the returned values

    - #### applyAdditionalConstraints

          protected void applyAdditionalConstraints​(org.hibernate.Criteria crit)

      Invoked after the main criteria has been set up (firstResult, maxResults and any sort contraints). This gives subclasses a chance to apply additional constraints before the list of results is obtained from the criteria. This implementation does nothing and may be overridden.

    - #### getRowValue

          public Object getRowValue​(int index)

      Returns a row value at the given index (which must be within the range defined by the call to `prepare(int, int, java.util.List)` ).
      Specified by:
        `getRowValue` in interface `GridDataSource`
      Parameters:
        `index` - of object
      Returns:
        object at that index

    - #### getRowType

          public Class getRowType()

      Returns the entity type, as provided via the constructor.
      Specified by:
        `getRowType` in interface `GridDataSource`
      Returns:
        the row type, or null