Class DigitalObjectRepositoryImpl
java.lang.Object
de.digitalcollections.cudami.server.backend.impl.database.AbstractPagingSortingFilteringRepositoryImpl
de.digitalcollections.cudami.server.backend.impl.jdbi.JdbiRepositoryImpl<U>
de.digitalcollections.cudami.server.backend.impl.jdbi.UniqueObjectRepositoryImpl<I>
de.digitalcollections.cudami.server.backend.impl.jdbi.identifiable.IdentifiableRepositoryImpl<E>
de.digitalcollections.cudami.server.backend.impl.jdbi.identifiable.entity.EntityRepositoryImpl<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>
de.digitalcollections.cudami.server.backend.impl.jdbi.identifiable.entity.DigitalObjectRepositoryImpl
- All Implemented Interfaces:
DigitalObjectRepository,EntityRepository<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>,IdentifiableRepository<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>,PagingSortingFilteringRepository<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>,UniqueObjectRepository<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>
@Repository
public class DigitalObjectRepositoryImpl
extends EntityRepositoryImpl<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>
implements DigitalObjectRepository
-
Field Summary
FieldsFields inherited from class de.digitalcollections.cudami.server.backend.impl.jdbi.UniqueObjectRepositoryImpl
uniqueObjectImplClassFields inherited from class de.digitalcollections.cudami.server.backend.impl.jdbi.JdbiRepositoryImpl
dbi, mappingPrefix, tableAlias, tableNameFields inherited from class de.digitalcollections.cudami.server.backend.impl.database.AbstractPagingSortingFilteringRepositoryImpl
offsetForAlternativePaging -
Constructor Summary
ConstructorsConstructorDescriptionDigitalObjectRepositoryImpl(org.jdbi.v3.core.Jdbi dbi, CudamiConfig cudamiConfig, BackendIiifServerConfig iiifServerConfig, IdentifierRepository identifierRepository, UrlAliasRepository urlAliasRepository, de.digitalcollections.iiif.model.jackson.IiifObjectMapper iiifObjectMapper) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidbasicReduceRowsBiConsumer(Map<UUID, de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject> map, org.jdbi.v3.core.result.RowView rowView) The basic reduce rows biconsumer for reduced selects (lists, paging)de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObjectcreate()voiddeleteFileResources(UUID digitalObjectUuid) de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.identifiable.entity.Collection>findCollections(UUID digitalObjectUuid, de.digitalcollections.model.list.paging.PageRequest pageRequest) de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>findDigitalObjectsByItem(UUID itemUuid, de.digitalcollections.model.list.paging.PageRequest pageRequest) de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.identifiable.resource.FileResource>findFileResources(UUID digitalObjectUuid, de.digitalcollections.model.list.paging.PageRequest pageRequest) de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.identifiable.resource.ImageFileResource>findImageFileResources(UUID digitalObjectUuid, de.digitalcollections.model.list.paging.PageRequest pageRequest) de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.identifiable.entity.Project>findProjects(UUID digitalObjectUuid, de.digitalcollections.model.list.paging.PageRequest pageRequest) protected voidfullReduceRowsBiConsumer(Map<UUID, de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject> map, org.jdbi.v3.core.result.RowView rowView) The full reduce rows biconsumer for full selects (find one).
This method callsUniqueObjectRepositoryImpl.basicReduceRowsBiConsumer(Map, RowView), so make sure to callsuperfirst and only implement extraneous object building.
For a plain UniqueObject full and basic are the same (minimal dataset of uuid, lastModified, created).getColumnName(String modelProperty) List<de.digitalcollections.model.identifiable.resource.FileResource>getFileResources(UUID digitalObjectUuid) List<de.digitalcollections.model.identifiable.resource.ImageFileResource>getIiifImageFileResources(UUID digitalObjectUuid) Until now it is using IIIF-Server as structure service.List<de.digitalcollections.model.identifiable.resource.ImageFileResource>getImageFileResources(UUID digitalObjectUuid) getLanguagesOfProjects(UUID uuid) protected Stringprotected StringDo not change order! Must match order in getSqlInsertFields!!!getSqlSelectAllFields(String tableAlias, String mappingPrefix) protected StringgetSqlSelectReducedFields(String tableAlias, String mappingPrefix) protected Stringprotected Stringvoidsave(de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject digitalObject) voidsetAgentRepository(AgentRepositoryImpl<de.digitalcollections.model.identifiable.entity.agent.Agent> agentRepositoryImpl) voidsetCollectionRepository(CollectionRepositoryImpl collectionRepositoryImpl) voidsetCorporateBodyRepository(CorporateBodyRepositoryImpl corporateBodyRepositoryImpl) voidsetFileResourceMetadataRepository(FileResourceMetadataRepositoryImpl<de.digitalcollections.model.identifiable.resource.FileResource> fileResourceMetadataRepositoryImpl) List<de.digitalcollections.model.identifiable.resource.FileResource>setFileResources(UUID digitalObjectUuid, List<de.digitalcollections.model.identifiable.resource.FileResource> fileResources) voidsetGeoLocationRepositoryImpl(GeoLocationRepositoryImpl<de.digitalcollections.model.identifiable.entity.geo.location.GeoLocation> geoLocationRepositoryImpl) voidsetHumanSettlementRepository(HumanSettlementRepositoryImpl repositoryImpl) voidsetLinkedDataFileResourceRepository(LinkedDataFileResourceRepositoryImpl linkedDataFileResourceRepositoryImpl) voidsetPersonRepository(PersonRepositoryImpl personRepositoryImpl) Methods inherited from class de.digitalcollections.cudami.server.backend.impl.jdbi.identifiable.entity.EntityRepositoryImpl
addRelatedFileresource, findRelatedEntities, findRelatedFileResources, getAllowedOrderByFields, getByRefId, getJsonbFields, getRandom, getReturnedFieldsOnInsertUpdate, hasSplitColumn, insertUpdateCallback, isRepoForNamedEntity, save, setRelatedFileResources, update, updateMethods inherited from class de.digitalcollections.cudami.server.backend.impl.jdbi.identifiable.IdentifiableRepositoryImpl
addCrossTablePagingAndSorting, addRelatedEntity, deleteByUuids, find, findByLanguageAndInitial, getByIdentifier, getLanguages, retrieveList, retrieveList, retrieveMultiple, setRelatedEntities, supportsCaseSensitivityForPropertyMethods inherited from class de.digitalcollections.cudami.server.backend.impl.jdbi.UniqueObjectRepositoryImpl
additionalReduceRowsBiConsumer, deleteByUuid, execSelectForList, extractUuids, find, find, find, getByUuidsAndFiltering, getIndex, getSqlSelectAllFields, getSqlSelectReducedFields, getUniqueField, retrieveCount, retrieveMultiple, retrieveMultiple, retrieveOne, retrieveOne, save, sqlSelectReducedFieldsMethods inherited from class de.digitalcollections.cudami.server.backend.impl.jdbi.JdbiRepositoryImpl
addFiltering, addFiltering, count, count, escapeTermForJsonpath, execUpdateWithList, execUpdateWithMap, filterByLocalizedTextFields, filterBySplitField, getMappingPrefix, getTableAlias, getTableName, getTargetExpression, getWhereClause, getWhereClauses, mapFilterExpressionsToOtherTableColumnNames, retrieveNextSortIndexForParentChildren, splitToArray, splitToArrayMethods inherited from class de.digitalcollections.cudami.server.backend.impl.database.AbstractPagingSortingFilteringRepositoryImpl
addOrderBy, addPagingAndSorting, getOrderByMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface de.digitalcollections.cudami.server.backend.api.repository.identifiable.entity.DigitalObjectRepository
deleteFileResources, findCollections, findDigitalObjectsByItem, findFileResources, findImageFileResources, findProjects, getFileResources, getIiifImageFileResources, getImageFileResources, getLanguagesOfCollections, getLanguagesOfContainedDigitalObjects, getLanguagesOfProjects, setFileResourcesMethods inherited from interface de.digitalcollections.cudami.server.backend.api.repository.identifiable.entity.EntityRepository
getByRefId, setRelatedEntitiesMethods inherited from interface de.digitalcollections.cudami.server.backend.api.repository.identifiable.IdentifiableRepository
addRelatedEntity, addRelatedEntity, addRelatedFileresource, addRelatedFileresource, findByLanguageAndInitial, findRelatedEntities, findRelatedEntities, findRelatedFileResources, findRelatedFileResources, getByIdentifiables, getByIdentifier, getByIdentifier, getLanguages, setRelatedEntities, setRelatedFileResources, setRelatedFileResourcesMethods inherited from interface de.digitalcollections.cudami.server.backend.api.repository.PagingSortingFilteringRepository
findMethods inherited from interface de.digitalcollections.cudami.server.backend.api.repository.UniqueObjectRepository
count, delete, delete, deleteByUuid, deleteByUuids, getByExample, getByExampleAndFiltering, getByExamples, getByExamplesAndFiltering, getByUuid, getByUuidAndFiltering, getByUuids, getByUuidsAndFiltering, getRandom, save, saveOrUpdate, update, update
-
Field Details
-
MAPPING_PREFIX
- See Also:
-
TABLE_ALIAS
- See Also:
-
TABLE_NAME
- See Also:
-
-
Constructor Details
-
DigitalObjectRepositoryImpl
public DigitalObjectRepositoryImpl(org.jdbi.v3.core.Jdbi dbi, CudamiConfig cudamiConfig, BackendIiifServerConfig iiifServerConfig, IdentifierRepository identifierRepository, UrlAliasRepository urlAliasRepository, de.digitalcollections.iiif.model.jackson.IiifObjectMapper iiifObjectMapper)
-
-
Method Details
-
create
public de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject create() throws RepositoryException- Specified by:
createin interfaceUniqueObjectRepository<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>- Overrides:
createin classIdentifiableRepositoryImpl<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>- Throws:
RepositoryException
-
fullReduceRowsBiConsumer
protected void fullReduceRowsBiConsumer(Map<UUID, de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject> map, org.jdbi.v3.core.result.RowView rowView) Description copied from class:UniqueObjectRepositoryImplThe full reduce rows biconsumer for full selects (find one).
This method callsUniqueObjectRepositoryImpl.basicReduceRowsBiConsumer(Map, RowView), so make sure to callsuperfirst and only implement extraneous object building.
For a plain UniqueObject full and basic are the same (minimal dataset of uuid, lastModified, created).- Overrides:
fullReduceRowsBiConsumerin classIdentifiableRepositoryImpl<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>
-
deleteFileResources
- Specified by:
deleteFileResourcesin interfaceDigitalObjectRepository
-
basicReduceRowsBiConsumer
protected void basicReduceRowsBiConsumer(Map<UUID, de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject> map, org.jdbi.v3.core.result.RowView rowView) Description copied from class:UniqueObjectRepositoryImplThe basic reduce rows biconsumer for reduced selects (lists, paging)- Overrides:
basicReduceRowsBiConsumerin classIdentifiableRepositoryImpl<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>
-
findCollections
public de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.identifiable.entity.Collection> findCollections(UUID digitalObjectUuid, de.digitalcollections.model.list.paging.PageRequest pageRequest) throws RepositoryException - Specified by:
findCollectionsin interfaceDigitalObjectRepository- Throws:
RepositoryException
-
findFileResources
public de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.identifiable.resource.FileResource> findFileResources(UUID digitalObjectUuid, de.digitalcollections.model.list.paging.PageRequest pageRequest) throws RepositoryException - Specified by:
findFileResourcesin interfaceDigitalObjectRepository- Throws:
RepositoryException
-
findImageFileResources
public de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.identifiable.resource.ImageFileResource> findImageFileResources(UUID digitalObjectUuid, de.digitalcollections.model.list.paging.PageRequest pageRequest) throws RepositoryException - Specified by:
findImageFileResourcesin interfaceDigitalObjectRepository- Throws:
RepositoryException
-
findProjects
public de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.identifiable.entity.Project> findProjects(UUID digitalObjectUuid, de.digitalcollections.model.list.paging.PageRequest pageRequest) throws RepositoryException - Specified by:
findProjectsin interfaceDigitalObjectRepository- Throws:
RepositoryException
-
findDigitalObjectsByItem
public de.digitalcollections.model.list.paging.PageResponse<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject> findDigitalObjectsByItem(UUID itemUuid, de.digitalcollections.model.list.paging.PageRequest pageRequest) throws RepositoryException - Specified by:
findDigitalObjectsByItemin interfaceDigitalObjectRepository- Throws:
RepositoryException
-
getColumnName
- Overrides:
getColumnNamein classEntityRepositoryImpl<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>- 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)
-
getFileResources
public List<de.digitalcollections.model.identifiable.resource.FileResource> getFileResources(UUID digitalObjectUuid) throws RepositoryException - Specified by:
getFileResourcesin interfaceDigitalObjectRepository- Throws:
RepositoryException
-
getIiifImageFileResources
public List<de.digitalcollections.model.identifiable.resource.ImageFileResource> getIiifImageFileResources(UUID digitalObjectUuid) throws RepositoryException Until now it is using IIIF-Server as structure service. Maybe it is a database backend in the future.- Specified by:
getIiifImageFileResourcesin interfaceDigitalObjectRepository- Throws:
RepositoryException
-
getImageFileResources
public List<de.digitalcollections.model.identifiable.resource.ImageFileResource> getImageFileResources(UUID digitalObjectUuid) throws RepositoryException - Specified by:
getImageFileResourcesin interfaceDigitalObjectRepository- Throws:
RepositoryException
-
getLanguagesOfCollections
- Specified by:
getLanguagesOfCollectionsin interfaceDigitalObjectRepository
-
getLanguagesOfContainedDigitalObjects
- Specified by:
getLanguagesOfContainedDigitalObjectsin interfaceDigitalObjectRepository
-
getLanguagesOfProjects
- Specified by:
getLanguagesOfProjectsin interfaceDigitalObjectRepository
-
getSqlInsertFields
- Overrides:
getSqlInsertFieldsin classEntityRepositoryImpl<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>- Returns:
- SQL for field names for insert statement of
UniqueObject
-
getSqlInsertValues
Description copied from class:UniqueObjectRepositoryImplDo not change order! Must match order in getSqlInsertFields!!!- Overrides:
getSqlInsertValuesin classEntityRepositoryImpl<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>- Returns:
- SQL for value mapping for field names for insert statement of
UniqueObject
-
getSqlSelectAllFields
- Overrides:
getSqlSelectAllFieldsin classEntityRepositoryImpl<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>
-
getSqlSelectAllFieldsJoins
- Overrides:
getSqlSelectAllFieldsJoinsin classUniqueObjectRepositoryImpl<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>- Returns:
- SQL for joined fields for complete field set from other table(s) (optional). Default: ""
-
getSqlSelectReducedFields
- Overrides:
getSqlSelectReducedFieldsin classEntityRepositoryImpl<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>- Returns:
- SQL for fields of reduced field set of
UniqueObject
-
getSqlSelectReducedFieldsJoins
- Overrides:
getSqlSelectReducedFieldsJoinsin classUniqueObjectRepositoryImpl<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>- Returns:
- SQL for joined fields for reduced field set from other table(s) (optional). Default: ""
-
getSqlUpdateFieldValues
- Overrides:
getSqlUpdateFieldValuesin classEntityRepositoryImpl<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>
-
save
public void save(de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject digitalObject) throws RepositoryException - Specified by:
savein interfaceUniqueObjectRepository<de.digitalcollections.model.identifiable.entity.digitalobject.DigitalObject>- Throws:
RepositoryException
-
setFileResources
public List<de.digitalcollections.model.identifiable.resource.FileResource> setFileResources(UUID digitalObjectUuid, List<de.digitalcollections.model.identifiable.resource.FileResource> fileResources) throws RepositoryException - Specified by:
setFileResourcesin interfaceDigitalObjectRepository- Throws:
RepositoryException
-
setAgentRepository
public void setAgentRepository(AgentRepositoryImpl<de.digitalcollections.model.identifiable.entity.agent.Agent> agentRepositoryImpl) -
setCollectionRepository
-
setCorporateBodyRepository
-
setFileResourceMetadataRepository
public void setFileResourceMetadataRepository(FileResourceMetadataRepositoryImpl<de.digitalcollections.model.identifiable.resource.FileResource> fileResourceMetadataRepositoryImpl) -
setGeoLocationRepositoryImpl
public void setGeoLocationRepositoryImpl(GeoLocationRepositoryImpl<de.digitalcollections.model.identifiable.entity.geo.location.GeoLocation> geoLocationRepositoryImpl) -
setHumanSettlementRepository
-
setLinkedDataFileResourceRepository
public void setLinkedDataFileResourceRepository(LinkedDataFileResourceRepositoryImpl linkedDataFileResourceRepositoryImpl) -
setPersonRepository
-