Class AbstractPagingAndSortingRepositoryImpl

java.lang.Object
de.digitalcollections.cudami.server.backend.impl.database.AbstractPagingAndSortingRepositoryImpl
Direct Known Subclasses:
JdbiRepositoryImpl, RenderingTemplateRepositoryImpl

public abstract class AbstractPagingAndSortingRepositoryImpl
extends java.lang.Object
Convenience repository implementation to be inherited from if applicable.

Tries best to translate paging and sorting params into valid SQL.
If result does not fit your use case: implement it yourself and do not use these convenience methods.

  • Constructor Summary

    Constructors 
    Constructor Description
    AbstractPagingAndSortingRepositoryImpl()  
  • Method Summary

    Modifier and Type Method Description
    void addFiltering​(de.digitalcollections.model.filter.Filtering filtering, java.lang.StringBuilder sqlQuery)  
    void addFiltering​(de.digitalcollections.model.paging.PageRequest pageRequest, java.lang.StringBuilder sqlQuery)  
    void addLimit​(de.digitalcollections.model.paging.PageRequest pageRequest, java.lang.StringBuilder sqlQuery)  
    void addOffset​(de.digitalcollections.model.paging.PageRequest pageRequest, java.lang.StringBuilder sqlQuery)  
    void addOrderBy​(de.digitalcollections.model.paging.PageRequest pageRequest, java.lang.StringBuilder sqlQuery)  
    protected void addPageRequestParams​(de.digitalcollections.model.paging.PageRequest pageRequest, java.lang.StringBuilder sqlQuery)  
    protected java.lang.String convertToSqlString​(java.lang.Object value)  
    protected abstract java.util.List<java.lang.String> getAllowedOrderByFields()  
    protected abstract java.lang.String getColumnName​(java.lang.String modelProperty)  
    protected java.lang.String getFilterClauses​(de.digitalcollections.model.filter.Filtering filtering)  
    java.lang.String getOrderBy​(de.digitalcollections.model.paging.Sorting sorting)  
    protected java.lang.String getWhereClause​(de.digitalcollections.model.filter.FilterCriterion<?> fc)  

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

  • Method Details

    • addFiltering

      public void addFiltering​(de.digitalcollections.model.filter.Filtering filtering, java.lang.StringBuilder sqlQuery)
    • addFiltering

      public void addFiltering​(de.digitalcollections.model.paging.PageRequest pageRequest, java.lang.StringBuilder sqlQuery)
    • addLimit

      public void addLimit​(de.digitalcollections.model.paging.PageRequest pageRequest, java.lang.StringBuilder sqlQuery)
    • addOffset

      public void addOffset​(de.digitalcollections.model.paging.PageRequest pageRequest, java.lang.StringBuilder sqlQuery)
    • addOrderBy

      public void addOrderBy​(de.digitalcollections.model.paging.PageRequest pageRequest, java.lang.StringBuilder sqlQuery)
    • addPageRequestParams

      protected void addPageRequestParams​(de.digitalcollections.model.paging.PageRequest pageRequest, java.lang.StringBuilder sqlQuery)
    • convertToSqlString

      protected java.lang.String convertToSqlString​(java.lang.Object value)
    • getAllowedOrderByFields

      protected abstract java.util.List<java.lang.String> getAllowedOrderByFields()
      Returns:
      model properties names that are applicable for sorting, will be mapped to database column names using @see #getColumnName
    • getColumnName

      protected abstract java.lang.String getColumnName​(java.lang.String modelProperty)
      Parameters:
      modelProperty - name of model property passed as String, e.g. "lastModified"
      Returns:
      full qualified column name as used in sql queries ("last_modified" or e.g. "w.last_modified" if prefix used in queries)
    • getFilterClauses

      protected java.lang.String getFilterClauses​(de.digitalcollections.model.filter.Filtering filtering)
    • getOrderBy

      public java.lang.String getOrderBy​(de.digitalcollections.model.paging.Sorting sorting)
    • getWhereClause

      protected java.lang.String getWhereClause​(de.digitalcollections.model.filter.FilterCriterion<?> fc) throws java.lang.IllegalArgumentException, java.lang.UnsupportedOperationException
      Throws:
      java.lang.IllegalArgumentException
      java.lang.UnsupportedOperationException