001/**
002 * Copyright 2005-2015 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 */
016package org.kuali.rice.kew.api;
017
018import org.kuali.rice.core.api.CoreConstants;
019import org.kuali.rice.core.api.CoreConstants.Versions;
020import org.kuali.rice.core.api.util.RiceConstants;
021import org.kuali.rice.kew.api.action.ActionType;
022import org.kuali.rice.kew.api.doctype.DocumentTypePolicy;
023import org.kuali.rice.kew.api.document.DocumentStatus;
024
025import java.util.ArrayList;
026import java.util.HashMap;
027import java.util.HashSet;
028import java.util.Iterator;
029import java.util.List;
030import java.util.Map;
031import java.util.Set;
032
033public final class KewApiConstants {
034        public static final String KEW_MODULE_NAMESPACE = "KEW";
035    
036    public static final String WEBAPP_DIRECTORY = "/kew";
037
038    public static final String USE_OUT_BOX = "USE_OUT_BOX%";
039
040    /**
041     * Node state key under which rule selector can be specified on a per-nodeinstance basis
042     */
043    public static final String RULE_SELECTOR_NODE_STATE_KEY = "__RULE_SELECTOR__";
044    /**
045     * Node state key under which rule nme can be specified on a per-nodeinstance basis
046     */
047    public static final String RULE_NAME_NODE_STATE_KEY = "__RULE_NAME__";
048
049    public static final String DEFAULT_DOCUMENT_TYPE_LABEL = "Undefined";
050
051    public static final String DOCUMENT_TYPE_INHERITED_VALUE_INDICATOR = "(Inherited from Parent)";
052    public static final String DOCUMENT_TYPE_SYSTEM_DEFAULT_INDICATOR = "(System Default)";
053
054    public static final String KEW_MESSAGING_ENTITY = "KEW";
055
056    public static final String MESSAGING_MEMORY = "memory";
057
058    public static final String CORE_WORKFLOW_DATASOURCE = "kewDataSource";
059    // not strictly necessary to specify if connection descriptor is configured as default
060    public static final String CORE_WORKFLOW_DATASOURCE_JCD_ALIAS = CORE_WORKFLOW_DATASOURCE;
061
062    public static final String PLUGIN_HOT_DEPLOY_MAX_WAIT_TIME = "Plugin.hotDeploy.maxWaitTime";
063    public static final String PLUGIN_HOT_DEPLOY_SAFE_TIME = "Plugin.hotDeploy.safeTime";
064
065    public static final String KEW_URL_HOST = "kew.url.host";
066    public static final String HTTP_SERVICE_PORT = "http.service.port";
067        public static final String KEW_SERVER_CONTEXT = "kew.server.context";
068
069    public static final String RELOAD_ACTION_LIST = "RELOAD_ACTION_LIST";
070    public static final String DELEGATION_WIZARD = "delegationWizard";
071    public static final String PERFORM_REALTIME_DOCUMENT_UPGRADE = "Document.PerformRealtimeUpgrade";
072    //checkRouteLogAuthentication
073
074    public static final long DEFAULT_CACHE_REQUEUE_WAIT_TIME = 5000;
075
076    public static final int DEFAULT_THREAD_POOL_SIZE = 5;
077
078    public static final String STANDARD_DOC_SEARCH_GENERATOR_CLASS_CONFIG_PARM = "documentSearch.generator.class.name";
079    public static final String STANDARD_DOC_SEARCH_RESULT_PROCESSOR_CLASS_CONFIG_PARM = "documentSearch.resultProcessor.class.name";
080
081    public static final String DELEGATE_CHANGE_AR_GENERATION_KEY = "DelegateRuleChange.IsGenerateActionRequests";
082
083    public static final String WORKGROUP_ROUTE_LOG_POPUP_KEY = "Workgroup.IsRouteLogPopup";
084    public static final String WORKGROUP_ROUTE_LOG_POPUP_VALUE = "true";
085
086    public static final String WORKGROUP_SEARCH_INSTRUCTION_KEY = "Workgroup.Search.Instruction";
087    public static final String SUB_ACCOUNT_SEARCH_INSTRUCTION_KEY = "SubAccount.Search.Instruction";
088    public static final String USER_SEARCH_INSTRUCTION_KEY = "User.Search.Instruction";
089    public static final String WORKGROUP_CREATE_NEW_INSTRUCTION_KEY = "Workgroup.CreateNew.Instruction";
090    public static final String USER_CREATE_NEW_INSTRUCTION_KEY = "User.CreateNew.Instruction";
091
092    public static final String ACTION_LIST_ATTRIBUTE_CLASS_PROPERTY = "customActionListAttributeClassName";
093    public static final String EMAIL_ATTRIBUTE_CLASS_PROPERTY = "customEmailAttributeClassName";
094    public static final String NOTE_ATTRIBUTE_CLASS_PROPERTY = "customNoteAttributeClassName";
095
096    // DelegationType values
097    public static final String DELEGATION_PRIMARY = "PRIMARY";
098    public static final String DELEGATION_SECONDARY = "SECONDARY";
099
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}