All Implemented Interfaces:
CollectionRepository, EntityRepository<de.digitalcollections.model.api.identifiable.entity.Collection>, IdentifiableRepository<de.digitalcollections.model.api.identifiable.entity.Collection>, NodeRepository<de.digitalcollections.model.api.identifiable.entity.Collection>

@Repository
public class CollectionRepositoryImpl
extends EntityRepositoryImpl<de.digitalcollections.model.api.identifiable.entity.Collection>
implements CollectionRepository
  • Field Details

  • Constructor Details

    • CollectionRepositoryImpl

      @Autowired public CollectionRepositoryImpl​(org.jdbi.v3.core.Jdbi dbi, IdentifierRepository identifierRepository)
  • 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()
    • addChildren

      public boolean addChildren​(java.util.UUID parentUuid, java.util.List<de.digitalcollections.model.api.identifiable.entity.Collection> children)
      Specified by:
      addChildren in interface NodeRepository<de.digitalcollections.model.api.identifiable.entity.Collection>
    • addDigitalObjects

      public boolean addDigitalObjects​(java.util.UUID collectionUuid, java.util.List<de.digitalcollections.model.api.identifiable.entity.DigitalObject> digitalObjects)
      Specified by:
      addDigitalObjects in interface CollectionRepository
    • findOne

      public de.digitalcollections.model.api.identifiable.entity.Collection findOne​(java.util.UUID uuid, de.digitalcollections.model.api.filter.Filtering filtering)
      Specified by:
      findOne in interface IdentifiableRepository<de.digitalcollections.model.api.identifiable.entity.Collection>
      Overrides:
      findOne in class IdentifiableRepositoryImpl<de.digitalcollections.model.api.identifiable.entity.Collection>
    • findOne

      public de.digitalcollections.model.api.identifiable.entity.Collection findOne​(de.digitalcollections.model.api.identifiable.Identifier identifier)
      Specified by:
      findOne in interface IdentifiableRepository<de.digitalcollections.model.api.identifiable.entity.Collection>
      Overrides:
      findOne in class IdentifiableRepositoryImpl<de.digitalcollections.model.api.identifiable.entity.Collection>
    • findOneByRefId

      public de.digitalcollections.model.api.identifiable.entity.Collection findOneByRefId​(long refId)
      Specified by:
      findOneByRefId in interface EntityRepository<de.digitalcollections.model.api.identifiable.entity.Collection>
      Overrides:
      findOneByRefId in class EntityRepositoryImpl<de.digitalcollections.model.api.identifiable.entity.Collection>
    • getAllowedOrderByFields

      protected java.util.List<java.lang.String> getAllowedOrderByFields()
      Overrides:
      getAllowedOrderByFields in class EntityRepositoryImpl<de.digitalcollections.model.api.identifiable.entity.Collection>
      Returns:
      model properties names that are applicable for sorting, will be mapped to database column names using @see #getColumnName
    • getBreadcrumbNavigation

      public de.digitalcollections.model.api.view.BreadcrumbNavigation getBreadcrumbNavigation​(java.util.UUID nodeUuid)
      Specified by:
      getBreadcrumbNavigation in interface NodeRepository<de.digitalcollections.model.api.identifiable.entity.Collection>
    • getChildren

      public java.util.List<de.digitalcollections.model.api.identifiable.entity.Collection> getChildren​(de.digitalcollections.model.api.identifiable.entity.Collection collection)
      Specified by:
      getChildren in interface NodeRepository<de.digitalcollections.model.api.identifiable.entity.Collection>
    • getChildren

      public java.util.List<de.digitalcollections.model.api.identifiable.entity.Collection> getChildren​(java.util.UUID uuid)
      Specified by:
      getChildren in interface NodeRepository<de.digitalcollections.model.api.identifiable.entity.Collection>
    • getChildren

      public de.digitalcollections.model.api.paging.PageResponse<de.digitalcollections.model.api.identifiable.entity.Collection> getChildren​(java.util.UUID uuid, de.digitalcollections.model.api.paging.PageRequest pageRequest)
      Specified by:
      getChildren in interface NodeRepository<de.digitalcollections.model.api.identifiable.entity.Collection>
    • getColumnName

      protected java.lang.String getColumnName​(java.lang.String modelProperty)
      Overrides:
      getColumnName in class EntityRepositoryImpl<de.digitalcollections.model.api.identifiable.entity.Collection>
      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)
    • getDigitalObjects

      public de.digitalcollections.model.api.paging.PageResponse<de.digitalcollections.model.api.identifiable.entity.DigitalObject> getDigitalObjects​(java.util.UUID collectionUuid, de.digitalcollections.model.api.paging.PageRequest pageRequest)
      Specified by:
      getDigitalObjects in interface CollectionRepository
    • getParent

      public de.digitalcollections.model.api.identifiable.entity.Collection getParent​(java.util.UUID uuid)
      Specified by:
      getParent in interface NodeRepository<de.digitalcollections.model.api.identifiable.entity.Collection>
    • getParents

      public java.util.List<de.digitalcollections.model.api.identifiable.entity.Collection> getParents​(java.util.UUID uuid)
      Specified by:
      getParents in interface NodeRepository<de.digitalcollections.model.api.identifiable.entity.Collection>
    • getRelatedCorporateBodies

      public java.util.List<de.digitalcollections.model.api.identifiable.entity.agent.CorporateBody> getRelatedCorporateBodies​(java.util.UUID uuid, de.digitalcollections.model.api.filter.Filtering filtering)
      Specified by:
      getRelatedCorporateBodies in interface CollectionRepository
    • getRootNodes

      public de.digitalcollections.model.api.paging.PageResponse<de.digitalcollections.model.api.identifiable.entity.Collection> getRootNodes​(de.digitalcollections.model.api.paging.PageRequest pageRequest)
      Specified by:
      getRootNodes in interface NodeRepository<de.digitalcollections.model.api.identifiable.entity.Collection>
    • getRootNodesLanguages

      public java.util.List<java.util.Locale> getRootNodesLanguages()
      Specified by:
      getRootNodesLanguages in interface NodeRepository<de.digitalcollections.model.api.identifiable.entity.Collection>
    • removeChild

      public boolean removeChild​(java.util.UUID parentUuid, java.util.UUID childUuid)
      Specified by:
      removeChild in interface NodeRepository<de.digitalcollections.model.api.identifiable.entity.Collection>
    • removeDigitalObject

      public boolean removeDigitalObject​(java.util.UUID collectionUuid, java.util.UUID digitalObjectUuid)
      Specified by:
      removeDigitalObject in interface CollectionRepository
    • removeDigitalObjectFromAllCollections

      public boolean removeDigitalObjectFromAllCollections​(de.digitalcollections.model.api.identifiable.entity.DigitalObject digitalObject)
      Specified by:
      removeDigitalObjectFromAllCollections in interface CollectionRepository
    • save

      public de.digitalcollections.model.api.identifiable.entity.Collection save​(de.digitalcollections.model.api.identifiable.entity.Collection collection)
      Specified by:
      save in interface IdentifiableRepository<de.digitalcollections.model.api.identifiable.entity.Collection>
    • saveDigitalObjects

      public boolean saveDigitalObjects​(java.util.UUID collectionUuid, java.util.List<de.digitalcollections.model.api.identifiable.entity.DigitalObject> digitalObjects)
      Specified by:
      saveDigitalObjects in interface CollectionRepository
    • saveWithParent

      public de.digitalcollections.model.api.identifiable.entity.Collection saveWithParent​(de.digitalcollections.model.api.identifiable.entity.Collection collection, java.util.UUID parentUuid)
      Specified by:
      saveWithParent in interface NodeRepository<de.digitalcollections.model.api.identifiable.entity.Collection>
    • update

      public de.digitalcollections.model.api.identifiable.entity.Collection update​(de.digitalcollections.model.api.identifiable.entity.Collection collection)
      Specified by:
      update in interface IdentifiableRepository<de.digitalcollections.model.api.identifiable.entity.Collection>
    • updateChildrenOrder

      public boolean updateChildrenOrder​(java.util.UUID parentUuid, java.util.List<de.digitalcollections.model.api.identifiable.entity.Collection> children)
      Specified by:
      updateChildrenOrder in interface NodeRepository<de.digitalcollections.model.api.identifiable.entity.Collection>