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 }