ConvertNode sonar fixes
[appc.git] / appc-config / appc-config-generator / provider / src / main / java / org / onap / sdnc / config / generator / convert / ConvertNode.java
index ccc0d90..d3ea34f 100644 (file)
 
 package org.onap.sdnc.config.generator.convert;
 
+import com.att.eelf.configuration.EELFLogger;
+import com.att.eelf.configuration.EELFManager;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.node.ObjectNode;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Map;
+import java.util.Map.Entry;
 import java.util.Set;
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.commons.lang3.StringUtils;
@@ -37,17 +42,14 @@ import org.onap.ccsdk.sli.core.sli.SvcLogicJavaPlugin;
 import org.onap.sdnc.config.generator.ConfigGeneratorConstant;
 import org.onap.sdnc.config.generator.tool.EscapeUtils;
 import org.onap.sdnc.config.generator.tool.JSONTool;
-import com.att.eelf.configuration.EELFLogger;
-import com.att.eelf.configuration.EELFManager;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ObjectNode;
 
 public class ConvertNode implements SvcLogicJavaPlugin {
 
     private static final EELFLogger log = EELFManager.getInstance().getLogger(ConvertNode.class);
+    private static final String DATA_TYPE_STR = " Datatype (";
 
     public void convertJson2DGContext(Map<String, String> inParams, SvcLogicContext ctx)
-            throws SvcLogicException {
+        throws SvcLogicException {
         log.trace("Received convertJson2DGContext call with params : " + inParams);
         String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX);
         try {
@@ -57,11 +59,11 @@ public class ConvertNode implements SvcLogicJavaPlugin {
             responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix + ".") : "";
 
             if (StringUtils.isNotBlank(jsonData)) {
-                if (StringUtils.isNotBlank(isEscaped) && isEscaped.equalsIgnoreCase("Y")) {
+                if (StringUtils.isNotBlank(isEscaped) && "Y".equalsIgnoreCase(isEscaped)) {
                     jsonData = StringEscapeUtils.unescapeJavaScript(jsonData);
                 }
 
-                List<String> blockKeys = new ArrayList<String>();
+                List<String> blockKeys = new ArrayList<>();
                 if (blockKey != null) {
                     blockKeys = Arrays.asList(blockKey.split(","));
                 }
@@ -70,27 +72,31 @@ public class ConvertNode implements SvcLogicJavaPlugin {
                 log.trace("DG Context Populated:" + dgContext);
 
                 for (Map.Entry<String, String> entry : dgContext.entrySet()) {
-                    if (entry != null && entry.getKey() != null) {
-                        ctx.setAttribute(entry.getKey(), entry.getValue());
-                    }
+                    trySetContextAttribute(ctx, entry);
                 }
             }
             ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS,
-                    ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
+                ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
 
         } catch (Exception e) {
             ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS,
-                    ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE);
+                ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE);
             ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,
-                    e.getMessage());
-            log.error("Failed in JSON to DGContext Conversion" + e.getMessage());
+                e.getMessage());
+            log.error("Failed in JSON to DGContext Conversion", e);
             throw new SvcLogicException(e.getMessage());
         }
     }
 
+    private void trySetContextAttribute(SvcLogicContext ctx, Entry<String, String> entry) {
+        if (entry != null && entry.getKey() != null) {
+            ctx.setAttribute(entry.getKey(), entry.getValue());
+        }
+    }
+
 
     public void escapeData(Map<String, String> inParams, SvcLogicContext ctx)
