Class IdentifiableServiceImpl<I extends de.digitalcollections.model.identifiable.Identifiable>
- java.lang.Object
-
- de.digitalcollections.cudami.server.business.impl.service.identifiable.IdentifiableServiceImpl<I>
-
- All Implemented Interfaces:
IdentifiableService<I>
- Direct Known Subclasses:
ApplicationFileResourceServiceImpl,AudioFileResourceServiceImpl,EntityServiceImpl,FamilyNameServiceImpl,FileResourceMetadataServiceImpl,GivenNameServiceImpl,ImageFileResourceServiceImpl,LinkedDataFileResourceServiceImpl,TextFileResourceServiceImpl,VideoFileResourceServiceImpl,WebpageServiceImpl
@Service("identifiableService") @Transactional(rollbackFor=java.lang.Exception.class) public class IdentifiableServiceImpl<I extends de.digitalcollections.model.identifiable.Identifiable> extends Object implements IdentifiableService<I>
-
-
Field Summary
Fields Modifier and Type Field Description protected IdentifierServiceidentifierServiceprotected IdentifiableRepository<I>repository
-
Constructor Summary
Constructors Constructor Description IdentifiableServiceImpl(IdentifiableRepository<I> repository, IdentifierService identifierService, UrlAliasService urlAliasService, LocaleService localeService, CudamiConfig cudamiConfig)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddRelatedEntity(UUID identifiableUuid, UUID entityUuid)voidaddRelatedFileresource(UUID identifiableUuid, UUID fileResourceUuid)longcount()booleandelete(List<UUID> uuids)protected voidfilterByLabel(de.digitalcollections.model.list.paging.PageResponse<I> pageResponse, de.digitalcollections.model.list.filtering.FilterCriterion<String> labelFilter)Special logic to filter by label, optionally paying attention to the language.de.digitalcollections.model.list.paging.PageResponse<I>find(de.digitalcollections.model.list.paging.PageRequest pageRequest)List<I>find(String searchTerm, int maxResults)de.digitalcollections.model.list.paging.PageResponse<I>findByLanguageAndInitial(de.digitalcollections.model.list.paging.PageRequest pageRequest, String language, String initial)List<I>getAllFull()List<I>getAllReduced()Returns a list of all identifiables, reduced to their identifiers and last modification dateIgetByIdentifier(de.digitalcollections.model.identifiable.Identifier identifier)IgetByIdentifier(String namespace, String id)IgetByUuid(UUID uuid)IgetByUuidAndLocale(UUID uuid, Locale locale)List<Locale>getLanguages()List<de.digitalcollections.model.identifiable.entity.Entity>getRelatedEntities(UUID identifiableUuid)List<de.digitalcollections.model.identifiable.resource.FileResource>getRelatedFileResources(UUID identifiableUuid)protected IreduceMultilanguageFieldsToGivenLocale(I identifiable, Locale locale)Isave(I identifiable)protected voidsetDefaultSorting(de.digitalcollections.model.list.paging.PageRequest pageRequest)List<de.digitalcollections.model.identifiable.entity.Entity>setRelatedEntities(UUID identifiableUuid, List<de.digitalcollections.model.identifiable.entity.Entity> entities)List<de.digitalcollections.model.identifiable.resource.FileResource>setRelatedFileResources(UUID identifiableUuid, List<de.digitalcollections.model.identifiable.resource.FileResource> fileResources)Iupdate(I identifiable)-
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.business.api.service.identifiable.IdentifiableService
addRelatedEntity, addRelatedFileresource, cleanupLabelFromUnwantedLocales, delete, getRelatedEntities, getRelatedFileResources, saveRelatedEntities, setRelatedFileResources
-
-
-
-
Field Detail
-
identifierService
protected IdentifierService identifierService
-
repository
protected IdentifiableRepository<I extends de.digitalcollections.model.identifiable.Identifiable> repository
-
-
Constructor Detail
-
IdentifiableServiceImpl
public IdentifiableServiceImpl(@Qualifier("identifiableRepositoryImpl") IdentifiableRepository<I> repository, IdentifierService identifierService, UrlAliasService urlAliasService, LocaleService localeService, CudamiConfig cudamiConfig)
-
-
Method Detail
-
addRelatedEntity
public void addRelatedEntity(UUID identifiableUuid, UUID entityUuid)
- Specified by:
addRelatedEntityin interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>
-
addRelatedFileresource
public void addRelatedFileresource(UUID identifiableUuid, UUID fileResourceUuid)
- Specified by:
addRelatedFileresourcein interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>
-
count
public long count()
- Specified by:
countin interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>
-
delete
public boolean delete(List<UUID> uuids) throws IdentifiableServiceException
- Specified by:
deletein interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>- Throws:
IdentifiableServiceException
-
filterByLabel
protected void filterByLabel(de.digitalcollections.model.list.paging.PageResponse<I> pageResponse, de.digitalcollections.model.list.filtering.FilterCriterion<String> labelFilter)
Special logic to filter by label, optionally paying attention to the language. The passedPageResponsecould be modified.- Parameters:
pageResponse- the response from the repo, must always contain the request too (if everything goes right)
-
find
public de.digitalcollections.model.list.paging.PageResponse<I> find(de.digitalcollections.model.list.paging.PageRequest pageRequest)
- Specified by:
findin interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>
-
find
public List<I> find(String searchTerm, int maxResults)
- Specified by:
findin interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>
-
findByLanguageAndInitial
public de.digitalcollections.model.list.paging.PageResponse<I> findByLanguageAndInitial(de.digitalcollections.model.list.paging.PageRequest pageRequest, String language, String initial)
- Specified by:
findByLanguageAndInitialin interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>
-
getAllFull
public List<I> getAllFull()
- Specified by:
getAllFullin interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>- Returns:
- list of ALL identifiables with FULL data. USE WITH CARE (only for internal workflow, NOT FOR USER INTERACTION!)!!!
-
getAllReduced
public List<I> getAllReduced()
Description copied from interface:IdentifiableServiceReturns a list of all identifiables, reduced to their identifiers and last modification date- Specified by:
getAllReducedin interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>- Returns:
- partially filled complete list of all identifiables of implementing repository entity type
-
getByIdentifier
public I getByIdentifier(de.digitalcollections.model.identifiable.Identifier identifier)
- Specified by:
getByIdentifierin interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>
-
getByIdentifier
public I getByIdentifier(String namespace, String id)
- Specified by:
getByIdentifierin interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>
-
getByUuid
public I getByUuid(UUID uuid)
- Specified by:
getByUuidin interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>
-
getByUuidAndLocale
public I getByUuidAndLocale(UUID uuid, Locale locale) throws IdentifiableServiceException
- Specified by:
getByUuidAndLocalein interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>- Throws:
IdentifiableServiceException
-
getLanguages
public List<Locale> getLanguages()
- Specified by:
getLanguagesin interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>
-
getRelatedEntities
public List<de.digitalcollections.model.identifiable.entity.Entity> getRelatedEntities(UUID identifiableUuid)
- Specified by:
getRelatedEntitiesin interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>
-
getRelatedFileResources
public List<de.digitalcollections.model.identifiable.resource.FileResource> getRelatedFileResources(UUID identifiableUuid)
- Specified by:
getRelatedFileResourcesin interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>
-
reduceMultilanguageFieldsToGivenLocale
protected I reduceMultilanguageFieldsToGivenLocale(I identifiable, Locale locale)
-
save
public I save(I identifiable) throws IdentifiableServiceException, ValidationException
- Specified by:
savein interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>- Throws:
IdentifiableServiceExceptionValidationException
-
setDefaultSorting
protected void setDefaultSorting(de.digitalcollections.model.list.paging.PageRequest pageRequest)
-
setRelatedEntities
public List<de.digitalcollections.model.identifiable.entity.Entity> setRelatedEntities(UUID identifiableUuid, List<de.digitalcollections.model.identifiable.entity.Entity> entities)
- Specified by:
setRelatedEntitiesin interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>
-
setRelatedFileResources
public List<de.digitalcollections.model.identifiable.resource.FileResource> setRelatedFileResources(UUID identifiableUuid, List<de.digitalcollections.model.identifiable.resource.FileResource> fileResources)
- Specified by:
setRelatedFileResourcesin interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>
-
update
public I update(I identifiable) throws IdentifiableServiceException, ValidationException
- Specified by:
updatein interfaceIdentifiableService<I extends de.digitalcollections.model.identifiable.Identifiable>- Throws:
IdentifiableServiceExceptionValidationException
-
-