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