001package org.kuali.student.lum.program.server; 002 003/** 004 * This interface allows us to inject a different StateChangeService implementation for each of 005 * the program types (credential, core, major discipline) using the spring configuration. 006 * 007 * @author Kuali Rice Team (kuali-rice@googlegroups.com) 008 * 009 */ 010public interface StateChangeService { 011 012 /** 013 * 014 * This method will eventually be called from the Rice workflow after a major discipline, core, or 015 * credential program passes back into the local workflow. It executes the same code as the other 016 * change state method, but uses null for entry and enroll term, since they will not be available in 017 * the rice workflow (these parameters are entered when a program is superseded) 018 * 019 * @param programId 020 * @param newState 021 * @throws Exception 022 */ 023 public void changeState(String programId, String newState) throws Exception; 024 025 /** 026 * 027 * This method is called from the servlet when state is changed in the GWT application (e.g. the user 028 * approves, activates, or creates a new major discipline, credential, or core program) 029 * 030 * @param endEntryTerm 031 * @param endEnrollTerm 032 * @param programId 033 * @param newState 034 * @throws Exception 035 */ 036 public void changeState(String endEntryTerm, String endEnrollTerm, String endInstAdmitTerm, String programId, String newState) throws Exception; 037}