View Javadoc
1   package org.kuali.coeus.s2sgen.impl.person;
2   
3   import org.kuali.coeus.propdev.api.core.ProposalDevelopmentDocumentContract;
4   import org.kuali.coeus.propdev.api.person.ProposalPersonContract;
5   
6   import org.kuali.coeus.s2sgen.impl.citizenship.CitizenshipType;
7   
8   import java.util.List;
9   
10  public interface S2SProposalPersonService {
11  
12      /**
13       *
14       * This method limits the number of key persons to n, returns list of key
15       * persons, first n in case firstN is true, or all other than first n, in
16       * case of firstN being false
17       *
18       * @param keyPersons
19       *            list of {@link org.kuali.coeus.propdev.api.person.ProposalPersonContract}
20       * @param firstN
21       *            value that determines whether the returned list should contain
22       *            first n persons or the rest of persons
23       * @param n
24       *            number of key persons that are considered as not extra persons
25       * @return list of {@link org.kuali.coeus.propdev.api.person.ProposalPersonContract}
26       */
27      List<ProposalPersonContract> getNKeyPersons(List<? extends ProposalPersonContract> keyPersons,
28                                                         boolean firstN, int n);
29  
30      /**
31       *
32       * This method is to get PrincipalInvestigator from person list
33       *
34       * @param pdDoc
35       *            Proposal development document.
36       * @return ProposalPerson PrincipalInvestigator for the proposal.
37       */
38      ProposalPersonContract getPrincipalInvestigator(
39              ProposalDevelopmentDocumentContract pdDoc);
40  
41      /**
42       * Finds all the co-investigators associated with the provided pdDoc.
43       * @param pdDoc
44       * @return List of Co-Investigators {@link org.kuali.coeus.propdev.api.person.ProposalPersonContract}.
45       */
46  
47      List<ProposalPersonContract> getCoInvestigators(ProposalDevelopmentDocumentContract pdDoc);
48  
49      /**
50       * Finds all the key Person associated with the provided pdDoc.
51       * @param pdDoc
52       * @return List of Key Persons {@link org.kuali.coeus.propdev.api.person.ProposalPersonContract}.
53       */
54  
55      List<ProposalPersonContract> getKeyPersons (ProposalDevelopmentDocumentContract pdDoc);
56  
57      /**
58       *
59       * This method is used to get the citizenship from either warehouse or from person custom element
60       * @param proposalPerson
61       * @return
62       */
63      CitizenshipType getCitizenship(ProposalPersonContract proposalPerson);
64  }