001: /*
002: * Copyright 2007 The Kuali Foundation.
003: *
004: * Licensed under the Educational Community License, Version 1.0 (the "License");
005: * you may not use this file except in compliance with the License.
006: * You may obtain a copy of the License at
007: *
008: * http://www.opensource.org/licenses/ecl1.php
009: *
010: * Unless required by applicable law or agreed to in writing, software
011: * distributed under the License is distributed on an "AS IS" BASIS,
012: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013: * See the License for the specific language governing permissions and
014: * limitations under the License.
015: */
016: package org.kuali.module.kra.routingform.service;
017:
018: import java.util.List;
019:
020: import org.kuali.module.kra.routingform.bo.DueDateType;
021: import org.kuali.module.kra.routingform.bo.PersonRole;
022: import org.kuali.module.kra.routingform.bo.ProjectType;
023: import org.kuali.module.kra.routingform.bo.ResearchTypeCode;
024: import org.kuali.module.kra.routingform.bo.RoutingFormPersonnel;
025: import org.kuali.module.kra.routingform.bo.SubmissionType;
026: import org.kuali.module.kra.routingform.document.RoutingFormDocument;
027:
028: /**
029: * This interface defines methods that a RoutingFormMainPageService must provide
030: */
031: public interface RoutingFormMainPageService {
032:
033: /**
034: * Setup maintainables for Main Page: DueDateType, SubmissionType, ProjectType, Purpose, ResearchTypeCode, and PersonRole.
035: *
036: * @param routingFormDocument the doc to set up
037: */
038: public void setupMainPageMaintainables(
039: RoutingFormDocument routingFormDocument);
040:
041: /**
042: * Returns the complete list of SubmissionTypes except for the inactive ones.
043: *
044: * @return typed list of SubmissionTypes
045: */
046: public List<SubmissionType> getSubmissionTypes();
047:
048: /**
049: * Returns the complete list of ResearchTypeCodes except for the inactive ones.
050: *
051: * @return typed list of ResearchTypeCodes
052: */
053: public List<ResearchTypeCode> getResearchTypeCodes();
054:
055: /**
056: * Returns the complete list of ProjectTypes except for the inactive ones.
057: *
058: * @return typed list of project types
059: */
060: public List<ProjectType> getProjectTypes();
061:
062: /**
063: * Returns the complete list of PersonRoles except for the inactive ones.
064: *
065: * @return typed list of person roles
066: */
067: public List<PersonRole> getPersonRoles();
068:
069: /**
070: * Returns the complete list of DueDateTypes except for the inactive ones.
071: *
072: * @return typed list of due date types
073: */
074: public List<DueDateType> getDueDateTypes();
075:
076: /**
077: * Checks if at least one of the people in the list is a CoPd.
078: *
079: * @param routingFormPersonnel
080: * @return
081: */
082: public boolean checkCoPdExistance(
083: List<RoutingFormPersonnel> routingFormPersonnel);
084:
085: /**
086: * Returns the first project director found in a list. If none is found it return null;
087: *
088: * @param routingFormPersonnel
089: * @return
090: */
091: public RoutingFormPersonnel getProjectDirector(
092: List<RoutingFormPersonnel> routingFormPersonnel);
093:
094: /**
095: * Returns the first contact person found in a list. If none is found it return null;
096: *
097: * @param routingFormPersonnel
098: * @return
099: */
100: public RoutingFormPersonnel getContactPerson(
101: List<RoutingFormPersonnel> routingFormPersonnel);
102: }
|