Class MorphiaLazyDataModel<T>

java.lang.Object
javax.faces.model.DataModel<E>
javax.faces.model.ListDataModel<T>
org.primefaces.model.LazyDataModel<T>
org.primefaces.extensions.model.mongo.MorphiaLazyDataModel<T>
Type Parameters:
T - The model class.
All Implemented Interfaces:
Serializable, Iterable<T>, org.primefaces.model.SelectableDataModel<T>

public class MorphiaLazyDataModel<T> extends org.primefaces.model.LazyDataModel<T> implements Serializable
Basic LazyDataModel implementation for MongoDB using Morphia.
See Also:
  • Field Details

    • entityClass

      protected Class<T> entityClass
    • ds

      protected org.primefaces.util.SerializableSupplier<dev.morphia.Datastore> ds
    • rowKeyField

      protected String rowKeyField
  • Constructor Details

    • MorphiaLazyDataModel

      public MorphiaLazyDataModel()
      For serialization only
    • MorphiaLazyDataModel

      public MorphiaLazyDataModel(Class<T> entityClass, org.primefaces.util.SerializableSupplier<dev.morphia.Datastore> ds, String rowKeyField)
      Constructs a Morphia lazy data model with selection support.
      Parameters:
      ds - the Datastore
      entityClass - The entity class
      rowKeyField - The name of the rowKey property (e.g. "id")
    • MorphiaLazyDataModel

      public MorphiaLazyDataModel(Class<T> entityClass, org.primefaces.util.SerializableSupplier<dev.morphia.Datastore> ds)
      Constructs a Morphia lazy data model with selection support with the default "id" field being the row key.
      Parameters:
      ds - the Datastore
      entityClass - The entity class
  • Method Details

    • getRowData

      public T getRowData(String rowKey)
      Specified by:
      getRowData in interface org.primefaces.model.SelectableDataModel<T>
      Overrides:
      getRowData in class org.primefaces.model.LazyDataModel<T>
    • getRowKey

      public String getRowKey(T object)
      Specified by:
      getRowKey in interface org.primefaces.model.SelectableDataModel<T>
      Overrides:
      getRowKey in class org.primefaces.model.LazyDataModel<T>
    • count

      public int count(Map<String,org.primefaces.model.FilterMeta> map)
      Specified by:
      count in class org.primefaces.model.LazyDataModel<T>
    • load

      public List<T> load(int first, int pageSize, Map<String,org.primefaces.model.SortMeta> sort, Map<String,org.primefaces.model.FilterMeta> filters)
      Specified by:
      load in class org.primefaces.model.LazyDataModel<T>
    • applyFilters

      public dev.morphia.query.Query<T> applyFilters(dev.morphia.query.Query<T> q, Map<String,org.primefaces.model.FilterMeta> filters)
    • prependQuery

      public MorphiaLazyDataModel<T> prependQuery(Consumer<dev.morphia.query.Query<T>> consumer)
    • globalFilter

      public MorphiaLazyDataModel<T> globalFilter(BiConsumer<dev.morphia.query.Query<T>,org.primefaces.model.FilterMeta> consumer)
    • overrideFieldQuery

      public MorphiaLazyDataModel<T> overrideFieldQuery(String field, BiConsumer<dev.morphia.query.Query<T>,org.primefaces.model.FilterMeta> consumer)
    • getRowKeyGetter

      protected Method getRowKeyGetter()