aboutsummaryrefslogtreecommitdiffstats
path: root/app-c/appc/appc-common/src/main/java/org/openecomp/appc/util/MessageFormatter.java
diff options
context:
space:
mode:
Diffstat (limited to 'app-c/appc/appc-common/src/main/java/org/openecomp/appc/util/MessageFormatter.java')
-rw-r--r--app-c/appc/appc-common/src/main/java/org/openecomp/appc/util/MessageFormatter.java83
1 files changed, 83 insertions, 0 deletions
diff --git a/app-c/appc/appc-common/src/main/java/org/openecomp/appc/util/MessageFormatter.java b/app-c/appc/appc-common/src/main/java/org/openecomp/appc/util/MessageFormatter.java
new file mode 100644
index 000000000..39c9a67e3
--- /dev/null
+++ b/app-c/appc/appc-common/src/main/java/org/openecomp/appc/util/MessageFormatter.java
@@ -0,0 +1,83 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * openECOMP : APP-C
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights
+ * reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.appc.util;
+
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+
+public class MessageFormatter {
+ private final static String paramNameRegexGroupName = "paramName";
+ private final static String paramRegex = "\\$\\{(?<paramName>[^}$]+)\\}"; //start with ${ and after there is one or more characters that are not $ and not } and ended with }
+
+
+ public static String format(String messageTemplate, Map<String,Object> params) {
+ if (StringUtils.isEmpty(messageTemplate))
+ return "";
+ if (params == null || params.isEmpty())
+ return messageTemplate;
+
+ String formattedMessage = messageTemplate;
+ if (formattedMessage.contains("$")) {
+ for (Map.Entry<String, Object> entry : params.entrySet()) {
+ formattedMessage = formattedMessage.replaceAll("\\$\\{" + entry.getKey() + "\\}", String.valueOf(entry.getValue()));
+ }
+/* } else {
+ StringBuilder builder = new StringBuilder(formattedMessage);
+ builder.append("; output params: [");
+ for (Map.Entry<String, Object> entry : params.entrySet()) {
+ builder.append(entry.getKey()).append(":").append(String.valueOf(entry.getValue())).append("; ");
+ }
+ builder.append("]");
+ formattedMessage = builder.toString();*/
+ }
+
+ return formattedMessage;
+ }
+
+ public static List<String> getParamsNamesList(String messageTemplate) {
+ List<String> paramsNames = null;
+ if(!StringUtils.isEmpty(messageTemplate)){
+ paramsNames = new ArrayList<String>();
+ Matcher m = Pattern.compile(paramRegex).matcher(messageTemplate);
+ while (m.find()) {
+ String paramName = m.group(paramNameRegexGroupName);
+ paramsNames.add(paramName);
+ }
+ }
+ return paramsNames;
+ }
+ public static Set<String> getParamsNamesSet(String messageTemplate) {
+ List<String> paramsNamesList = getParamsNamesList(messageTemplate);
+ Set<String> paramsNamesSet = null;
+ if(paramsNamesList != null && !paramsNamesList.isEmpty()){
+ paramsNamesSet = new HashSet<String>();
+ for(String paramName : paramsNamesList){
+ paramsNamesSet.add(paramName);
+ }
+ }
+ return paramsNamesSet;
+ }
+}