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