Coverage Report - org.kuali.student.common.dto.DtoConstants
 
Classes in this File Line Coverage Branch Coverage Complexity
DtoConstants
0%
0/2
N/A
6.333
DtoConstants$DtoState
0%
0/22
0%
0/16
6.333
 
 1  
 package org.kuali.student.common.dto;
 2  
 
 3  0
 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 = "NotApproved";
 10  
     public final static String STATE_ACTIVE = "Active";
 11  
     public final static String STATE_SUPERSEDED  = "Superseded";
 12  
     public final static String STATE_SUSPENDED  = "Suspended";
 13  
     public final static String STATE_RETIRED = "Retired";
 14  
 
 15  
    
 16  
     
 17  
         public static final String DTO_STATE = "DtoState";
 18  
         public static final String DTO_NEXT_STATE = "DtoNextState";
 19  
         public static final String DTO_WORKFLOW_NODE = "DtoWorkflowNode";
 20  
         public static final String WORKFLOW_NODE_PRE_ROUTE = "PreRoute";
 21  
 
 22  
         //FIXME: Need to split out proposal states (ie. workflow states) versus dto states
 23  0
         public enum DtoState {
 24  0
                 DRAFT, SUBMITTED, APPROVED, ACTIVE, SUSPENDED, RETIRED, SUPERSEDED, SAVED, ENROUTE;
 25  
 
 26  
                 public boolean equalsString(String state){
 27  0
                         if (state != null){
 28  0
                                 return this.toString().equals(state.toUpperCase());
 29  
                         }
 30  
                         
 31  0
                         return false;
 32  
                 }
 33  
                 
 34  
                 /**
 35  
              * This is used to determine the next state.
 36  
              * 
 37  
              * TODO: Ideally this method should not be hardcoded here.  Also determining next state may
 38  
              * be a more complicated and not just be a simple sequence.
 39  
              * 
 40  
              * @param state
 41  
              * @return the next state
 42  
              */
 43  
                 public static DtoState getNextState(String state){
 44  
                         // Element States
 45  0
                         if (DRAFT.equalsString(state)) {
 46  0
                     return ACTIVE;
 47  0
                 } else if (APPROVED.equalsString(state)) {
 48  0
                         return ACTIVE;
 49  0
                 } else if (ACTIVE.equalsString(state)) {
 50  0
                         return SUSPENDED;
 51  0
                 } else if (SUSPENDED.equalsString(state)) {
 52  0
                         return ACTIVE;
 53  
                 
 54  
                 // Proposal States
 55  0
                 } else if (SAVED.equalsString(state)) {
 56  0
                         return ENROUTE;
 57  0
                 } else if (ENROUTE.equalsString(state)) {
 58  0
                         return APPROVED;
 59  
                 }
 60  
                                         
 61  
                         
 62  0
                         return null;
 63  
                 }
 64  
                 
 65  
                 public static String getNextStateAsString(String state){
 66  0
                         DtoState dtoState = getNextState(state);
 67  0
                         if (dtoState == null){
 68  0
                                 return null;
 69  
                         } else {
 70  0
                                 return dtoState.toString();
 71  
                         }
 72  
                 }
 73  
         }
 74  
 }