View Javadoc

1   package org.kuali.student.common.dto;
2   
3   public class DtoConstants {
4    
5       public final static String STATE_DRAFT = "Draft"; 
6       public final static String STATE_SUBMITTED = "Submitted";
7       public final static String STATE_WITHDRAWN = "Withdrawn";
8       public final static String STATE_APPROVED = "Approved";
9       public final static String STATE_NOT_APPROVED = "Not Approved";
10      public final static String STATE_ACTIVE = "Active";
11      public final static String STATE_INACTIVE = "Inactive";
12      public final static String STATE_SUPERSEDED  = "Superseded";
13      public final static String STATE_SUSPENDED  = "Suspended";
14      public final static String STATE_RETIRED = "Retired";
15  
16  	
17  	public static final String DTO_STATE = "DtoState";
18  	public static final String DTO_NEXT_STATE = "DtoNextState"; 
19  
20  	//FIXME: Need to split out proposal states (ie. workflow states) versus dto states
21  	public enum DtoState {
22  		DRAFT, SUBMITTED, APPROVED, ACTIVE, INACTIVE, RETIRED, SUPERSEDED, SAVED, ENROUTE;
23  
24  		public boolean equalsString(String state){
25  			if (state != null){
26  				return this.toString().equals(state.toUpperCase());
27  			}
28  			
29  			return false;
30  		}
31  		
32  		/**
33  	     * This is used to determine the next state.
34  	     * 
35  	     * TODO: Ideally this method should not be hardcoded here.  Also determining next state may
36  	     * be a more complicated and not just be a simple sequence.
37  	     * 
38  	     * @param state
39  	     * @return the next state
40  	     */
41  		public static DtoState getNextState(String state){
42  			// Element States
43  			if (DRAFT.equalsString(state)) {
44  	            return SUBMITTED;
45  	        } else if (SUBMITTED.equalsString(state)) {
46  	            return APPROVED;
47  	        } else if (APPROVED.equalsString(state)) {
48  	        	return ACTIVE;
49  	        } else if (ACTIVE.equalsString(state)) {
50  	        	return INACTIVE;
51  	        } else if (INACTIVE.equalsString(state)) {
52  	        	return RETIRED;
53  	        
54  	        // Proposal States
55  	        } else if (SAVED.equalsString(state)) {
56  	        	return ENROUTE;
57  	        } else if (ENROUTE.equalsString(state)) {
58  	        	return APPROVED;
59  	        }
60  					
61  			
62  			return null;
63  		}
64  		
65  		public static String getNextStateAsString(String state){
66  			DtoState dtoState = getNextState(state);
67  			if (dtoState == null){
68  				return null;
69  			} else {
70  				return dtoState.toString();
71  			}
72  		}
73  	}
74  }