Class MorphiaLazyDataModel<T>

  • Type Parameters:
    T - The model class.
    All Implemented Interfaces:
    java.io.Serializable, java.lang.Iterable<T>, org.primefaces.model.SelectableDataModel<T>

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

      Fields 
      Modifier and Type Field Description
      protected org.primefaces.util.SerializableSupplier<dev.morphia.Datastore> ds  
      protected java.lang.Class<T> entityClass  
      protected java.lang.String rowKeyField  
    • Constructor Summary

      Constructors 
      Constructor Description
      MorphiaLazyDataModel()
      For serialization only
      MorphiaLazyDataModel​(java.lang.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.
      MorphiaLazyDataModel​(java.lang.Class<T> entityClass, org.primefaces.util.SerializableSupplier<dev.morphia.Datastore> ds, java.lang.String rowKeyField)
      Constructs a Morphia lazy data model with selection support.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      dev.morphia.query.Query<T> applyFilters​(dev.morphia.query.Query<T> q, java.util.Map<java.lang.String,​org.primefaces.model.FilterMeta> filters)  
      int count​(java.util.Map<java.lang.String,​org.primefaces.model.FilterMeta> map)  
      T getRowData​(java.lang.String rowKey)  
      java.lang.String getRowKey​(T object)  
      protected java.lang.reflect.Method getRowKeyGetter()  
      MorphiaLazyDataModel<T> globalFilter​(java.util.function.BiConsumer<dev.morphia.query.Query<T>,​org.primefaces.model.FilterMeta> consumer)  
      java.util.List<T> load​(int first, int pageSize, java.util.Map<java.lang.String,​org.primefaces.model.SortMeta> sort, java.util.Map<java.lang.String,​org.primefaces.model.FilterMeta> filters)  
      MorphiaLazyDataModel<T> overrideFieldQuery​(java.lang.String field, java.util.function.BiConsumer<dev.morphia.query.Query<T>,​org.primefaces.model.FilterMeta> consumer)  
      MorphiaLazyDataModel<T> prependQuery​(java.util.function.Consumer<dev.morphia.query.Query<T>> consumer)  
      • Methods inherited from class org.primefaces.model.LazyDataModel

        getConverter, getMessage, getPageSize, getRowCount, getRowData, getRowData, getRowIndex, getWrappedData, isRowAvailable, iterator, iterator, recalculateFirst, setConverter, setPageSize, setRowCount, setRowIndex, setWrappedData
      • Methods inherited from class javax.faces.model.DataModel

        addDataModelListener, getDataModelListeners, removeDataModelListener
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Field Detail

      • entityClass

        protected java.lang.Class<T> entityClass
      • ds

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

        protected java.lang.String rowKeyField
    • Constructor Detail

      • MorphiaLazyDataModel

        public MorphiaLazyDataModel()
        For serialization only
      • MorphiaLazyDataModel

        public MorphiaLazyDataModel​(java.lang.Class<T> entityClass,
                                    org.primefaces.util.SerializableSupplier<dev.morphia.Datastore> ds,
                                    java.lang.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​(java.lang.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 Detail

      • getRowData

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

        public java.lang.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​(java.util.Map<java.lang.String,​org.primefaces.model.FilterMeta> map)
        Specified by:
        count in class org.primefaces.model.LazyDataModel<T>
      • load

        public java.util.List<T> load​(int first,
                                      int pageSize,
                                      java.util.Map<java.lang.String,​org.primefaces.model.SortMeta> sort,
                                      java.util.Map<java.lang.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,
                                                       java.util.Map<java.lang.String,​org.primefaces.model.FilterMeta> filters)
      • prependQuery

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

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

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

        protected java.lang.reflect.Method getRowKeyGetter()