View Javadoc
1   /*
2    * Kuali Coeus, a comprehensive research administration system for higher education.
3    * 
4    * Copyright 2005-2015 Kuali, Inc.
5    * 
6    * This program is free software: you can redistribute it and/or modify
7    * it under the terms of the GNU Affero General Public License as
8    * published by the Free Software Foundation, either version 3 of the
9    * License, or (at your option) any later version.
10   * 
11   * This program is distributed in the hope that it will be useful,
12   * but WITHOUT ANY WARRANTY; without even the implied warranty of
13   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   * GNU Affero General Public License for more details.
15   * 
16   * You should have received a copy of the GNU Affero General Public License
17   * along with this program.  If not, see <http://www.gnu.org/licenses/>.
18   */
19  package org.kuali.coeus.s2sgen.impl.person;
20  
21  import org.kuali.coeus.propdev.api.core.ProposalDevelopmentDocumentContract;
22  import org.kuali.coeus.propdev.api.person.ProposalPersonContract;
23  
24  import org.kuali.coeus.s2sgen.impl.citizenship.CitizenshipType;
25  
26  import java.util.List;
27  
28  public interface S2SProposalPersonService {
29  
30      /**
31       *
32       * This method limits the number of key persons to n, returns list of key
33       * persons, first n in case firstN is true, or all other than first n, in
34       * case of firstN being false
35       *
36       * @param keyPersons
37       *            list of {@link org.kuali.coeus.propdev.api.person.ProposalPersonContract}
38       * @param firstN
39       *            value that determines whether the returned list should contain
40       *            first n persons or the rest of persons
41       * @param n
42       *            number of key persons that are considered as not extra persons
43       * @return list of {@link org.kuali.coeus.propdev.api.person.ProposalPersonContract}
44       */
45      List<ProposalPersonContract> getNKeyPersons(List<? extends ProposalPersonContract> keyPersons,
46                                                         boolean firstN, int n);
47  
48      /**
49       *
50       * This method is to get PrincipalInvestigator from person list
51       *
52       * @param pdDoc
53       *            Proposal development document.
54       * @return ProposalPerson PrincipalInvestigator for the proposal.
55       */
56      ProposalPersonContract getPrincipalInvestigator(
57              ProposalDevelopmentDocumentContract pdDoc);
58  
59      /**
60       * Finds all the co-investigators associated with the provided pdDoc.
61       * @param pdDoc
62       * @return List of Co-Investigators {@link org.kuali.coeus.propdev.api.person.ProposalPersonContract}.
63       */
64  
65      List<ProposalPersonContract> getCoInvestigators(ProposalDevelopmentDocumentContract pdDoc);
66  
67      /**
68       * Finds all the key Person associated with the provided pdDoc.
69       * @param pdDoc
70       * @return List of Key Persons {@link org.kuali.coeus.propdev.api.person.ProposalPersonContract}.
71       */
72  
73      List<ProposalPersonContract> getKeyPersons (ProposalDevelopmentDocumentContract pdDoc);
74  
75      /**
76       *
77       * This method is used to get the citizenship from either warehouse or from person custom element
78       * @param proposalPerson
79       * @return
80       */
81      CitizenshipType getCitizenship(ProposalPersonContract proposalPerson);
82  }