Class IdentifiableRepositoryImpl<I extends de.digitalcollections.model.api.identifiable.Identifiable>

java.lang.Object
All Implemented Interfaces:
IdentifiableRepository<I>
Direct Known Subclasses:
EntityPartRepositoryImpl, EntityRepositoryImpl, FamilyNameRepositoryImpl, FileResourceMetadataRepositoryImpl, GivenNameRepositoryImpl

@Repository
public class IdentifiableRepositoryImpl<I extends de.digitalcollections.model.api.identifiable.Identifiable>
extends JdbiRepositoryImpl
implements IdentifiableRepository<I>
  • Field Summary

    Fields
    Modifier and Type Field Description
    java.util.function.BiFunction<java.util.Map<java.util.UUID,​I>,​org.jdbi.v3.core.result.RowView,​java.util.Map<java.util.UUID,​I>> additionalReduceRowsBiFunction  
    java.util.function.BiFunction<java.util.Map<java.util.UUID,​I>,​org.jdbi.v3.core.result.RowView,​java.util.Map<java.util.UUID,​I>> basicReduceRowsBiFunction  
    java.util.function.BiFunction<java.util.Map<java.util.UUID,​I>,​org.jdbi.v3.core.result.RowView,​java.util.Map<java.util.UUID,​I>> fullReduceRowsBiFunction  
    protected java.lang.Class identifiableImplClass  
    protected IdentifierRepository identifierRepository  
    static java.lang.String MAPPING_PREFIX  
    protected java.lang.String sqlSelectAllFields  
    protected java.lang.String sqlSelectAllFieldsJoins  
    protected java.lang.String sqlSelectReducedFields  
    static java.lang.String TABLE_ALIAS  
    static java.lang.String TABLE_NAME  

    Fields inherited from class de.digitalcollections.cudami.server.backend.impl.jdbi.JdbiRepositoryImpl

    dbi, mappingPrefix, tableAlias, tableName
  • Constructor Summary

    Constructors
    Modifier Constructor Description
    protected IdentifiableRepositoryImpl​(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository)  
    protected IdentifiableRepositoryImpl​(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository, java.lang.String tableName, java.lang.String tableAlias, java.lang.String mappingPrefix, java.lang.Class identifiableImplClass, java.lang.String sqlSelectAllFields, java.lang.String sqlSelectReducedFields, java.lang.String sqlInsertFields, java.lang.String sqlInsertValues, java.lang.String sqlUpdateFieldValues)  
    protected IdentifiableRepositoryImpl​(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository, java.lang.String tableName, java.lang.String tableAlias, java.lang.String mappingPrefix, java.lang.Class identifiableImplClass, java.lang.String sqlSelectAllFields, java.lang.String sqlSelectReducedFields, java.lang.String sqlInsertFields, java.lang.String sqlInsertValues, java.lang.String sqlUpdateFieldValues, java.lang.String sqlSelectAllFieldsJoins)  
    protected IdentifiableRepositoryImpl​(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository, java.lang.String tableName, java.lang.String tableAlias, java.lang.String mappingPrefix, java.lang.Class identifiableImplClass, java.lang.String sqlSelectAllFields, java.lang.String sqlSelectReducedFields, java.lang.String sqlInsertFields, java.lang.String sqlInsertValues, java.lang.String sqlUpdateFieldValues, java.lang.String sqlSelectAllFieldsJoins, java.util.function.BiFunction<java.util.Map<java.util.UUID,​I>,​org.jdbi.v3.core.result.RowView,​java.util.Map<java.util.UUID,​I>> additionalReduceRowsBiFunction)  
  • Method Summary

    Modifier and Type Method Description
    boolean delete​(java.util.List<java.util.UUID> uuids)  
    boolean deleteIdentifiers​(java.util.UUID identifiableUuid)  
    de.digitalcollections.model.api.paging.PageResponse<I> find​(de.digitalcollections.model.api.paging.PageRequest pageRequest)  
    protected de.digitalcollections.model.api.paging.PageResponse<I> find​(de.digitalcollections.model.api.paging.PageRequest pageRequest, java.lang.String commonSql, java.util.Map<java.lang.String,​java.lang.Object> argumentMappings)  
    de.digitalcollections.model.api.paging.SearchPageResponse<I> find​(de.digitalcollections.model.api.paging.SearchPageRequest searchPageRequest)  
    protected de.digitalcollections.model.api.paging.SearchPageResponse<I> find​(de.digitalcollections.model.api.paging.SearchPageRequest searchPageRequest, java.lang.String commonSql, java.util.Map<java.lang.String,​java.lang.Object> argumentMappings)  
    java.util.List<I> findAllFull()  
    java.util.List<I> findAllReduced()  
    de.digitalcollections.model.api.paging.PageResponse<I> findByLanguageAndInitial​(de.digitalcollections.model.api.paging.PageRequest pageRequest, java.lang.String language, java.lang.String initial)  
    I findOne​(de.digitalcollections.model.api.identifiable.Identifier identifier)  
    I findOne​(java.util.UUID uuid, de.digitalcollections.model.api.filter.Filtering filtering)  
    protected java.util.List<java.lang.String> getAllowedOrderByFields()  
    protected java.lang.String getColumnName​(java.lang.String modelProperty)  
    int getIndex​(java.util.List<? extends de.digitalcollections.model.api.identifiable.Identifiable> list, de.digitalcollections.model.api.identifiable.Identifiable identifiable)  
    static java.lang.String getSqlInsertFields()  
    static java.lang.String getSqlInsertValues()  
    java.lang.String getSqlSelectAllFields()  
    static java.lang.String getSqlSelectAllFields​(java.lang.String tableAlias, java.lang.String mappingPrefix)  
    java.lang.String getSqlSelectReducedFields()  
    static java.lang.String getSqlSelectReducedFields​(java.lang.String tableAlias, java.lang.String mappingPrefix)  
    static java.lang.String getSqlUpdateFieldValues()  
    long retrieveCount​(java.lang.StringBuilder sqlCount, java.util.Map<java.lang.String,​java.lang.Object> argumentMappings)  
    java.util.List<I> retrieveList​(java.lang.String fieldsSql, java.lang.StringBuilder innerQuery, java.util.Map<java.lang.String,​java.lang.Object> argumentMappings, java.lang.String orderBy)  
    protected java.lang.Integer retrieveNextSortIndexForParentChildren​(org.jdbi.v3.core.Jdbi dbi, java.lang.String tableName, java.lang.String columNameParentUuid, java.util.UUID parentUuid)  
    I retrieveOne​(java.lang.String fieldsSql, java.lang.String sqlSelectAllFieldsJoins, de.digitalcollections.model.api.filter.Filtering filtering, java.util.Map<java.lang.String,​java.lang.Object> argumentMappings)  
    I save​(I identifiable, java.util.Map<java.lang.String,​java.lang.Object> bindings)  
    void saveIdentifiers​(java.util.Set<de.digitalcollections.model.api.identifiable.Identifier> identifiers, de.digitalcollections.model.api.identifiable.Identifiable identifiable)  
    I update​(I identifiable, java.util.Map<java.lang.String,​java.lang.Object> bindings)  

    Methods inherited from class de.digitalcollections.cudami.server.backend.impl.jdbi.JdbiRepositoryImpl

    count, getMappingPrefix, getTableAlias, getTableName

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface de.digitalcollections.cudami.server.backend.api.repository.identifiable.IdentifiableRepository

    count, delete, find, findOne, findOneByIdentifier, save, update
  • Field Details

    • MAPPING_PREFIX

      public static final java.lang.String MAPPING_PREFIX
      See Also:
      Constant Field Values
    • TABLE_ALIAS

      public static final java.lang.String TABLE_ALIAS
      See Also:
      Constant Field Values
    • TABLE_NAME

      public static final java.lang.String TABLE_NAME
      See Also:
      Constant Field Values
    • additionalReduceRowsBiFunction

      public java.util.function.BiFunction<java.util.Map<java.util.UUID,​I extends de.digitalcollections.model.api.identifiable.Identifiable>,​org.jdbi.v3.core.result.RowView,​java.util.Map<java.util.UUID,​I extends de.digitalcollections.model.api.identifiable.Identifiable>> additionalReduceRowsBiFunction
    • basicReduceRowsBiFunction

      public final java.util.function.BiFunction<java.util.Map<java.util.UUID,​I extends de.digitalcollections.model.api.identifiable.Identifiable>,​org.jdbi.v3.core.result.RowView,​java.util.Map<java.util.UUID,​I extends de.digitalcollections.model.api.identifiable.Identifiable>> basicReduceRowsBiFunction
    • fullReduceRowsBiFunction

      public final java.util.function.BiFunction<java.util.Map<java.util.UUID,​I extends de.digitalcollections.model.api.identifiable.Identifiable>,​org.jdbi.v3.core.result.RowView,​java.util.Map<java.util.UUID,​I extends de.digitalcollections.model.api.identifiable.Identifiable>> fullReduceRowsBiFunction
    • identifiableImplClass

      protected final java.lang.Class identifiableImplClass
    • identifierRepository

      protected final IdentifierRepository identifierRepository
    • sqlSelectAllFields

      protected java.lang.String sqlSelectAllFields
    • sqlSelectAllFieldsJoins

      protected final java.lang.String sqlSelectAllFieldsJoins
    • sqlSelectReducedFields

      protected java.lang.String sqlSelectReducedFields
  • Constructor Details

    • IdentifiableRepositoryImpl

      @Autowired protected IdentifiableRepositoryImpl​(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository)
    • IdentifiableRepositoryImpl

      protected IdentifiableRepositoryImpl​(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository, java.lang.String tableName, java.lang.String tableAlias, java.lang.String mappingPrefix, java.lang.Class identifiableImplClass, java.lang.String sqlSelectAllFields, java.lang.String sqlSelectReducedFields, java.lang.String sqlInsertFields, java.lang.String sqlInsertValues, java.lang.String sqlUpdateFieldValues)
    • IdentifiableRepositoryImpl

      protected IdentifiableRepositoryImpl​(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository, java.lang.String tableName, java.lang.String tableAlias, java.lang.String mappingPrefix, java.lang.Class identifiableImplClass, java.lang.String sqlSelectAllFields, java.lang.String sqlSelectReducedFields, java.lang.String sqlInsertFields, java.lang.String sqlInsertValues, java.lang.String sqlUpdateFieldValues, java.lang.String sqlSelectAllFieldsJoins)
    • IdentifiableRepositoryImpl

      protected IdentifiableRepositoryImpl​(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository, java.lang.String tableName, java.lang.String tableAlias, java.lang.String mappingPrefix, java.lang.Class identifiableImplClass, java.lang.String sqlSelectAllFields, java.lang.String sqlSelectReducedFields, java.lang.String sqlInsertFields, java.lang.String sqlInsertValues, java.lang.String sqlUpdateFieldValues, java.lang.String sqlSelectAllFieldsJoins, java.util.function.BiFunction<java.util.Map<java.util.UUID,​I>,​org.jdbi.v3.core.result.RowView,​java.util.Map<java.util.UUID,​I>> additionalReduceRowsBiFunction)
  • Method Details

    • getSqlInsertFields

      public static java.lang.String getSqlInsertFields()
    • getSqlInsertValues

      public static java.lang.String getSqlInsertValues()
    • getSqlSelectAllFields

      public static java.lang.String getSqlSelectAllFields​(java.lang.String tableAlias, java.lang.String mappingPrefix)
    • getSqlSelectReducedFields

      public static java.lang.String getSqlSelectReducedFields​(java.lang.String tableAlias, java.lang.String mappingPrefix)
    • getSqlUpdateFieldValues

      public static java.lang.String getSqlUpdateFieldValues()
    • delete

      public boolean delete​(java.util.List<java.util.UUID> uuids)
      Specified by:
      delete in interface IdentifiableRepository<I extends de.digitalcollections.model.api.identifiable.Identifiable>
    • deleteIdentifiers

      public boolean deleteIdentifiers​(java.util.UUID identifiableUuid)
      Specified by:
      deleteIdentifiers in interface IdentifiableRepository<I extends de.digitalcollections.model.api.identifiable.Identifiable>
    • find

      public de.digitalcollections.model.api.paging.PageResponse<I> find​(de.digitalcollections.model.api.paging.PageRequest pageRequest)
      Specified by:
      find in interface IdentifiableRepository<I extends de.digitalcollections.model.api.identifiable.Identifiable>
    • find

      protected de.digitalcollections.model.api.paging.PageResponse<I> find​(de.digitalcollections.model.api.paging.PageRequest pageRequest, java.lang.String commonSql, java.util.Map<java.lang.String,​java.lang.Object> argumentMappings)
    • find

      public de.digitalcollections.model.api.paging.SearchPageResponse<I> find​(de.digitalcollections.model.api.paging.SearchPageRequest searchPageRequest)
      Specified by:
      find in interface IdentifiableRepository<I extends de.digitalcollections.model.api.identifiable.Identifiable>
    • find

      protected de.digitalcollections.model.api.paging.SearchPageResponse<I> find​(de.digitalcollections.model.api.paging.SearchPageRequest searchPageRequest, java.lang.String commonSql, java.util.Map<java.lang.String,​java.lang.Object> argumentMappings)
    • findAllFull

      public java.util.List<I> findAllFull()
      Specified by:
      findAllFull in interface IdentifiableRepository<I extends de.digitalcollections.model.api.identifiable.Identifiable>
    • findAllReduced

      public java.util.List<I> findAllReduced()
      Specified by:
      findAllReduced in interface IdentifiableRepository<I extends de.digitalcollections.model.api.identifiable.Identifiable>
    • findByLanguageAndInitial

      public de.digitalcollections.model.api.paging.PageResponse<I> findByLanguageAndInitial​(de.digitalcollections.model.api.paging.PageRequest pageRequest, java.lang.String language, java.lang.String initial)
      Specified by:
      findByLanguageAndInitial in interface IdentifiableRepository<I extends de.digitalcollections.model.api.identifiable.Identifiable>
    • findOne

      public I findOne​(java.util.UUID uuid, de.digitalcollections.model.api.filter.Filtering filtering)
      Specified by:
      findOne in interface IdentifiableRepository<I extends de.digitalcollections.model.api.identifiable.Identifiable>
    • findOne

      public I findOne​(de.digitalcollections.model.api.identifiable.Identifier identifier)
      Specified by:
      findOne in interface IdentifiableRepository<I extends de.digitalcollections.model.api.identifiable.Identifiable>
    • getAllowedOrderByFields

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

      protected java.lang.String getColumnName​(java.lang.String modelProperty)
      Specified by:
      getColumnName in class AbstractPagingAndSortingRepositoryImpl
      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)
    • getIndex

      public int getIndex​(java.util.List<? extends de.digitalcollections.model.api.identifiable.Identifiable> list, de.digitalcollections.model.api.identifiable.Identifiable identifiable)
    • getSqlSelectAllFields

      public java.lang.String getSqlSelectAllFields()
    • getSqlSelectReducedFields

      public java.lang.String getSqlSelectReducedFields()
    • retrieveCount

      public long retrieveCount​(java.lang.StringBuilder sqlCount, java.util.Map<java.lang.String,​java.lang.Object> argumentMappings)
    • retrieveList

      public java.util.List<I> retrieveList​(java.lang.String fieldsSql, java.lang.StringBuilder innerQuery, java.util.Map<java.lang.String,​java.lang.Object> argumentMappings, java.lang.String orderBy)
    • retrieveNextSortIndexForParentChildren

      protected java.lang.Integer retrieveNextSortIndexForParentChildren​(org.jdbi.v3.core.Jdbi dbi, java.lang.String tableName, java.lang.String columNameParentUuid, java.util.UUID parentUuid)
    • retrieveOne

      public I retrieveOne​(java.lang.String fieldsSql, java.lang.String sqlSelectAllFieldsJoins, de.digitalcollections.model.api.filter.Filtering filtering, java.util.Map<java.lang.String,​java.lang.Object> argumentMappings)
    • save

      public I save​(I identifiable, java.util.Map<java.lang.String,​java.lang.Object> bindings)
      Specified by:
      save in interface IdentifiableRepository<I extends de.digitalcollections.model.api.identifiable.Identifiable>
    • saveIdentifiers

      public void saveIdentifiers​(java.util.Set<de.digitalcollections.model.api.identifiable.Identifier> identifiers, de.digitalcollections.model.api.identifiable.Identifiable identifiable)
    • update

      public I update​(I identifiable, java.util.Map<java.lang.String,​java.lang.Object> bindings)
      Specified by:
      update in interface IdentifiableRepository<I extends de.digitalcollections.model.api.identifiable.Identifiable>