-            throws SvcLogicException {
+        throws SvcLogicException {
         log.trace("Received escapeData call with params : " + inParams);
         String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX);
         try {
@@ -98,90 +104,93 @@ public class ConvertNode implements SvcLogicJavaPlugin {
             String unEscapeData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_UNESCAPE_DATA);
             String dataType = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE);
 
-            if (StringUtils.isBlank(unEscapeData)) {
-                throw new Exception("Unescape (" + ConfigGeneratorConstant.INPUT_PARAM_UNESCAPE_DATA
-                        + ") param is missing for escapeData conversion." + unEscapeData);
-            }
-
-            if (StringUtils.isBlank(dataType)) {
-                throw new Exception(" Datatype (" + ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE
-                        + ")param is missing for escapeData conversion.");
-            }
-
-            String escapedData = null;
-            if (ConfigGeneratorConstant.DATA_TYPE_JSON.equalsIgnoreCase(dataType)) {
-                escapedData = StringEscapeUtils.escapeJavaScript(unEscapeData);
-            } else if (ConfigGeneratorConstant.DATA_TYPE_XML.equalsIgnoreCase(dataType)) {
-                escapedData = StringEscapeUtils.escapeXml(unEscapeData);
-            } else if (ConfigGeneratorConstant.DATA_TYPE_SQL.equalsIgnoreCase(dataType)) {
-                escapedData = EscapeUtils.escapeSql(unEscapeData);
-            } else {
-                throw new Exception(" Datatype (" + ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE
-                        + ") param  value (" + dataType
-                        + ")is not supported  for escapeData conversion.");
-            }
+            String escapedData = tryFetchEscapedData(unEscapeData, dataType);
             ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ESCAPE_DATA,
-                    escapedData);
+                escapedData);
             ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS,
-                    ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
+                ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
             log.trace("Data escapeData Successfully :" + ctx.getAttributeKeySet());
         } catch (Exception e) {
             ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS,
-                    ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE);
+                ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE);
             ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,
-                    e.getMessage());
-            log.error("Failed in escapeData Conversion" + e.getMessage());
+                e.getMessage());
+            log.error("Failed in escapeData Conversion", e);
             throw new SvcLogicException(e.getMessage());
         }
     }
 
+    private String tryFetchEscapedData(String unEscapeData, String dataType) throws InvalidParameterException {
+        if (StringUtils.isBlank(unEscapeData)) {
+            throw new InvalidParameterException("Unescape (" + ConfigGeneratorConstant.INPUT_PARAM_UNESCAPE_DATA
+                + ") param is missing for escapeData conversion." + unEscapeData);
+        }
+        if (StringUtils.isBlank(dataType)) {
+            throw new InvalidParameterException(DATA_TYPE_STR + ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE
+                + ")param is missing for escapeData conversion.");
+        }
+        if (ConfigGeneratorConstant.DATA_TYPE_JSON.equalsIgnoreCase(dataType)) {
+            return StringEscapeUtils.escapeJavaScript(unEscapeData);
+        } else if (ConfigGeneratorConstant.DATA_TYPE_XML.equalsIgnoreCase(dataType)) {
+            return StringEscapeUtils.escapeXml(unEscapeData);
+        } else if (ConfigGeneratorConstant.DATA_TYPE_SQL.equalsIgnoreCase(dataType)) {
+            return EscapeUtils.escapeSql(unEscapeData);
+        } else {
+            throw new InvalidParameterException(DATA_TYPE_STR + ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE
+                + ") param  value (" + dataType
+                + ")is not supported  for escapeData conversion.");
+        }
+    }
+
     public void unEscapeData(Map<String, String> inParams, SvcLogicContext ctx)
-            throws SvcLogicException {
+        throws SvcLogicException {
         log.trace("Received unEscapeData call with params : " + inParams);
         String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX);
         try {
             responsePrefix = StringUtils.isNotBlank(responsePrefix) ? (responsePrefix + ".") : "";
             String escapeData = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_ESCAPE_DATA);
             String dataType = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE);
+            String unEscapedData = tryFetchUnescapedData(escapeData, dataType);
 
