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