View Javadoc
1   /**
2    * Copyright 2005-2016 The Kuali Foundation
3    *
4    * Licensed under the Educational Community License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    * http://www.opensource.org/licenses/ecl2.php
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package org.kuali.rice.kew.api;
17  
18  import org.kuali.rice.core.api.CoreConstants;
19  import org.kuali.rice.core.api.CoreConstants.Versions;
20  import org.kuali.rice.core.api.util.RiceConstants;
21  import org.kuali.rice.kew.api.action.ActionType;
22  import org.kuali.rice.kew.api.doctype.DocumentTypePolicy;
23  import org.kuali.rice.kew.api.document.DocumentStatus;
24  
25  import java.util.ArrayList;
26  import java.util.HashMap;
27  import java.util.HashSet;
28  import java.util.Iterator;
29  import java.util.List;
30  import java.util.Map;
31  import java.util.Set;
32  
33  public final class KewApiConstants {
34          public static final String KEW_MODULE_NAMESPACE = "KEW";
35      
36      public static final String WEBAPP_DIRECTORY = "/kew";
37  
38      public static final String USE_OUT_BOX = "USE_OUT_BOX%";
39  
40      /**
41       * Node state key under which rule selector can be specified on a per-nodeinstance basis
42       */
43      public static final String RULE_SELECTOR_NODE_STATE_KEY = "__RULE_SELECTOR__";
44      /**
45       * Node state key under which rule nme can be specified on a per-nodeinstance basis
46       */
47      public static final String RULE_NAME_NODE_STATE_KEY = "__RULE_NAME__";
48  
49      public static final String DEFAULT_DOCUMENT_TYPE_LABEL = "Undefined";
50  
51      public static final String DOCUMENT_TYPE_INHERITED_VALUE_INDICATOR = "(Inherited from Parent)";
52      public static final String DOCUMENT_TYPE_SYSTEM_DEFAULT_INDICATOR = "(System Default)";
53  
54      public static final String KEW_MESSAGING_ENTITY = "KEW";
55  
56      public static final String MESSAGING_MEMORY = "memory";
57  
58      public static final String CORE_WORKFLOW_DATASOURCE = "kewDataSource";
59      // not strictly necessary to specify if connection descriptor is configured as default
60      public static final String CORE_WORKFLOW_DATASOURCE_JCD_ALIAS = CORE_WORKFLOW_DATASOURCE;
61  
62      public static final String PLUGIN_HOT_DEPLOY_MAX_WAIT_TIME = "Plugin.hotDeploy.maxWaitTime";
63      public static final String PLUGIN_HOT_DEPLOY_SAFE_TIME = "Plugin.hotDeploy.safeTime";
64  
65      public static final String KEW_URL_HOST = "kew.url.host";
66      public static final String HTTP_SERVICE_PORT = "http.service.port";
67  	public static final String KEW_SERVER_CONTEXT = "kew.server.context";
68  
69      public static final String RELOAD_ACTION_LIST = "RELOAD_ACTION_LIST";
70      public static final String DELEGATION_WIZARD = "delegationWizard";
71      public static final String PERFORM_REALTIME_DOCUMENT_UPGRADE = "Document.PerformRealtimeUpgrade";
72      //checkRouteLogAuthentication
73  
74      public static final long DEFAULT_CACHE_REQUEUE_WAIT_TIME = 5000;
75  
76      public static final int DEFAULT_THREAD_POOL_SIZE = 5;
77  
78      public static final String STANDARD_DOC_SEARCH_GENERATOR_CLASS_CONFIG_PARM = "documentSearch.generator.class.name";
79      public static final String STANDARD_DOC_SEARCH_RESULT_PROCESSOR_CLASS_CONFIG_PARM = "documentSearch.resultProcessor.class.name";
80  
81      public static final String DELEGATE_CHANGE_AR_GENERATION_KEY = "DelegateRuleChange.IsGenerateActionRequests";
82  
83      public static final String WORKGROUP_ROUTE_LOG_POPUP_KEY = "Workgroup.IsRouteLogPopup";
84      public static final String WORKGROUP_ROUTE_LOG_POPUP_VALUE = "true";
85  
86      public static final String WORKGROUP_SEARCH_INSTRUCTION_KEY = "Workgroup.Search.Instruction";
87      public static final String SUB_ACCOUNT_SEARCH_INSTRUCTION_KEY = "SubAccount.Search.Instruction";
88      public static final String USER_SEARCH_INSTRUCTION_KEY = "User.Search.Instruction";
89      public static final String WORKGROUP_CREATE_NEW_INSTRUCTION_KEY = "Workgroup.CreateNew.Instruction";
90      public static final String USER_CREATE_NEW_INSTRUCTION_KEY = "User.CreateNew.Instruction";
91  
92      public static final String ACTION_LIST_ATTRIBUTE_CLASS_PROPERTY = "customActionListAttributeClassName";
93      public static final String EMAIL_ATTRIBUTE_CLASS_PROPERTY = "customEmailAttributeClassName";
94      public static final String NOTE_ATTRIBUTE_CLASS_PROPERTY = "customNoteAttributeClassName";
95  
96      // DelegationType values
97      public static final String DELEGATION_PRIMARY = "PRIMARY";
98      public static final String DELEGATION_SECONDARY = "SECONDARY";
99  
100     /**
101      * This is a UI option, not valid data for a delgationType value.
102      */
103     public static final String DELEGATION_BOTH = "E";
104     public static final String DELEGATION_BOTH_LABEL = "Both";
105 
106     public static final String FLEX_RM_NAME = "FRM";
107     public static final String DOC_HANDLER_REDIRECT_PAGE = "DocHandler.do";
108     public static final String DOCUMENT_ROUTING_REPORT_PAGE = "RoutingReport.do";
109     public static final String FEEDBACK_URL = "feedback.do";
110 
111     // Routing Report constants
112     public static final String DOCUMENT_TYPE_NAME_ATTRIBUTE_NAME = "documentTypeParam";
113     public static final String INITIATOR_ID_ATTRIBUTE_NAME = "initiatorPrincipalId";
114     public static final String DOCUMENT_CONTENT_ATTRIBUTE_NAME = "documentContent";
115     public static final String RETURN_URL_ATTRIBUTE_NAME = "backUrl";
116     public static final String DISPLAY_CLOSE_BUTTON_ATTRIBUTE_NAME = "showCloseButton";
117     public static final String DISPLAY_CLOSE_BUTTON_TRUE_VALUE = "showCloseButton";
118 
119     public static final String DAILY_UNIT = "Daily";
120     public static final String WEEKLY_UNIT = "Weekly";
121     public static final String MONTHLY_UNIT = "Monthly";
122     public static final String YEARLY_UNIT = "Yearly";
123     public static final String SUDS_DATASOURCE = "SUDS";
124     public static final String APP_CODE = "en";
125 
126     public static final String YES_LABEL = "Yes";
127     public static final String NO_LABEL = "No";
128     public static final String INHERITED_CD = "I";
129     public static final String INHERITED_LABEL = "Inherited";
130 
131     public static final String DISAPPROVE_POLICY = DocumentTypePolicy.DISAPPROVE.getCode();
132     public static final String DISAPPROVE_POLICY_CANCEL_CD = "C";
133     public static final String ALLOW_UNREQUESTED_ACTION_POLICY = DocumentTypePolicy.ALLOW_UNREQUESTED_ACTION.getCode();
134     public static final String DEFAULT_APPROVE_POLICY = DocumentTypePolicy.DEFAULT_APPROVE.getCode();
135     public static final String INITIATOR_MUST_ROUTE_POLICY = DocumentTypePolicy.INITIATOR_MUST_ROUTE.getCode();
136     public static final String INITIATOR_MUST_SAVE_POLICY = DocumentTypePolicy.INITIATOR_MUST_SAVE.getCode();
137     public static final String INITIATOR_MUST_CANCEL_POLICY = DocumentTypePolicy.INITIATOR_MUST_CANCEL.getCode();
138     public static final String INITIATOR_MUST_BLANKET_APPROVE_POLICY = DocumentTypePolicy.INITIATOR_MUST_BLANKET_APPROVE.getCode();
139     public static final String USE_KEW_SUPERUSER_DOCHANDLER = DocumentTypePolicy.USE_KEW_SUPERUSER_DOCHANDLER.getCode();
140     public static final String SEND_NOTIFICATION_ON_SU_APPROVE_POLICY = DocumentTypePolicy.SEND_NOTIFICATION_ON_SU_APPROVE.getCode();
141     public static final String ALLOW_SU_POSTPROCESSOR_OVERRIDE_POLICY = DocumentTypePolicy.ALLOW_SU_POSTPROCESSOR_OVERRIDE.getCode();
142     public static final String FAIL_ON_INACTIVE_GROUP_POLICY = DocumentTypePolicy.FAIL_ON_INACTIVE_GROUP.getCode();
143     public static final String ENROUTE_ERROR_SUPPRESSION_POLICY = DocumentTypePolicy.ENROUTE_ERROR_SUPPRESSION.getCode();
144     public static final String REGENERATE_ACTION_REQUESTS_ON_CHANGE_POLICY = DocumentTypePolicy.REGENERATE_ACTION_REQUESTS_ON_CHANGE.getCode();
145     public static final String NOTIFY_PENDING_ON_RETURN_POLICY = DocumentTypePolicy.NOTIFY_PENDING_ON_RETURN.getCode();
146     public static final String NOTIFY_COMPLETED_ON_RETURN_POLICY = DocumentTypePolicy.NOTIFY_COMPLETED_ON_RETURN.getCode();
147     public static final String RECALL_NOTIFICATION_POLICY = DocumentTypePolicy.RECALL_NOTIFICATION.getCode();
148     public static final String SEND_NOTIFICATION_ON_SU_DISAPPROVE_POLICY = DocumentTypePolicy.SEND_NOTIFICATION_ON_SU_DISAPPROVE.getCode();
149     public static final String SUPPRESS_IMMEDIATE_EMAILS_ON_SU_ACTION_POLICY = DocumentTypePolicy.SUPPRESS_IMMEDIATE_EMAILS_ON_SU_ACTION.getCode();
150     public static final String DOC_SEARCH_TARGET_POLICY = DocumentTypePolicy.DOC_SEARCH_TARGET.getCode();
151 
152     public static final String DOCUMENT_TYPE_BLANKET_APPROVE_POLICY_NONE = "none";
153     public static final String DOCUMENT_TYPE_BLANKET_APPROVE_POLICY_ANY = "any";
154 
155     public static final String[] DOCUMENT_TYPE_BLANKET_APPROVE_POLICY_VALUES = {
156         DOCUMENT_TYPE_BLANKET_APPROVE_POLICY_NONE,
157         DOCUMENT_TYPE_BLANKET_APPROVE_POLICY_ANY
158     };
159 
160     //determines if route log will show the look into the future link
161     public static final String LOOK_INTO_FUTURE_POLICY = "LOOK_FUTURE";
162     public static final String SUPPORTS_QUICK_INITIATE_POLICY = "SUPPORTS_QUICK_INITIATE";
163     public static final String NOTIFY_ON_SAVE_POLICY = "NOTIFY_ON_SAVE";
164 
165     // alternate kew status policy constants.  Determines if route header will show the KEW Route Status
166     // or the application doc status, or both
167     public static final String DOCUMENT_STATUS_POLICY = "DOCUMENT_STATUS_POLICY";
168     public static final String DOCUMENT_STATUS_POLICY_KEW_STATUS = "KEW";
169     public static final String DOCUMENT_STATUS_POLICY_APP_DOC_STATUS = "APP";
170     public static final String DOCUMENT_STATUS_POLICY_BOTH = "BOTH";   
171     public static final String[] DOCUMENT_STATUS_POLICY_VALUES = {
172     	DOCUMENT_STATUS_POLICY_KEW_STATUS,
173     	DOCUMENT_STATUS_POLICY_APP_DOC_STATUS,
174     	DOCUMENT_STATUS_POLICY_BOTH
175     };
176     
177     
178     public static final String SUPER_USER_CANCEL="SU_CANCEL";
179     public static final String SUPER_USER_APPROVE="SU_APPROVE";
180     public static final String SUPER_USER_DISAPPROVE="SU_DISAPPROVE";
181     public static final String SUPER_USER_ROUTE_LEVEL_APPROVE="SU_ROUTE_LEVEL_APPROVE";
182     public static final String SUPER_USER_ACTION_REQUEST_APPROVE="SU_ACTION_REQUEST_APPROVE";
183     public static final String SUPER_USER_RETURN_TO_PREVIOUS_ROUTE_LEVEL="SU_RETURN_TO_PREVIOUS_ROUTE_LEVEL";
184 
185     /* email notification for action requests left in action list */
186     public static final String EMAIL_RMNDR_KEY = "EMAIL_NOTIFICATION";
187     public static final String DOCUMENT_TYPE_NOTIFICATION_PREFERENCE_SUFFIX = ".DocumentTypeNotification";
188     public static final String DOCUMENT_TYPE_NOTIFICATION_DELIMITER = "|~|";
189     public static final String EMAIL_RMNDR_NO_VAL = "no";
190     public static final String EMAIL_RMNDR_DAY_VAL = "daily";
191     public static final String EMAIL_RMNDR_WEEK_VAL = "weekly";
192     public static final String EMAIL_RMNDR_IMMEDIATE = "immediate";
193     public static final String EMAIL_LAST_RMNDR_KEY = "EMAIL_LST_RMNDR_DATE_KEY";
194     public static final String EMAIL_STYLESHEET_NAME = "kew.email.style";
195     /* end email notification constants */
196 
197     public static final String PREFERENCES_YES_VAL = "yes";
198     public static final String PREFERENCES_NO_VAL = "no";
199 
200     public static final String ACTION_LIST_ALL_REQUESTS = "all";
201     public static final String ACTION_LIST_DELEGATED_REQUESTS = "delegated";
202     public static final String ACTION_LIST_NONDELEGATED_REQUESTS = "nondelegated";
203     public static final String DELEGATORS_ON_FILTER_PAGE = "Secondary Delegators only on Filter Page";
204     public static final String DELEGATORS_ON_ACTION_LIST_PAGE = "Secondary Delegators on Action List Page";
205     public static final String PRIMARY_DELEGATES_ON_FILTER_PAGE = "Primary Delegates only on Filter Page";
206     public static final String PRIMARY_DELEGATES_ON_ACTION_LIST_PAGE = "Primary Delegates on Action List Page";
207 
208     public static final Map<String, String> ACTION_LIST_CONTENT;
209     static {
210         ACTION_LIST_CONTENT = new HashMap<String, String>();
211         ACTION_LIST_CONTENT.put(KewApiConstants.ACTION_LIST_ALL_REQUESTS, "All Requests");
212         ACTION_LIST_CONTENT.put(KewApiConstants.ACTION_LIST_NONDELEGATED_REQUESTS, "No Delegations");
213         ACTION_LIST_CONTENT.put(KewApiConstants.ACTION_LIST_DELEGATED_REQUESTS, "Delegations Only");
214     }
215 
216     public static final String ALL_CODE = "All";
217     public static final String ALL_SECONDARY_DELEGATIONS = "All Secondary Delegations";
218     public static final String ALL_PRIMARY_DELEGATES = "All Primary Delegates";
219     public static final String NO_FILTERING = "No Filtering";
220     public static final String DELEGATION_DEFAULT = "Choose Secondary Delegation";
221     public static final String PRIMARY_DELEGATION_DEFAULT = "Choose Primary Delegate";
222 
223     public static final String ACTIVE_CD = "Y";
224     public static final String ACTIVE_LABEL = "ACTIVE";
225     public static final String ACTIVE_LABEL_LOWER = "Active";
226 
227     public static final String INACTIVE_CD = "N";
228     public static final String INACTIVE_LABEL = "INACTIVE";
229     public static final String INACTIVE_LABEL_LOWER = "Inactive";
230 
231     public static final String TRUE_CD = "1";
232     public static final String TRUE = "T";
233 
234     public static final String FALSE_CD = "0";
235     public static final String FALSE = "F";
236 
237     /** Value for UNAUTHENTICATED when comparing to the principal value */
238     public static final String UNAUTHENTICATED = "UNAUTHENTICATED";
239     public static final int DEFAULT_RETRY_TIME = 1800;
240 
241     public static final int TITLE_MAX_LENGTH = 255;
242 
243     public static final String DOCUMENT_STATUS_PARENT_TYPE_PENDING = "Pending";
244     public static final String DOCUMENT_STATUS_PARENT_TYPE_SUCCESSFUL = "Successful";
245     public static final String DOCUMENT_STATUS_PARENT_TYPE_UNSUCCESSFUL = "Unsuccessful";
246 
247     public static final Map<String, List<String>> DOCUMENT_STATUS_PARENT_TYPES;
248 
249     static {
250 
251     	DOCUMENT_STATUS_PARENT_TYPES = new HashMap<String, List<String>>();
252 
253     	// Pending Statuses
254     	List<String> pendingList = new ArrayList<String>();
255     	pendingList.add(KewApiConstants.ROUTE_HEADER_ENROUTE_CD);
256     	pendingList.add(KewApiConstants.ROUTE_HEADER_SAVED_CD);
257     	pendingList.add(KewApiConstants.ROUTE_HEADER_INITIATED_CD);
258     	pendingList.add(KewApiConstants.ROUTE_HEADER_EXCEPTION_CD);
259 
260     	// Successful Statuses
261     	List<String> successfulList = new ArrayList<String>();
262     	successfulList.add(KewApiConstants.ROUTE_HEADER_FINAL_CD);
263     	successfulList.add(KewApiConstants.ROUTE_HEADER_PROCESSED_CD);
264 
265     	// Unsuccessful Statuses
266     	List<String> unsuccessfulList = new ArrayList<String>();
267     	unsuccessfulList.add(KewApiConstants.ROUTE_HEADER_DISAPPROVED_CD);
268     	unsuccessfulList.add(KewApiConstants.ROUTE_HEADER_CANCEL_CD);
269     	unsuccessfulList.add(KewApiConstants.ROUTE_HEADER_CANCEL_DISAPPROVE_CD);
270 
271     	DOCUMENT_STATUS_PARENT_TYPES.put(KewApiConstants.DOCUMENT_STATUS_PARENT_TYPE_PENDING, pendingList);
272     	DOCUMENT_STATUS_PARENT_TYPES.put(KewApiConstants.DOCUMENT_STATUS_PARENT_TYPE_SUCCESSFUL, successfulList);
273     	DOCUMENT_STATUS_PARENT_TYPES.put(KewApiConstants.DOCUMENT_STATUS_PARENT_TYPE_UNSUCCESSFUL, unsuccessfulList);
274 
275     }
276 
277     public static final Map<String, String> DOCUMENT_STATUSES;
278 
279     static {
280         /*
281          * see values in RouteHeader inner class; this HashMap is the definitive list used for the Document Route Statuses in ActionList preferences
282          */
283         DOCUMENT_STATUSES = new HashMap<String, String>();
284         DOCUMENT_STATUSES.put(KewApiConstants.ROUTE_HEADER_CANCEL_CD, KewApiConstants.ROUTE_HEADER_CANCEL_LABEL);
285         DOCUMENT_STATUSES.put(KewApiConstants.ROUTE_HEADER_CANCEL_DISAPPROVE_CD, KewApiConstants.ROUTE_HEADER_CANCEL_DISAPPROVE_LABEL);
286         DOCUMENT_STATUSES.put(KewApiConstants.ROUTE_HEADER_DISAPPROVED_CD, KewApiConstants.ROUTE_HEADER_DISAPPROVED_LABEL);
287         DOCUMENT_STATUSES.put(KewApiConstants.ROUTE_HEADER_ENROUTE_CD, KewApiConstants.ROUTE_HEADER_ENROUTE_LABEL);
288         DOCUMENT_STATUSES.put(KewApiConstants.ROUTE_HEADER_EXCEPTION_CD, KewApiConstants.ROUTE_HEADER_EXCEPTION_LABEL);
289         DOCUMENT_STATUSES.put(KewApiConstants.ROUTE_HEADER_FINAL_CD, KewApiConstants.ROUTE_HEADER_FINAL_LABEL);
290         DOCUMENT_STATUSES.put(KewApiConstants.ROUTE_HEADER_INITIATED_CD, KewApiConstants.ROUTE_HEADER_INITIATED_LABEL);
291         DOCUMENT_STATUSES.put(KewApiConstants.ROUTE_HEADER_PROCESSED_CD, KewApiConstants.ROUTE_HEADER_PROCESSED_LABEL);
292         DOCUMENT_STATUSES.put(KewApiConstants.ROUTE_HEADER_SAVED_CD, KewApiConstants.ROUTE_HEADER_SAVED_LABEL);
293         DOCUMENT_STATUSES.put(DocumentStatus.RECALLED.getCode(), DocumentStatus.RECALLED.getLabel());
294     }
295 
296     // below must be negative to be 30 days in the past... positive number will push date into future
297     public static final Integer DOCUMENT_SEARCH_DOC_TITLE_CREATE_DATE_DAYS_AGO = new Integer(-30);
298     public static final Integer DOCUMENT_SEARCH_NO_CRITERIA_CREATE_DATE_DAYS_AGO = new Integer(0);
299 
300     public static final int DOCUMENT_LOOKUP_DEFAULT_RESULT_CAP = 500;
301 
302     public static final Map<String, String> ACTION_LIST_COLOR_PALETTE;
303     static {
304         ACTION_LIST_COLOR_PALETTE = new HashMap<String, String>();
305         ACTION_LIST_COLOR_PALETTE.put("white", "#FFFFFF");
306         ACTION_LIST_COLOR_PALETTE.put("pink", "#FFDDDE");
307         ACTION_LIST_COLOR_PALETTE.put("orange", "#FFCC99");
308         ACTION_LIST_COLOR_PALETTE.put("red", "#D99394");
309         ACTION_LIST_COLOR_PALETTE.put("yellow", "#FFFF99");
310         ACTION_LIST_COLOR_PALETTE.put("green", "#D4FF94");
311         ACTION_LIST_COLOR_PALETTE.put("blue", "#BDD8F4");
312         ACTION_LIST_COLOR_PALETTE.put("aqua", "#7FFFDF");
313         ACTION_LIST_COLOR_PALETTE.put("slate", "#BDDABD");
314         ACTION_LIST_COLOR_PALETTE.put("purple", "#DFCAFA");
315         ACTION_LIST_COLOR_PALETTE.put("tan", "#E5E5B7");
316     }
317 
318     // This is just the above map, but with the keys in the place of the values and vice versa. This assumes the map above
319     // is a one-to-one correspondence; if it's not, then the static{} block below will need modification.
320     public static final Map<String, String> ACTION_LIST_COLOR_NAMES;
321     static {
322     	ACTION_LIST_COLOR_NAMES = new HashMap<String,String>();
323     	for (Iterator<Map.Entry<String,String>> iterator = ACTION_LIST_COLOR_PALETTE.entrySet().iterator(); iterator.hasNext();) {
324     		Map.Entry<String,String> colorEntry = iterator.next();
325     		ACTION_LIST_COLOR_NAMES.put(colorEntry.getValue(), colorEntry.getKey());
326     	}
327     }
328 
329     public static final String HEADER_TAG = "ROUTE_HEADER";
330     public static final String DOCTYPE_TAG = "DOCTYPE";
331 
332     // order of these is important since this forms a priority according to the codes index into the string
333     public static final String REQUEST_CODES = KewApiConstants.ACTION_REQUEST_FYI_REQ + KewApiConstants.ACTION_REQUEST_ACKNOWLEDGE_REQ + KewApiConstants.ACTION_REQUEST_APPROVE_REQ + KewApiConstants.ACTION_REQUEST_COMPLETE_REQ;
334     public static final String ACTION_CODES = KewApiConstants.ACTION_TAKEN_ACKNOWLEDGED_CD + KewApiConstants.ACTION_TAKEN_APPROVED_CD + KewApiConstants.ACTION_TAKEN_COMPLETED_CD + KewApiConstants.ACTION_TAKEN_ROUTED;
335     public static final String ROUTE_MANAGER_DRIVER_WRKGRP = "RouteManagerDriverCommandGroup";
336     public static final int ROUTE_HEADER_INITIAL_ROUTE_LEVEL = 0;
337     /** The initial state of a document. Only state in which a delete is allowed. */
338     public static final String ROUTE_HEADER_INITIATED_CD = "I";
339     public static final String ROUTE_HEADER_INITIATED_LABEL = "INITIATED";
340 
341     /**
342      * Default pre-approval policy code. By default pre-approval action requests are not allowed.
343      */
344     public static final boolean ROUTE_HEADER_DEFAULT_PRE_APPROVAL_POLICY = false;
345     /**
346      * Default code for the default auto approval policy code. If a document has not approve action requests and has gone through the route template, then by default the document is auto approved.
347      */
348     public static final boolean ROUTE_HEADER_DEFAULT_AUTO_APPROVAL_POLICY = true;
349     public static final String ROUTE_HEADER_DEFAULT_DISAPPROVE_POLICY_LABEL = "DISAPPROVE-CANCEL";
350     /** Default disapprove action policy code */
351     public static final String ROUTE_HEADER_DEFAULT_DISAPPROVE_POLICY_CD = KewApiConstants.ROUTE_HEADER_CANCEL_DISAPPROVE_CD;
352     /** Document sent back to the last approver */
353     public static final String ROUTE_HEADER_LAST_APPROVER_DISAPPROVE_CD = "A";
354     /**
355      * Return the document to the initiator with complete request when the document is disapproved. Document must be explicitly canceled or it will remain en_route under this policy.
356      */
357     public static final String ROUTE_HEADER_RETURN_INIATOR_DISAPPROVE_CD = "I";
358     public static final String ROUTE_HEADER_CANCEL_DISAPPROVE_LABEL = "DISAPPROVE-CANCEL";
359     /** When document disapproved, take same effect as a cancel but with a different action code */
360     public static final String ROUTE_HEADER_CANCEL_DISAPPROVE_CD = "C";
361     public static final String ROUTE_HEADER_DISAPPROVED_DEFAULT_COLOR = "yellow";
362     public static final String ROUTE_HEADER_DISAPPROVED_LABEL = "DISAPPROVED";
363     /** Document has been disapproved */
364     public static final String ROUTE_HEADER_DISAPPROVED_CD = "D";
365     public static final String ROUTE_HEADER_PROCESSED_LABEL = "PROCESSED";
366     /** Document has been processed by the post processor */
367     public static final String ROUTE_HEADER_PROCESSED_CD = "P";
368     public static final String ROUTE_HEADER_EXCEPTION_DEFAULT_COLOR = "red";
369     public static final String ROUTE_HEADER_EXCEPTION_LABEL = "EXCEPTION";
370     /** Document has had an exception in routing and needs to be processed */
371     public static final String ROUTE_HEADER_EXCEPTION_CD = "E";
372     public static final String ROUTE_HEADER_CANCEL_LABEL = "CANCELED";
373     /** Document has been canceled and no further action should be taken on it. */
374     public static final String ROUTE_HEADER_CANCEL_CD = "X";
375     public static final String ROUTE_HEADER_FINAL_LABEL = "FINAL";
376     /** Document has finalized and no changes are allowed to take place to it. */
377     public static final String ROUTE_HEADER_FINAL_CD = "F";
378     public static final String ROUTE_HEADER_SAVED_LABEL = "SAVED";
379     /** The document has been saved, but has not started to route. */
380     public static final String ROUTE_HEADER_SAVED_CD = "S";
381     public static final String ROUTE_HEADER_ENROUTE_LABEL = "ENROUTE";
382     /** The document is currently being routed. */
383     public static final String ROUTE_HEADER_ENROUTE_CD = "R";
384 
385     public static String UNKNOWN_STATUS = "";
386 
387     /** Actions Taken Constants **/
388     public static final String ACTION_TAKEN_SU_ACTION_REQUEST_ACKNOWLEDGED_CD = "k";
389     public static final String ACTION_TAKEN_SU_ACTION_REQUEST_ACKNOWLEDGED = "SUPER USER ACTION REQUEST ACKNOWLEDGED";
390     public static final String ACTION_TAKEN_SU_ACTION_REQUEST_FYI_CD = "f";
391     public static final String ACTION_TAKEN_SU_ACTION_REQUEST_FYI = "SUPER USER ACTION REQUEST FYI";
392     public static final String ACTION_TAKEN_SU_ACTION_REQUEST_COMPLETED_CD = "m";
393     public static final String ACTION_TAKEN_SU_ACTION_REQUEST_COMPLETED = "SUPER USER ACTION REQUEST COMPLETED";
394     public static final String ACTION_TAKEN_SU_ACTION_REQUEST_APPROVED_CD = "v";
395     public static final String ACTION_TAKEN_SU_ACTION_REQUEST_APPROVED = "SUPER USER ACTION REQUEST APPROVED";
396     public static final String ACTION_TAKEN_SU_ROUTE_LEVEL_APPROVED_CD = "r";
397     public static final String ACTION_TAKEN_SU_ROUTE_LEVEL_APPROVED = "SUPER USER ROUTE LEVEL APPROVED";
398     public static final String ACTION_TAKEN_SU_RETURNED_TO_PREVIOUS_CD = "z";
399     public static final String ACTION_TAKEN_SU_RETURNED_TO_PREVIOUS = "SUPER USER RETURNED TO PREVIOUS ROUTE LEVEL";
400     public static final String ACTION_TAKEN_SU_DISAPPROVED_CD = "d";
401     public static final String ACTION_TAKEN_SU_DISAPPROVED = "SUPER USER DISAPPROVED";
402     public static final String ACTION_TAKEN_SU_CANCELED_CD = "c";
403     public static final String ACTION_TAKEN_SU_CANCELED = "SUPER USER CANCELED";
404     public static final String ACTION_TAKEN_SU_APPROVED_CD = "a";
405     public static final String ACTION_TAKEN_SU_APPROVED = "SUPER USER APPROVED";
406     public static final String ACTION_TAKEN_BLANKET_APPROVE_CD = "B";
407     public static final String ACTION_TAKEN_BLANKET_APPROVE = "BLANKET APPROVED";
408     public static final String ACTION_TAKEN_FYI = "FYI";
409     public static final String ACTION_TAKEN_ADHOC_CD = "H";
410     /** User has generated an action request to another user */
411     public static final String ACTION_TAKEN_ADHOC = "ADHOC ROUTED";
412     public static final String ACTION_TAKEN_ADHOC_REVOKED_CD = "V";
413     /** AdHoc Request has been revoked */
414     public static final String ACTION_TAKEN_ADHOC_REVOKED = "ADHOC REVOKED";
415     public static final String ACTION_TAKEN_SAVED_CD = "S";
416     /** Document has been saved by the user for later work */
417     public static final String ACTION_TAKEN_SAVED = "SAVED";
418     /** Document has been canceled. */
419     public static final String ACTION_TAKEN_CANCELED = "CANCELED";
420     /** Document has been denied. */
421     public static final String ACTION_TAKEN_DENIED = "DISAPPROVED";
422     /** Document has been opened by the designated recipient. */
423     public static final String ACTION_TAKEN_ACKNOWLEDGED = "ACKNOWLEDGED";
424     /** Document has been completed as requested. */
425     public static final String ACTION_TAKEN_COMPLETED = "COMPLETED";
426     /** Document has been completed as requested. */
427     public static final String ACTION_TAKEN_ROUTED = "ROUTED";
428     /** The document has been approved. */
429     public static final String ACTION_TAKEN_APPROVED = "APPROVED";
430     /** The document is being returned to a previous routelevel **/
431     public static final String ACTION_TAKEN_RETURNED_TO_PREVIOUS_CD = "Z";
432     public static final String ACTION_TAKEN_RETURNED_TO_PREVIOUS = "RETURNED TO PREVIOUS ROUTE LEVEL";
433     /** The document has non-routed activity against it that is recorded in the route log **/
434     public static final String ACTION_TAKEN_LOG_DOCUMENT_ACTION_CD = "R";
435     public static final String ACTION_TAKEN_LOG_DOCUMENT_ACTION = "LOG MESSAGE";
436     /** The document is routed to a workgroup and a user in the workgroup wants to take authority from the workgroup **/
437     public static final String ACTION_TAKEN_TAKE_WORKGROUP_AUTHORITY_CD = "w";
438     public static final String ACTION_TAKEN_TAKE_WORKGROUP_AUTHORITY = "WORKGROUP AUTHORITY TAKEN";
439     /** The person who took workgroup authority is releasing it **/
440     public static final String ACTION_TAKEN_RELEASE_WORKGROUP_AUTHORITY_CD = "y";
441     public static final String ACTION_TAKEN_RELEASE_WORKGROUP_AUTHORITY = "WORKGROUP AUTHORITY RELEASED";
442     /** The document is moved **/
443     public static final String ACTION_TAKEN_MOVE_CD = "M";
444     public static final String ACTION_TAKEN_MOVE = "MOVED";
445 
446     /** Route Level type constants FlexRM or Route Module **/
447     public static final String ROUTE_LEVEL_FLEX_RM = "FR";
448     public static final String ROUTE_LEVEL_ROUTE_MODULE = "RM";
449     public static final String ROUTE_LEVEL_PEOPLE_FLOW = "PF";
450     public static final String ROUTE_LEVEL_RULES_ENGINE = "RE";
451     public static final String ROUTE_LEVEL_METHOD_NAME_ROUTE_MODULE = "Route Module";
452     public static final String ROUTE_LEVEL_METHOD_NAME_FLEX_RM = "Rule Template";
453     /** No route module available for this route level * */
454     public static final String ROUTE_LEVEL_NO_ROUTE_MODULE = "NONE";
455     /**
456      * The route level value for the AdHoc route level. AdHoc like Exception route level does not have a route module and is processed directly be the engine.
457      */
458     public static final int ADHOC_ROUTE_LEVEL = 0;
459     public static final String ADHOC_ROUTE_LEVEL_NAME = "Adhoc Routing";
460     public static final String PARALLEL_ADHOC_ROUTE_MODULE_NAME = "org.kuali.rice.kew.routemodule.ParallelAdHocRouteModule";
461 
462     /**
463      * The route level value for the Exception route level. The Exception route level does not have a route module and the core engine processes these requests since they have special rules, such as an exception request can not itself throw an exception request.
464      */
465     public static final int EXCEPTION_ROUTE_LEVEL = -1;
466     public static final String EXCEPTION_ROUTE_MODULE_NAME = "org.kuali.rice.kew.routemodule.ExceptionRouteModule";
467     public static final String EXCEPTION_ROUTE_LEVEL_NAME = "Exception Routing";
468     public static final int INVALID_ROUTE_LEVEL = -2;
469 
470     /** Routing should process the associated ActionRequests in sequence */
471     public static final String ROUTE_LEVEL_SEQUENCE = "S";
472     public static final String ROUTE_LEVEL_SEQUENTIAL_NAME = "Sequential";
473     public static final String ROUTE_LEVEL_SEQUENCE_LABEL = "SEQUENCE";
474 
475     /** Routing should process the associated ActionRequests in parallel */
476     public static final String ROUTE_LEVEL_PARALLEL = "P";
477     public static final String ROUTE_LEVEL_PARALLEL_NAME = "Parallel";
478     public static final String ROUTE_LEVEL_PARALLEL_LABEL = "PARALLEL";
479 
480     /** Routing should process the associated ActionRequests in parallel accoring to priority */
481     public static final String ROUTE_LEVEL_PRIORITY_PARALLEL = "R";
482     public static final String ROUTE_LEVEL_PRIORITY_PARALLEL_NAME = "Priority-Parallel";
483     public static final String ROUTE_LEVEL_PRIORITY_PARALLEL_LABEL = "PRIORITY-PARALLEL";
484 
485     public static final boolean ACTION_REQUEST_FORCE_ACTION = true;
486     public static final boolean ACTION_REQUEST_PREV_ACTION_AWARE = false;
487         
488     /** Priority used if no priority is specified */
489     public static final int ACTION_REQUEST_DEFAULT_PRIORITY = 1;
490 
491     /** Values for Rule template options   */
492     public static final String ACTION_REQUEST_DEFAULT_CD = "D";
493 
494 
495     /**
496      * Priority level that indicates an ad hoc request. If the priority is above this value, then the request is considered an ad hoc request and is processed accordingly. This is used most often when an ad hoc request must follow the end of a route level. For example, if a user wants the ad hoc to happen after all requests at route level 3 have been processed, but before any requests at route level 4. This is also the upper, exclusive bound for normal request priorities.
497      */
498     public static final int ACTION_REQUEST_ADHOC_PRIORITY = 1000;
499     
500     public static final String ACTION_REQUEST_CANCEL_REQ_LABEL = "CANCEL";
501     /**
502      * Requested action is to Cancel document
503      */
504     public static final String ACTION_REQUEST_CANCEL_REQ = "X";
505     public static final String ACTION_REQUEST_ACKNOWLEDGE_REQ_LABEL = "ACKNOWLEDGE";
506     /**
507      * Requested action is ACKKNOWLEDGE. This action does not hold up routing, but action request will not be marked DONE until an ACKNOWLEDGE actiontaken is recorded.
508      */
509     public static final String ACTION_REQUEST_ACKNOWLEDGE_REQ = "K";
510     public static final String ACTION_REQUEST_FYI_REQ_LABEL = "FYI";
511     /**
512      * The action is an FYI notification only. This action request is marked DONE as soon as it is activated.
513      */
514     public static final String ACTION_REQUEST_FYI_REQ = "F";
515     public static final String ACTION_REQUEST_APPROVE_REQ_LABEL = "APPROVE";
516     /** Requested action is to approve the document. */
517     public static final String ACTION_REQUEST_APPROVE_REQ = "A";
518     public static final String ACTION_REQUEST_COMPLETE_REQ_LABEL = "COMPLETE";
519     /** Requested action is to complete the document, however that is defined by the application. */
520     public static final String ACTION_REQUEST_COMPLETE_REQ = "C";
521     public static final String ACTION_REQUEST_DISAPPROVE_LABEL = "DISAPPROVE";
522 
523     public static final String ACTION_REQUEST_TO_BE_GENERATED = "-1";
524     /** Largest value allowed for a workgroupID. Any value larger is assumed to be a sequenceId of a user */
525     public static final int WORKGROUP_MAX_WORKGROUP_ID = 100000000;
526     /** Last approval taken applies to entire request */
527     //public static final String WORKGROUP_LAST_APPROVAL = "L";
528     /** First action taken applies to entire request */
529     //public static final String WORKGROUP_FIRST_ACTION = "F";
530     /** Personal workgroup code */
531     //public static final String WORKGROUP_PERSONAL = "P";
532 
533     public static final Map<String, String> ACTION_REQUEST_CODES = new HashMap<String, String>();
534     static {
535     	ACTION_REQUEST_CODES.put(ACTION_REQUEST_COMPLETE_REQ, ACTION_REQUEST_COMPLETE_REQ_LABEL);
536     	ACTION_REQUEST_CODES.put(ACTION_REQUEST_APPROVE_REQ, ACTION_REQUEST_APPROVE_REQ_LABEL);
537     	ACTION_REQUEST_CODES.put(ACTION_REQUEST_ACKNOWLEDGE_REQ, ACTION_REQUEST_ACKNOWLEDGE_REQ_LABEL);
538     	ACTION_REQUEST_CODES.put(ACTION_REQUEST_FYI_REQ, ACTION_REQUEST_FYI_REQ_LABEL);
539     }
540 
541     /** Route Queue Priorities */
542     public static final Integer ROUTE_QUEUE_DEFAULT_PRIORITY = new Integer(5);
543     public static final Integer ROUTE_QUEUE_BLANKET_APPROVE_PRIORITY = new Integer(4);
544     public static final Integer ROUTE_QUEUE_RERESOLVE_PRIORITY = new Integer(10);
545     public static final Integer ROUTE_QUEUE_REQUEUE_PRIORITY = new Integer(10);
546     public static final Integer ROUTE_QUEUE_EMAIL_PRIORITY = new Integer(20);
547     public static final Integer ROUTE_QUEUE_RULE_CACHE_PRIORITY = new Integer(0);
548     public static final Integer ROUTE_QUEUE_EXCEPTION_PRIORITY = new Integer(21);
549     public static final Integer ROUTE_QUEUE_UPGRADE_PRIORITY = new Integer(30);
550 
551     public static final String ROUTE_QUEUE_EXCEPTION = "E";
552     public static final String ROUTE_QUEUE_ROUTING = "R";
553     public static final String ROUTE_QUEUE_QUEUED = "Q";
554     public static final String ROUTE_QUEUE_EXCEPTION_LABEL = "EXCEPTION";
555     public static final String ROUTE_QUEUE_ROUTING_LABEL = "ROUTING";
556     public static final String ROUTE_QUEUE_QUEUED_LABEL = "QUEUED";
557 
558     public static final String RULE_RESPONSIBILITY_WORKFLOW_ID = "F";
559     public static final String RULE_RESPONSIBILITY_GROUP_ID = "G";
560     public static final String RULE_RESPONSIBILITY_ROLE_ID = "R";
561 
562     public static final String RULE_RESPONSIBILITY_WORKFLOW_ID_LABEL = "PERSON";
563 	public static final String RULE_RESPONSIBILITY_GROUP_ID_LABEL = "GROUP";
564 	public static final String RULE_RESPONSIBILITY_ROLE_ID_LABEL = "ROLE";
565 
566     public static final Map<String, String> RULE_RESPONSIBILITY_TYPES = new HashMap<String, String>();
567     static {
568     	RULE_RESPONSIBILITY_TYPES.put(RULE_RESPONSIBILITY_WORKFLOW_ID, RULE_RESPONSIBILITY_WORKFLOW_ID_LABEL);
569     	RULE_RESPONSIBILITY_TYPES.put(RULE_RESPONSIBILITY_GROUP_ID, RULE_RESPONSIBILITY_GROUP_ID_LABEL);
570     	RULE_RESPONSIBILITY_TYPES.put(RULE_RESPONSIBILITY_ROLE_ID, RULE_RESPONSIBILITY_ROLE_ID_LABEL);
571     }
572 
573     public static final String DEFAULT_RULE_DOCUMENT_NAME = "RuleDocument";
574 
575     public static class Sorting {
576         public static final String SORT_COLUMN_SEQUENCES = "columnSortSequences";
577         public static final String SORT_SEQUENCE_ASC = "ASCENDING";
578         public static final String SORT_SEQUENCE_DSC = "DESCENDING";
579         public static final String SORT_DOC_ID = "docId";
580         public static final String SORT_DOC_ID_NUMBER = "docIdNumber";
581         public static final String SORT_RULE_ID = "ruleId";
582         public static final String SORT_RULE_ID_NUMBER = "ruleIdNumber";
583         public static final String SORT_DOC_TITLE = "docTitle";
584         public static final String SORT_DOC_TYPE_ID = "docTypeId";
585         public static final String SORT_DOC_TYPE_ID_NUMBER = "docTypeIdNumber";
586         public static final String SORT_DOC_TYPE_NAME = "docTypeName";
587         public static final String SORT_DOC_TYPE_FULL_NAME = "docTypeFullName";
588         public static final String SORT_DOC_TYPE_LABEL = "docTypeLabel";
589         public static final String SORT_ACTION_REQUESTED = "actionRequested";
590         public static final String SORT_ACTION_REQUESTED_LABEL = "actionRequestedLabel";
591         public static final String SORT_CHART = "chart";
592         public static final String SORT_ORG = "org";
593         public static final String SORT_REVIEWERS_ALL_NAMES = "reviewersAllNames";
594         public static final String SORT_REVIEWER_EMPLY_ID = "reviewerEmplyId";
595         public static final String SORT_REVIEWER_NETWORK_ID = "reviewerNetworkId";
596         public static final String SORT_REVIEWER_FULL_NAME = "reviewerFullName";
597         public static final String SORT_ACTIVE_IND = "activeIndicator";
598         public static final String SORT_ACTIVE_IND_LABEL = "activeIndicatorLabel";
599         public static final String SORT_DOC_TYPE_GROUP_ID = "docTypeGroupId";
600         public static final String SORT_DOC_TYPE_GROUP_ID_NUMBER = "docTypeGroupIdNumber";
601         public static final String SORT_DOC_TYPE_GROUP_NAME = "docTypeGroupName";
602         public static final String SORT_DOC_TYPE_GROUP_FULL_NAME = "docTypeGroupFullName";
603         public static final String SORT_DOC_TYPE_GROUP_PARENT_NAME = "docTypeGroupParentName";
604         public static final String SORT_DOC_TYPE_GROUP_PARENT_FULL_NAME = "docTypeGroupParentFullName";
605         public static final String SORT_DOC_TYPE_GROUP_LABEL = "docTypeGroupLabel";
606         public static final String SORT_FISCAL_UPAA = "fiscalUpaa";
607         public static final String SORT_FISCAL_UPAA_LABEL = "fiscalUpaaLabel";
608         public static final String SORT_POSITION_TYPE = "positionType";
609         public static final String SORT_POSITION_TYPE_LABEL = "positionTypeLabel";
610         public static final String SORT_SALARY_PLAN = "salaryPlanSort";
611         public static final String SORT_DELEGATES_ALL = "delegatesAll";
612         public static final String SORT_DELEGATE_EMPLY_ID = "delegateEmplyId";
613         public static final String SORT_DELEGATE_NETWORK_ID = "delegateNetworkId";
614         public static final String SORT_DELEGATE_FULL_NAME = "delegateFullName";
615         public static final String SORT_ROUTE_MODULE_NAME = "routeModuleName";
616         public static final String SORT_WORKGROUP_ID = "workGroupId";
617         public static final String SORT_WORKGROUP_ID_NUMBER = "workGroupIdNumber";
618         public static final String SORT_WORKGROUP_NAME = "workGroupName";
619         public static final String SORT_WORKGROUP_FULL_NAME = "workGroupFullName";
620         public static final String SORT_USER_FULL_NAME = "userFullName";
621         public static final String SORT_USER_NETWORK_ID = "userNetworkId";
622         public static final String SORT_MONITOR_ID_NUMBER = "monitorId";
623         public static final String SORT_MONITOR_DOC_TYPE = "monitorDocType";
624         public static final String SORT_MONITOR_TYPE = "monitorType";
625         public static final String SORT_MONITOR_TIMER = "monitorTimer";
626         public static final String SORT_MONITOR_ACTION_TYPE = "monitorActionType";
627     }
628 
629     public static final String WORKGROUP = "workgroup";
630     public static final String PERSON = "person";
631     public static final String ROLE = "role";
632 
633     public static final String DOC_HANDLER_RETURN_URL = "docHandlerReturnUrl";
634     //document operation constants
635     public static final String ADD = "add";
636     public static final String NOOP = "noop";
637     public static final String UPDATE = "update";
638     public static final String DELETE = "delete";
639     public static final String TIMESTAMP_DATE_FORMAT_PATTERN = "yyyy-mm-dd hh:mm:ss.fffffffff";
640     public static final String TIMESTAMP_DATE_FORMAT_PATTERN2 = "MM/dd/yyyy hh:mm a";
641 
642     public static final Map<String, String> ACTION_REQUEST_CD;
643     static{
644         ACTION_REQUEST_CD = new HashMap<String, String>();
645         ACTION_REQUEST_CD.put(KewApiConstants.ACTION_REQUEST_ACKNOWLEDGE_REQ, KewApiConstants.ACTION_REQUEST_ACKNOWLEDGE_REQ_LABEL);
646         ACTION_REQUEST_CD.put(KewApiConstants.ACTION_REQUEST_APPROVE_REQ, KewApiConstants.ACTION_REQUEST_APPROVE_REQ_LABEL);
647         ACTION_REQUEST_CD.put(KewApiConstants.ACTION_REQUEST_COMPLETE_REQ, KewApiConstants.ACTION_REQUEST_COMPLETE_REQ_LABEL);
648         ACTION_REQUEST_CD.put(KewApiConstants.ACTION_REQUEST_FYI_REQ, KewApiConstants.ACTION_REQUEST_FYI_REQ_LABEL);
649     }
650 
651     public static final Map<String, String> ACTION_TAKEN_CD;
652     static{
653         ACTION_TAKEN_CD = new HashMap<String, String>();
654         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_ACKNOWLEDGED_CD, KewApiConstants.ACTION_TAKEN_ACKNOWLEDGED);
655         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_ADHOC_CD, KewApiConstants.ACTION_TAKEN_ADHOC);
656         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_ADHOC_REVOKED_CD, KewApiConstants.ACTION_TAKEN_ADHOC_REVOKED);
657         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_APPROVED_CD, KewApiConstants.ACTION_TAKEN_APPROVED);
658         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_BLANKET_APPROVE_CD, KewApiConstants.ACTION_TAKEN_BLANKET_APPROVE);
659         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_CANCELED_CD, KewApiConstants.ACTION_TAKEN_CANCELED);
660         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_COMPLETED_CD, KewApiConstants.ACTION_TAKEN_COMPLETED);
661         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_DENIED_CD, KewApiConstants.ACTION_TAKEN_DENIED);
662         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_FYI_CD, KewApiConstants.ACTION_TAKEN_FYI);
663         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_SAVED_CD, KewApiConstants.ACTION_TAKEN_SAVED);
664         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_RETURNED_TO_PREVIOUS_CD, KewApiConstants.ACTION_TAKEN_RETURNED_TO_PREVIOUS);
665         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_LOG_DOCUMENT_ACTION_CD, KewApiConstants.ACTION_TAKEN_LOG_DOCUMENT_ACTION);
666         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_SU_APPROVED_CD, KewApiConstants.ACTION_TAKEN_SU_APPROVED);
667         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_SU_CANCELED_CD, KewApiConstants.ACTION_TAKEN_SU_CANCELED);
668         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_SU_DISAPPROVED_CD, KewApiConstants.ACTION_TAKEN_SU_DISAPPROVED);
669         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_SU_ROUTE_LEVEL_APPROVED_CD, KewApiConstants.ACTION_TAKEN_SU_ROUTE_LEVEL_APPROVED);
670         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_SU_ACTION_REQUEST_APPROVED_CD, KewApiConstants.ACTION_TAKEN_SU_ACTION_REQUEST_APPROVED);
671         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_SU_RETURNED_TO_PREVIOUS_CD, KewApiConstants.ACTION_TAKEN_SU_RETURNED_TO_PREVIOUS);
672         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_TAKE_WORKGROUP_AUTHORITY_CD, KewApiConstants.ACTION_TAKEN_TAKE_WORKGROUP_AUTHORITY);
673         ACTION_TAKEN_CD.put(KewApiConstants.ACTION_TAKEN_MOVE_CD, KewApiConstants.ACTION_TAKEN_MOVE);
674         ACTION_TAKEN_CD.put(ActionType.RECALL.getCode(), ActionType.RECALL.getLabel());
675     }
676 
677     public static final String DOCUMENT_CONTENT_VERSION_1 = "1";
678     public static final String DOCUMENT_CONTENT_VERSION_2 = "2";
679 
680     public static final String XML_FILE_NOT_FOUND = "general.error.filenotfound";
681     public static final String XML_PARSE_ERROR = "general.error.parsexml";
682 
683 
684 
685     public static final String RULE_ATTRIBUTE_TYPE = "RuleAttribute";
686     public static final String RULE_XML_ATTRIBUTE_TYPE = "RuleXmlAttribute";
687     public static final String SEARCHABLE_ATTRIBUTE_TYPE = "SearchableAttribute";
688     public static final String SEARCHABLE_XML_ATTRIBUTE_TYPE = "SearchableXmlAttribute";
689     public static final String DOCUMENT_SEARCH_CUSTOMIZER_ATTRIBUTE_TYPE = "DocumentSearchCustomizer";
690     public static final String DOCUMENT_SECURITY_ATTRIBUTE_TYPE = "DocumentSecurityAttribute";
691     public static final String EXTENSION_ATTRIBUTE_TYPE = "ExtensionAttribute";
692     public static final String EMAIL_ATTRIBUTE_TYPE = "EmailAttribute";
693     public static final String NOTE_ATTRIBUTE_TYPE = "NoteAttribute";
694     public static final String ACTION_LIST_ATTRIBUTE_TYPE = "ActionListAttribute";
695     public static final String RULE_VALIDATION_ATTRIBUTE_TYPE = "RuleValidationAttribute";
696     public static final String QUALIFIER_RESOLVER_ATTRIBUTE_TYPE = "QualifierResolver";
697 
698     public static final String RULE_ATTRIBUTE_TYPE_LABEL = "Rule Attribute";
699     public static final String RULE_XML_ATTRIBUTE_TYPE_LABEL = "Rule Xml Attribute";
700     public static final String SEARCHABLE_ATTRIBUTE_TYPE_LABEL = "Searchable Attribute";
701     public static final String SEARCHABLE_XML_ATTRIBUTE_TYPE_LABEL = "Searchable Xml Attribute";
702     public static final String DOCUMENT_SEARCH_CUSTOMIZER_ATTRIBUTE_TYPE_LABEL = "Document Search Customizer";
703     public static final String DOCUMENT_SECURITY_ATTRIBUTE_TYPE_LABEL = "Document Security Attribute";
704     public static final String EXTENSION_ATTRIBUTE_TYPE_LABEL = "Extension Attribute";
705     public static final String EMAIL_ATTRIBUTE_TYPE_LABEL = "Email Attribute";
706     public static final String NOTE_ATTRIBUTE_TYPE_LABEL = "Note Attribute";
707     public static final String ACTION_LIST_ATTRIBUTE_TYPE_LABEL = "Action List Attribute";
708     public static final String RULE_VALIDATION_ATTRIBUTE_TYPE_LABEL = "Rule Validation Attribute";
709     public static final String QUALIFIER_RESOLVER_ATTRIBUTE_TYPE_LABEL = "Qualifier Resolver";
710 
711     public static final String[] RULE_ATTRIBUTE_TYPES = {
712     	RULE_ATTRIBUTE_TYPE,
713         RULE_XML_ATTRIBUTE_TYPE,
714         SEARCHABLE_ATTRIBUTE_TYPE,
715         SEARCHABLE_XML_ATTRIBUTE_TYPE, DOCUMENT_SEARCH_CUSTOMIZER_ATTRIBUTE_TYPE,
716         DOCUMENT_SECURITY_ATTRIBUTE_TYPE,
717         EXTENSION_ATTRIBUTE_TYPE,
718         EMAIL_ATTRIBUTE_TYPE,
719         NOTE_ATTRIBUTE_TYPE,
720         ACTION_LIST_ATTRIBUTE_TYPE,
721         RULE_VALIDATION_ATTRIBUTE_TYPE,
722         QUALIFIER_RESOLVER_ATTRIBUTE_TYPE
723     };
724 
725     public static final Map<String, String> RULE_ATTRIBUTE_TYPE_MAP;
726     static {
727     	RULE_ATTRIBUTE_TYPE_MAP = new HashMap<String, String>();
728     	RULE_ATTRIBUTE_TYPE_MAP.put(RULE_ATTRIBUTE_TYPE, RULE_ATTRIBUTE_TYPE_LABEL);
729         RULE_ATTRIBUTE_TYPE_MAP.put(RULE_XML_ATTRIBUTE_TYPE, RULE_XML_ATTRIBUTE_TYPE_LABEL);
730         RULE_ATTRIBUTE_TYPE_MAP.put(SEARCHABLE_ATTRIBUTE_TYPE, SEARCHABLE_ATTRIBUTE_TYPE_LABEL);
731         RULE_ATTRIBUTE_TYPE_MAP.put(SEARCHABLE_XML_ATTRIBUTE_TYPE, SEARCHABLE_XML_ATTRIBUTE_TYPE_LABEL);
732         RULE_ATTRIBUTE_TYPE_MAP.put(DOCUMENT_SEARCH_CUSTOMIZER_ATTRIBUTE_TYPE,
733                 DOCUMENT_SEARCH_CUSTOMIZER_ATTRIBUTE_TYPE_LABEL);
734         RULE_ATTRIBUTE_TYPE_MAP.put(DOCUMENT_SECURITY_ATTRIBUTE_TYPE, DOCUMENT_SECURITY_ATTRIBUTE_TYPE_LABEL);
735         RULE_ATTRIBUTE_TYPE_MAP.put(EXTENSION_ATTRIBUTE_TYPE, EXTENSION_ATTRIBUTE_TYPE_LABEL);
736         RULE_ATTRIBUTE_TYPE_MAP.put(EMAIL_ATTRIBUTE_TYPE, EMAIL_ATTRIBUTE_TYPE_LABEL);
737        	RULE_ATTRIBUTE_TYPE_MAP.put(NOTE_ATTRIBUTE_TYPE, NOTE_ATTRIBUTE_TYPE_LABEL);
738         RULE_ATTRIBUTE_TYPE_MAP.put(ACTION_LIST_ATTRIBUTE_TYPE, ACTION_LIST_ATTRIBUTE_TYPE_LABEL);
739         RULE_ATTRIBUTE_TYPE_MAP.put(RULE_VALIDATION_ATTRIBUTE_TYPE, RULE_VALIDATION_ATTRIBUTE_TYPE_LABEL);
740         RULE_ATTRIBUTE_TYPE_MAP.put(QUALIFIER_RESOLVER_ATTRIBUTE_TYPE, QUALIFIER_RESOLVER_ATTRIBUTE_TYPE_LABEL);
741     }
742 
743     public static final String DAILY = "daily";
744     public static final String WEEKLY = "weekly";
745     public static final Long EMAIL_QUEUE_ENTRY_ROUTE_HEADER_ID = new Long(-1);
746     public static final int MAX_ANNOTATION_LENGTH = 2000;
747     public static final String XML_FILE_PARSE_ERROR = "general.error.parsexml";
748 
749 
750     public static final String MACHINE_GENERATED_RESPONSIBILITY_ID = "0";
751     public static final String ADHOC_REQUEST_RESPONSIBILITY_ID = "-1";
752     public static final String EXCEPTION_REQUEST_RESPONSIBILITY_ID = "-2";
753     public static final String SAVED_REQUEST_RESPONSIBILITY_ID = "-3";
754     
755     public static final Set<String> SPECIAL_RESPONSIBILITY_ID_SET;
756     static {
757     	SPECIAL_RESPONSIBILITY_ID_SET = new HashSet<String>();
758     	SPECIAL_RESPONSIBILITY_ID_SET.add(MACHINE_GENERATED_RESPONSIBILITY_ID);
759     	SPECIAL_RESPONSIBILITY_ID_SET.add(ADHOC_REQUEST_RESPONSIBILITY_ID);
760     	SPECIAL_RESPONSIBILITY_ID_SET.add(EXCEPTION_REQUEST_RESPONSIBILITY_ID);
761     	SPECIAL_RESPONSIBILITY_ID_SET.add(SAVED_REQUEST_RESPONSIBILITY_ID);
762     }
763 
764     public static final int DEFAULT_WEB_SERVICE_RETRY = 1;
765 
766     public static final String PRIMARY_PROCESS_NAME = "PRIMARY";
767     public static final String PRIMARY_BRANCH_NAME = "PRIMARY";
768     public static final String DEFAULT_EXCEPTION_PROCESS_NAME = "exception";
769 
770     // Document type versions
771     public static final String ROUTING_VERSION_ROUTE_LEVEL = "1";
772     public static final String ROUTING_VERSION_NODAL = "2";
773     public static final String CURRENT_ROUTING_VERSION = ROUTING_VERSION_NODAL;
774 
775     public static final String EDL_ATTRIBUTE_GLOBAL_ERROR_KEY = "global";
776     public static final String POST_PROCESSOR_FAILURE_MESSAGE = "PostProcessor failed to process document: ";
777 
778     public static final String DEFAULT_CONFIG_LOCATION_PARAM = "default.config.location";
779     public static final String DEFAULT_APPLICATION_CONFIG_LOCATION = "classpath:META-INF/workflow.xml";
780     public static final String ADDITIONAL_CONFIG_LOCATIONS_PARAM = "additional.config.locations";
781 
782     // client protocols
783     public static enum ClientProtocol {
784     	WEBSERVICE, LOCAL, EMBEDDED, RMI, SPRING_INVOKER
785     }
786 
787     // system branch state keys
788     public static final String POST_PROCESSOR_PROCESSED_KEY = "System.PostProcessorProcessed";
789     public static final String POST_PROCESSOR_FINAL_KEY = "System.PostProcessorFinal";
790     public static final String POST_PROCESSOR_NON_DEFINED_VALUE = "none";
791 
792     // custom http header keys
793     public static final String DIGITAL_SIGNATURE_HEADER = "KEW_DIGITAL_SIGNATURE";
794 	public static final String KEYSTORE_ALIAS_HEADER = "KEW_KEYSTORE_ALIAS";
795 
796 	public static final int DEFAULT_TRANSACTION_TIMEOUT_SECONDS = 3600;
797 
798     public static final int DELEGATE_RULE_LOOKUP_MAX_ROWS_RETURNED = 500;
799 
800     public static final String HTML_NON_BREAKING_SPACE = "&nbsp;";
801 
802     public static final String DAILY_EMAIL_CRON_EXPRESSION = "dailyEmail.cronExpression";
803     public static final String WEEKLY_EMAIL_CRON_EXPRESSION = "weeklyEmail.cronExpression";
804     public static final String DAILY_EMAIL_ACTIVE = "dailyEmail.active";
805     public static final String WEEKLY_EMAIL_ACTIVE = "weeklyEmail.active";
806 
807     public static final String ACTION_LIST_NO_REFRESH = "ActionList.norefresh";
808     public static final String REQUERY_ACTION_LIST_KEY = "requeryActionList";
809 
810 
811     // receive future action request contants
812     public static final String RECEIVE_FUTURE_REQUESTS_BRANCH_STATE_KEY = "_receive_future_requests";
813     public static final String DEACTIVATED_FUTURE_REQUESTS_BRANCH_STATE_KEY = "_deactivated_future_requests";
814     public static final String DONT_RECEIVE_FUTURE_REQUESTS_BRANCH_STATE_VALUE = "NO";
815     public static final String RECEIVE_FUTURE_REQUESTS_BRANCH_STATE_VALUE = "YES";
816     public static final String CLEAR_FUTURE_REQUESTS_BRANCH_STATE_VALUE = "CLEAR";
817     public static final String USE_REMOTE_EMAIL_SERVICES = "Email.useRemoteServices";
818 
819     // lookupable column types
820     public static final String LOOKUP_COLUMN_TYPE_TEXT = "text";
821     public static final String LOOKUP_COLUMN_TYPE_INTEGER = "integer";
822     public static final String LOOKUP_COLUMN_TYPE_LONG = "long";
823     public static final String LOOKUP_COLUMN_TYPE_FLOAT = "float";
824     public static final String LOOKUP_COLUMN_TYPE_DATETIME = "datetime";
825 
826     // document search route status qualifiers
827     public static final String DOC_SEARCH_ROUTE_STATUS_QUALIFIER_EXACT = "equal";
828     public static final String DOC_SEARCH_ROUTE_STATUS_QUALIFIER_BEFORE = "before";
829     public static final String DOC_SEARCH_ROUTE_STATUS_QUALIFIER_AFTER = "after";
830     public static final Map<String,String> DOC_SEARCH_ROUTE_STATUS_QUALIFIERS;
831     static {
832         DOC_SEARCH_ROUTE_STATUS_QUALIFIERS = new HashMap<String,String>();
833         DOC_SEARCH_ROUTE_STATUS_QUALIFIERS.put(DOC_SEARCH_ROUTE_STATUS_QUALIFIER_EXACT, "Exactly");
834         DOC_SEARCH_ROUTE_STATUS_QUALIFIERS.put(DOC_SEARCH_ROUTE_STATUS_QUALIFIER_BEFORE, "Before");
835         DOC_SEARCH_ROUTE_STATUS_QUALIFIERS.put(DOC_SEARCH_ROUTE_STATUS_QUALIFIER_AFTER, "After");
836     }
837 
838     // service name constants
839 
840 	public static final String WORKFLOW_UTILITY_SERVICE = "enWorkflowUtilityService";
841 
842 	public static final String SIMPLE_DATE_FORMAT_FOR_DATE = RiceConstants.SIMPLE_DATE_FORMAT_FOR_DATE;
843     public static final String SIMPLE_DATE_FORMAT_FOR_TIME = RiceConstants.SIMPLE_DATE_FORMAT_FOR_TIME;
844     public static final String DEFAULT_DATE_FORMAT_PATTERN = RiceConstants.DEFAULT_DATE_FORMAT_PATTERN;
845 
846 	public static final String ACTIONLIST_COMMAND = "displayActionListView";
847 
848 	public static final String ACTIONLIST_INLINE_COMMAND = "displayActionListInlineView";
849 
850 	public static final String EMAIL_COMMAND = "displayEmailView";
851 
852 	public static final String DOCSEARCH_COMMAND = "displayDocSearchView";
853 
854 	public static final String SUPERUSER_COMMAND = "displaySuperUserView";
855 
856 	public static final String HELPDESK_ACTIONLIST_COMMAND = "displayHelpDeskActionListView";
857 
858 	public static final String INITIATE_COMMAND = "initiate";
859 
860 	public static final String COMMAND_PARAMETER = "command";
861 
862 	public static final String DOCUMENT_ID_PARAMETER = "docId";
863 
864 	public static final String BACKDOOR_ID_PARAMETER = "backdoorId";
865 
866 	public static final String DOCTYPE_PARAMETER = "docTypeName";
867 
868 	public static final String INITIATE_URL = "initiateURL";
869 
870 	public static final String ADVANCE_SEARCH_URL = "advanceSearchURL";
871 
872 	public static final String DOCHANDLER_METHOD = "dochandlerMethod";
873 
874 	public static final String KEW_NAMESPACE = "KR-WKFLW";
875 
876 	public static final String DEFAULT_RESPONSIBILITY_TEMPLATE_NAME = "Review";
877 
878 	public static final String EXCEPTION_ROUTING_RESPONSIBILITY_TEMPLATE_NAME = "Resolve Exception";
879 
880     public static final String APP_DOC_ID_PARAMETER = "appDocId";
881 	// Permission Details
882 
883 	public static final String DOCUMENT_TYPE_NAME_DETAIL = "documentTypeName";
884 	public static final String ACTION_REQUEST_CD_DETAIL = "actionRequestCd";
885 	public static final String ROUTE_NODE_NAME_DETAIL = "routeNodeName";
886 	public static final String DOCUMENT_STATUS_DETAIL = "routeStatusCode";
887     public static final String APP_DOC_STATUS_DETAIL = "appDocStatus";
888 
889 
890 	// Permissions
891 
892 	public static final String BLANKET_APPROVE_PERMISSION = "Blanket Approve Document";
893 	public static final String AD_HOC_REVIEW_PERMISSION = "Ad Hoc Review Document";
894 	public static final String ADMINISTER_ROUTING_PERMISSION = "Administer Routing for Document";
895     public static final String SUPER_USER_APPROVE_SINGLE_ACTION_REQUEST = "Super User Approve Single Action Request";
896     public static final String SUPER_USER_APPROVE_DOCUMENT = "Super User Approve Document";
897     public static final String SUPER_USER_DISAPPROVE_DOCUMENT = "Super User Disapprove Document";
898 
899     public static final String CANCEL_PERMISSION = "Cancel Document";
900     public static final String RECALL_PERMISSION = "Recall Document";
901 	public static final String INITIATE_PERMISSION = "Initiate Document";
902 	public static final String ROUTE_PERMISSION = "Route Document";
903 	public static final String SAVE_PERMISSION = "Save Document";
904 	public static final String ADD_MESSAGE_TO_ROUTE_LOG = "Add Message to Route Log";
905 	
906 
907     // signifies the delimiter character for ingested KIM groups
908     public static final String KIM_GROUP_NAMESPACE_NAME_DELIMITER_CHARACTER = ":";
909 
910     // system parameters
911 	public static final String KIM_PRIORITY_ON_DOC_TYP_PERMS_IND = "KIM_PRIORITY_ON_DOC_TYP_PERMS_IND";
912     public static final String ACTION_LIST_DOCUMENT_POPUP_IND = "ACTION_LIST_DOCUMENT_POPUP_IND";
913     public static final String ACTION_LIST_ROUTE_LOG_POPUP_IND  = "ACTION_LIST_ROUTE_LOG_POPUP_IND";
914     public static final String ACTION_LIST_SEND_EMAIL_NOTIFICATION_IND = "SEND_EMAIL_NOTIFICATION_IND";
915     public static final String SHOW_BACK_DOOR_LOGIN_IND = "SHOW_BACK_DOOR_LOGIN_IND";
916     public static final String RULE_DELEGATE_LIMIT = "DELEGATE_LIMIT";
917     public static final String EMAIL_REMINDER_FROM_ADDRESS = "FROM_ADDRESS";
918     public static final String MAX_NODES_BEFORE_RUNAWAY_PROCESS = "MAXIMUM_NODES_BEFORE_RUNAWAY";
919     public static final String NOTIFICATION_EXCLUDED_USERS_WORKGROUP_NAME_IND = "NOTIFY_GROUPS";
920     public static final String DOC_SEARCH_FETCH_MORE_ITERATION_LIMIT = "FETCH_MORE_ITERATION_LIMIT";
921     public static final String DOCUMENT_SEARCH_DOCUMENT_POPUP_IND = "DOCUMENT_SEARCH_POPUP_IND";
922     public static final String DOCUMENT_SEARCH_ROUTE_LOG_POPUP_IND = "DOCUMENT_SEARCH_ROUTE_LOG_POPUP_IND";
923     public static final String DOC_SEARCH_RESULT_CAP = "RESULT_CAP";
924     public static final String EDL_DEBUG_TRANSFORM_IND = "DEBUG_TRANSFORM_IND";
925     public static final String EDL_USE_XSLTC_IND = "USE_XSLTC_IND";
926     public static final String IS_LAST_APPROVER_ACTIVATE_FIRST_IND = "IS_LAST_APPROVER_ACTIVATE_FIRST_IND";
927     public static final String HELP_DESK_ACTION_LIST = "HELP_DESK_NAME_GROUP";
928     public static final String QUICK_LINKS_RESTRICT_DOCUMENT_TYPES = "RESTRICT_DOCUMENT_TYPES";
929     public static final String RULE_CUSTOM_DOC_TYPES = "CUSTOM_DOCUMENT_TYPES";
930     public static final String RULE_GENERATE_ACTION_REQESTS_IND = "GENERATE_ACTION_REQUESTS_IND";
931     public static final String SHOW_ATTACHMENTS_IND = "SHOW_ATTACHMENTS_IND";
932     public static final String RULE_CACHE_REQUEUE_DELAY = "RULE_CACHE_REQUEUE_DELAY";
933     public static final String ACTIONLIST_EMAIL_TEST_ADDRESS = "EMAIL_NOTIFICATION_TEST_ADDRESS";
934     public static final String SECURE_ATTACHMENTS_PARAM = "SECURED_ATTACHMENT_SERVLET";
935 
936     public static final String OUTBOX_ITEM_LIMIT = "OUTBOX_ITEM_LIMIT";
937 
938     //System parameter value comparisons
939     public static final String ACTION_LIST_SEND_EMAIL_NOTIFICATION_VALUE = "Y";
940     public static final String YES_RULE_CHANGE_AR_GENERATION_VALUE = "Y";
941     public static final String YES_DELEGATE_CHANGE_AR_GENERATION_VALUE = "Y";
942     public static final String DOCUMENT_SEARCH_ROUTE_LOG_POPUP_VALUE = "Y";
943     public static final String DOCUMENT_SEARCH_DOCUMENT_POPUP_VALUE = "Y";
944 
945     public static final class PermissionNames {
946         public static final String VIEW_OTHER_ACTION_LIST = "View Other Action List";
947         public static final String UNRESTRICTED_DOCUMENT_SEARCH = "Unrestricted Document Search";
948         
949     	private PermissionNames() {
950     		throw new UnsupportedOperationException("do not call");
951     	}
952     }
953 
954     // special user used when no other user is available
955     public static final String SYSTEM_USER = "kr";
956     public static final String ENABLE_KEN_NOTIFICATION = "rice.kew.enableKENNotification";
957     
958 	public static final String ROLEROUTE_QUALIFIER_RESOLVER_ELEMENT = "qualifierResolver";
959 	public static final String ROLEROUTE_QUALIFIER_RESOLVER_CLASS_ELEMENT = "qualifierResolverClass";
960 	public static final String ROLEROUTE_RESPONSIBILITY_TEMPLATE_NAME_ELEMENT = "responsibilityTemplateName";
961 	public static final String ROLEROUTE_NAMESPACE_ELEMENT = "namespace";
962 	
963 	public static final String ACTION_LIST_FILTER_ATTR_NAME = "ActionListFilter";
964 	public static final String UPDATE_ACTION_LIST_ATTR_NAME = "updateActionList";
965 	public static final String SORT_ORDER_ATTR_NAME = "sortOrder";
966 	public static final String SORT_CRITERIA_ATTR_NAME = "sortCriteria";
967 	public static final String CURRENT_PAGE_ATTR_NAME = "currentPage";
968 	
969 	public static final String HELP_DESK_ACTION_LIST_PRINCIPAL_ATTR_NAME = "helpDeskActionListPrincipal";
970 	public static final String HELP_DESK_ACTION_LIST_PERSON_ATTR_NAME = "helpDeskActionListPerson";
971 	public static final String PREFERENCES = "Preferences";
972 	public static final String WORKFLOW_DOCUMENT_MAP_ATTR_NAME = "workflowDocumentMap";
973     public static final String WORKFLOW_ACTION_IGNORE_UNKOWN_PRINCIPAL_IDS = "ignoreUnknownPrincipalIds";
974 
975     public static final String USER_OPTIONS_DEFAULT_USE_OUTBOX_PARAM = "userOptions.default.useOutBox";
976 
977 
978     public static final class SearchableAttributeConstants {
979         public static final String SEARCH_WILDCARD_CHARACTER = "*";
980         public static final String SEARCH_WILDCARD_CHARACTER_REGEX_ESCAPED = "\\" + SEARCH_WILDCARD_CHARACTER;
981         public static final String DATA_TYPE_STRING = CoreConstants.DATA_TYPE_STRING;
982         public static final String DATA_TYPE_DATE = CoreConstants.DATA_TYPE_DATE;
983         public static final String DATA_TYPE_LONG = CoreConstants.DATA_TYPE_LONG;
984         public static final String DATA_TYPE_FLOAT = CoreConstants.DATA_TYPE_FLOAT;
985         public static final String DEFAULT_SEARCHABLE_ATTRIBUTE_TYPE_NAME = DATA_TYPE_STRING;
986         public static final String DEFAULT_RANGE_SEARCH_LOWER_BOUND_LABEL = "From";
987         public static final String DEFAULT_RANGE_SEARCH_UPPER_BOUND_LABEL = "To";
988 
989         private SearchableAttributeConstants() {}
990     }
991 
992     /**
993      * Defines the prefix to add to document attribute field names on the document search screens.
994      */
995     public static final String DOCUMENT_ATTRIBUTE_FIELD_PREFIX = "documentAttribute.";
996     
997     public static final class WorkflowProcessDirectives {
998     	public static final String RUN_POST_PROCESSOR_LOGIC = "directive.run.post.processor.logic";
999     }
1000 	
1001 	public static final class GroupMembershipChangeOperations {
1002 	    public static final String ADDED = "ADDED";
1003 	    public static final String REMOVED = "REMOVED";
1004 	}
1005 
1006     public static final String DOCUMENT_CONTENT_ELEMENT = "documentContent";
1007     public static final String ATTRIBUTE_CONTENT_ELEMENT = "attributeContent";
1008     public static final String SEARCHABLE_CONTENT_ELEMENT = "searchableContent";
1009     public static final String APPLICATION_CONTENT_ELEMENT = "applicationContent";
1010     public static final String DEFAULT_DOCUMENT_CONTENT = "<" + DOCUMENT_CONTENT_ELEMENT + "/>";
1011     public static final String DEFAULT_DOCUMENT_CONTENT2 = "<" + DOCUMENT_CONTENT_ELEMENT + "></"
1012             + DOCUMENT_CONTENT_ELEMENT + ">";
1013 
1014     public static final String ATTRIBUTE_XML_CONFIG_DATA = "xmlConfigData";
1015 
1016     public static final class DocumentContentVersions {
1017         public static final int ROUTE_LEVEL = 0;
1018         public static final int NODAL = 1;
1019         public static final int CURRENT = NODAL;
1020     }
1021 
1022     public final static String SERVICE_PATH_SOAP = "soap/" + Namespaces.MODULE_NAME + "/" + CoreConstants.Versions.VERSION_2_0;
1023 
1024     public static final class Namespaces {
1025         public static final String MODULE_NAME = "kew";
1026         public static final String KEW_NAMESPACE_PREFIX = CoreConstants.Namespaces.ROOT_NAMESPACE_PREFIX + "/" + MODULE_NAME;
1027 
1028         /**
1029          * Namespace for the kew module which is compatible with Kuali Rice 2.0.x.
1030          */
1031         public static final String KEW_NAMESPACE_2_0 = KEW_NAMESPACE_PREFIX + "/" + Versions.VERSION_2_0;
1032 
1033     }
1034 
1035     public static final class ServiceNames {
1036         public static final String WORKFLOW_DOCUMENT_ACTIONS_SERVICE_SOAP = "workflowDocumentActionsService";
1037     }
1038 
1039     private KewApiConstants() {
1040         throw new UnsupportedOperationException("Should never be called.");
1041     }
1042 
1043     public static final String ACTION_TAKEN_APPROVED_CD = "A";
1044     public static final String ACTION_TAKEN_COMPLETED_CD = "C";
1045     public static final String ACTION_TAKEN_ACKNOWLEDGED_CD = "K";
1046     public static final String ACTION_TAKEN_FYI_CD = "F";
1047     public static final String ACTION_TAKEN_DENIED_CD = "D";
1048     public static final String ACTION_TAKEN_CANCELED_CD = "X";
1049     public static final String ACTION_TAKEN_ROUTED_CD = "O";
1050 
1051     public static final class ActionRequestStatusVals{
1052         public static final String DONE = "D";
1053         public static final String INITIALIZED = "I";
1054         public static final String ACTIVATED = "A";
1055 
1056     }
1057 
1058 
1059 }