1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.kuali.kfs.module.external.kc.util;
20
21 import java.text.MessageFormat;
22 import java.util.ArrayList;
23 import java.util.List;
24 import java.util.Set;
25
26 import org.apache.commons.lang.StringUtils;
27 import org.kuali.kfs.sys.KFSConstants;
28 import org.kuali.kfs.sys.KFSKeyConstants;
29 import org.kuali.kfs.sys.context.SpringContext;
30 import org.kuali.rice.core.api.config.property.ConfigurationService;
31 import org.kuali.rice.krad.util.ErrorMessage;
32 import org.kuali.rice.krad.util.GlobalVariables;
33 import org.kuali.rice.krad.util.MessageMap;
34
35
36
37
38 public class GlobalVariablesExtractHelper {
39 private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(GlobalVariablesExtractHelper.class);
40
41
42
43
44
45
46 public static void insertError(String message, String param) {
47 MessageMap errorMap = GlobalVariables.getMessageMap();
48 errorMap.putError(KFSConstants.GLOBAL_ERRORS, KFSKeyConstants.ERROR_CUSTOM, message + param);
49 }
50
51 public static List<String> extractGlobalVariableErrors() {
52 List<String> result = new ArrayList<String>();
53
54 MessageMap errorMap = GlobalVariables.getMessageMap();
55
56
57 Set<String> errorKeys = errorMap.getAllPropertiesWithErrors();
58 List<ErrorMessage> errorMessages = null;
59 Object[] messageParams;
60 String errorKeyString;
61 String errorString;
62
63 for (String errorProperty : errorKeys) {
64
65 errorMessages = errorMap.getErrorMessagesForProperty(errorProperty);
66 LOG.debug("error Messages :::: " + errorMessages.toString());
67 for (ErrorMessage errorMessage : errorMessages) {
68 errorKeyString = SpringContext.getBean(ConfigurationService.class).getPropertyValueAsString(errorMessage.getErrorKey());
69 messageParams = errorMessage.getMessageParameters();
70 LOG.debug("message parameters::: " + messageParams);
71 LOG.debug("errorKeyString :::: " + errorKeyString);
72
73
74 if (StringUtils.isBlank(errorKeyString)) {
75 errorString = errorMessage.getErrorKey();
76 }
77 else {
78 errorString = errorKeyString;
79 }
80 LOG.debug(errorString);
81 if (errorString.matches("^.*\\{\\d\\}.*$")) {
82 errorString = MessageFormat.format(errorString, messageParams);
83 }
84 result.add(errorString);
85 }
86 }
87
88
89 GlobalVariables.clear();
90 return result;
91 }
92
93 public static String replaceTokens(String line, String ... replacements) {
94 int i = 0;
95 for (String err : replacements) {
96 String repl = "{" + String.valueOf(i++) + "}";
97 line = StringUtils.replaceOnce(line, repl, err);
98 }
99 return line;
100 }
101
102 }