1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.edl.impl;
17
18
19
20
21
22
23
24
25 public class UserAction {
26
27 public static final String ACTION_CREATE = "initiate";
28 public static final String ACTION_LOAD = "load";
29 public static final String ACTION_UNDEFINED = "undefined";
30 public static final String ACTION_ROUTE = "route";
31 public static final String ACTION_APPROVE = "approve";
32 public static final String ACTION_DISAPPROVE = "disapprove";
33 public static final String ACTION_CANCEL = "cancel";
34 public static final String ACTION_BLANKETAPPROVE = "blanketApprove";
35 public static final String ACTION_FYI = "fyi";
36 public static final String ACTION_ACKNOWLEDGE = "acknowledge";
37 public static final String ACTION_SAVE = "save";
38 public static final String ACTION_COMPLETE = "complete";
39 public static final String ACTION_DELETE = "delete";
40 public static final String ACTION_RETURN_TO_PREVIOUS = "returnToPrevious";
41 public static final String ACTION_REFRESH_FROM_LOOKUP = "refresh";
42
43 public static final String ACTION_CREATE_LABEL = "initiate";
44 public static final String ACTION_LOAD_LABEL = "load";
45 public static final String ACTION_ROUTE_LABEL = "submit";
46 public static final String ACTION_APPROVE_LABEL = "approve";
47 public static final String ACTION_DISAPPROVE_LABEL = "disapprove";
48 public static final String ACTION_CANCEL_LABEL = "cancel";
49 public static final String ACTION_BLANKETAPPROVE_LABEL = "blanket approve";
50 public static final String ACTION_FYI_LABEL = "fyi";
51 public static final String ACTION_ACKNOWLEDGE_LABEL = "acknowledge";
52 public static final String ACTION_SAVE_LABEL = "save";
53 public static final String ACTION_COMPLETE_LABEL = "complete";
54 public static final String ACTION_DELETE_LABEL = "delete";
55 public static final String ACTION_RETURN_TO_PREVIOUS_LABEL = "return to previous";
56 public static final String ACTION_REFRESH_FROM_LOOKUP_LABEL = ACTION_REFRESH_FROM_LOOKUP;
57
58 public static final String[] LOAD_ACTIONS = new String[] {
59 ACTION_LOAD,
60 ACTION_CREATE
61 };
62
63 public static final String[] REPLACE_VERSION_ACTIONS = new String[] {
64 ACTION_UNDEFINED
65 };
66
67 public static final String[] VALIDATABLE_ACTIONS = new String[] {
68 ACTION_SAVE,
69 ACTION_ROUTE,
70 ACTION_APPROVE,
71 ACTION_ACKNOWLEDGE,
72 ACTION_COMPLETE,
73 ACTION_FYI,
74 ACTION_DISAPPROVE,
75 ACTION_RETURN_TO_PREVIOUS
76 };
77
78 public static final String[] ANNOTATABLE_ACTIONS = new String[] {
79 ACTION_APPROVE,
80 ACTION_ACKNOWLEDGE,
81 ACTION_COMPLETE,
82 ACTION_FYI,
83 ACTION_DISAPPROVE,
84 ACTION_CANCEL,
85 ACTION_RETURN_TO_PREVIOUS
86 };
87
88 public static final String[] EDITABLE_ACTIONS = new String[] {
89 ACTION_CREATE,
90 ACTION_ROUTE,
91 ACTION_APPROVE,
92 ACTION_DISAPPROVE,
93 ACTION_COMPLETE
94 };
95
96 private String action;
97
98 public UserAction(String action) {
99 if (action.equals(ACTION_CREATE_LABEL)) {
100 this.action = ACTION_CREATE;
101 } else if (action.equals(ACTION_LOAD_LABEL)) {
102 this.action = ACTION_LOAD;
103 } else if (action.equals(ACTION_ROUTE_LABEL)) {
104 this.action = ACTION_ROUTE;
105 } else if (action.equals(ACTION_APPROVE_LABEL)) {
106 this.action = ACTION_APPROVE;
107 } else if (action.equals(ACTION_DISAPPROVE_LABEL)) {
108 this.action = ACTION_DISAPPROVE;
109 } else if (action.equals(ACTION_CANCEL_LABEL)) {
110 this.action = ACTION_CANCEL;
111 } else if (action.equals(ACTION_BLANKETAPPROVE_LABEL)) {
112 this.action = ACTION_BLANKETAPPROVE;
113 } else if (action.equals(ACTION_FYI_LABEL)) {
114 this.action = ACTION_FYI;
115 } else if (action.equals(ACTION_ACKNOWLEDGE_LABEL)) {
116 this.action = ACTION_ACKNOWLEDGE;
117 } else if (action.equals(ACTION_SAVE_LABEL)) {
118 this.action = ACTION_SAVE;
119 } else if (action.equals(ACTION_COMPLETE_LABEL)) {
120 this.action = ACTION_COMPLETE;
121 } else if (action.equals(ACTION_DELETE_LABEL)) {
122 this.action = ACTION_DELETE;
123 } else if (action.equals(ACTION_RETURN_TO_PREVIOUS_LABEL)) {
124 this.action = ACTION_RETURN_TO_PREVIOUS;
125 } else if (action.equals(ACTION_REFRESH_FROM_LOOKUP_LABEL)) {
126 this.action = ACTION_REFRESH_FROM_LOOKUP;
127 } else {
128 this.action = action;
129 }
130 }
131
132 public String getAction() {
133 return action;
134 }
135
136 public boolean isLoadAction() {
137 return containsAction(LOAD_ACTIONS, action);
138 }
139
140 public boolean isIncrementVersionAction() {
141 return !isLoadAction() && !isReplaceVersionAction() && !ACTION_REFRESH_FROM_LOOKUP.equals(action);
142 }
143
144 public boolean isReplaceVersionAction() {
145 return containsAction(REPLACE_VERSION_ACTIONS, action);
146 }
147
148 public boolean isValidatableAction() {
149 return containsAction(VALIDATABLE_ACTIONS, action);
150 }
151
152 public boolean isAnnotatableAction() {
153 return containsAction(ANNOTATABLE_ACTIONS, action);
154 }
155
156 public boolean isEditableAction() {
157 return containsAction(EDITABLE_ACTIONS, action);
158 }
159
160 private boolean containsAction(String[] actions, String action) {
161 for (int index = 0; index < actions.length; index++) {
162 if (actions[index].equals(action)) {
163 return true;
164 }
165 }
166 return false;
167 }
168
169 }