Merge branch 'release/5.2.0'
[cdmlib.git] / cdmlib-services / src / main / java / eu / etaxonomy / cdm / api / service / registration / IRegistrationWorkingSetService.java
1 /**
2 * Copyright (C) 2017 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.cdm.api.service.registration;
10
11 import java.io.IOException;
12 import java.util.Collection;
13 import java.util.List;
14 import java.util.Set;
15 import java.util.UUID;
16
17 import eu.etaxonomy.cdm.api.service.dto.RegistrationDTO;
18 import eu.etaxonomy.cdm.api.service.dto.RegistrationWorkingSet;
19 import eu.etaxonomy.cdm.api.service.exception.RegistrationValidationException;
20 import eu.etaxonomy.cdm.api.service.pager.Pager;
21 import eu.etaxonomy.cdm.model.common.User;
22 import eu.etaxonomy.cdm.model.name.Registration;
23 import eu.etaxonomy.cdm.model.name.RegistrationStatus;
24 import eu.etaxonomy.cdm.model.name.TypeDesignationStatusBase;
25 import eu.etaxonomy.cdm.persistence.query.OrderHint;
26
27 /**
28 * @author a.kohlbecker
29 * @since May 4, 2017
30 *
31 */
32 public interface IRegistrationWorkingSetService {
33
34 /**
35 * @param id the CDM Entity id
36 * @return
37 */
38 public RegistrationDTO loadDtoById(Integer id);
39
40 public RegistrationDTO loadDtoByUuid(UUID uuid);
41
42 public Pager<RegistrationDTO> pageDTOs(Integer pageSize, Integer pageIndex);
43
44 public Pager<RegistrationDTO> pageDTOs(User submitter, Collection<RegistrationStatus> includedStatus,
45 String identifierFilterPattern, String taxonNameFilterPattern, Set<TypeDesignationStatusBase> typeStatusFilter,
46 Integer pageSize, Integer pageIndex, List<OrderHint> orderHints);
47
48 public Pager<RegistrationDTO> pageDTOs(String identifier, Integer pageIndex, Integer pageSize) throws IOException;
49
50 /**
51 * @param referenceID
52 * @param resolveSections resolve the higher publication unit and build the RegistrationWorkingSet for that reference. E.e. For journal sections the
53 * use the inReference which is the journal article.
54 *
55 * @return
56 */
57 public RegistrationWorkingSet loadWorkingSetByReferenceID(Integer referenceID, boolean resolveSections) throws RegistrationValidationException;
58
59 /**
60 * @param referenceID
61 * @param resolveSections resolve the higher publication unit and build the RegistrationWorkingSet for that reference. E.e. For journal sections the
62 * use the inReference which is the journal article.
63 * @return
64 */
65 public RegistrationWorkingSet loadWorkingSetByReferenceUuid(UUID referenceUuid, boolean resolveSections) throws RegistrationValidationException;
66
67 public Set<RegistrationDTO> loadBlockingRegistrations(UUID blockedRegistrationUuid);
68
69 Pager<RegistrationDTO> convertToDTOPager(Pager<Registration> regPager);
70
71 Pager<RegistrationDTO> pageDTOs(UUID submitterUuid, Collection<RegistrationStatus> includedStatus, String identifierFilterPattern, String taxonNameFilterPattern, Collection<UUID> typeDesignationStatusUuids, Integer pageSize, Integer pageIndex,
72 List<OrderHint> orderHints);
73
74 }