-            if (StringUtils.isBlank(escapeData)) {
-                throw new Exception("Escape (" + ConfigGeneratorConstant.INPUT_PARAM_ESCAPE_DATA
-                        + ") param is missing for escapeData conversion.");
-            }
-
-            if (StringUtils.isBlank(dataType)) {
-                throw new Exception(" Datatype (" + ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE
-                        + ")param is missing for escapeData conversion.");
-            }
-
-            String unEscapedData = null;
-            if (ConfigGeneratorConstant.DATA_TYPE_JSON.equalsIgnoreCase(dataType)) {
-                unEscapedData = StringEscapeUtils.unescapeJavaScript(escapeData);
-            } else if (ConfigGeneratorConstant.DATA_TYPE_XML.equalsIgnoreCase(dataType)) {
-                unEscapedData = StringEscapeUtils.unescapeXml(escapeData);
-            } else {
-                throw new Exception(" Datatype (" + ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE
-                        + ") param  value (" + dataType
-                        + ")is not supported  for unEscapeData conversion.");
-            }
             ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_UNESCAPE_DATA,
-                    unEscapedData);
+                unEscapedData);
             ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS,
-                    ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
+                ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
             log.trace("Converted unEscapeData Successfully :" + ctx.getAttributeKeySet());
         } catch (Exception e) {
             ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS,
-                    ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE);
+                ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE);
             ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,
-                    e.getMessage());
-            log.error("Failed in unEscapeData Conversion" + e.getMessage());
+                e.getMessage());
+            log.error("Failed in unEscapeData Conversion", e);
             throw new SvcLogicException(e.getMessage());
         }
     }
 
+    private String tryFetchUnescapedData(String escapeData, String dataType) throws InvalidParameterException {
+        if (StringUtils.isBlank(escapeData)) {
+            throw new InvalidParameterException("Escape (" + ConfigGeneratorConstant.INPUT_PARAM_ESCAPE_DATA
+                + ") param is missing for escapeData conversion.");
+        }
+
+        if (StringUtils.isBlank(dataType)) {
+            throw new InvalidParameterException(DATA_TYPE_STR + ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE
+                + ")param is missing for escapeData conversion.");
+        }
+        if (ConfigGeneratorConstant.DATA_TYPE_JSON.equalsIgnoreCase(dataType)) {
+            return StringEscapeUtils.unescapeJavaScript(escapeData);
+        } else if (ConfigGeneratorConstant.DATA_TYPE_XML.equalsIgnoreCase(dataType)) {
+            return StringEscapeUtils.unescapeXml(escapeData);
+        } else {
+            throw new InvalidParameterException(DATA_TYPE_STR + ConfigGeneratorConstant.INPUT_PARAM_DATA_TYPE
+                + ") param  value (" + dataType
+                + ")is not supported  for unEscapeData conversion.");
+        }
+    }
+
 
     public void convertContextToJson(Map<String, String> inParams, SvcLogicContext ctx)
-            throws SvcLogicException {
+        throws SvcLogicException {
         log.trace("Received convertContextToJson call with params : " + inParams);
         String responsePrefix = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_RESPONSE_PRIFIX);
         String contextKey = inParams.get(ConfigGeneratorConstant.INPUT_PARAM_CONTEXT_KEY);
@@ -200,16 +209,16 @@ public class ConvertNode implements SvcLogicJavaPlugin {
                 }
             }
             ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.INPUT_PARAM_JSON_CONTENT,
-                    objectNode.toString());
+                objectNode.toString());
             ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS,
-                    ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
+                ConfigGeneratorConstant.OUTPUT_STATUS_SUCCESS);
             log.trace("convertContextToJson Successful");
         } catch (Exception e) {
             ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_STATUS,
-                    ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE);
+                ConfigGeneratorConstant.OUTPUT_STATUS_FAILURE);
             ctx.setAttribute(responsePrefix + ConfigGeneratorConstant.OUTPUT_PARAM_ERROR_MESSAGE,
-                    e.getMessage());
-            log.error("Failed in convertContextToJson" + e.getMessage());
+                e.getMessage());
+            log.error("Failed in convertContextToJson", e);
             throw new SvcLogicException(e.getMessage());
         }
     }