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 }