summaryrefslogtreecommitdiffstats
path: root/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters')
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/BooleanConverter.java24
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/DataTypePropertyConverter.java17
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/DefaultConverter.java24
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/FloatConverter.java24
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatBooleanConverter.java40
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatCommaDelimitedListConverter.java38
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatJsonConverter.java40
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatNumberConverter.java30
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatStringConverter.java38
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/IntegerConverter.java30
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/JsonConverter.java49
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ListConverter.java357
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/LowerCaseConverter.java30
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/MapConverter.java417
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/PropertyValueConverter.java6
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/StringConvertor.java40
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaBooleanConverter.java40
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaConverterUtils.java3
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaFloatConverter.java6
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaJsonValueConverter.java45
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaListValueConverter.java283
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaMapValueConverter.java433
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaStringConvertor.java24
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueBaseConverter.java285
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueConverter.java6
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueDefaultConverter.java24
26 files changed, 1151 insertions, 1202 deletions
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/BooleanConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/BooleanConverter.java
index f721efb3c9..9ff43926a4 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/BooleanConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/BooleanConverter.java
@@ -20,23 +20,23 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.Map;
-
import org.openecomp.sdc.be.model.DataTypeDefinition;
+import java.util.Map;
+
public class BooleanConverter implements ToscaValueConverter {
- private static BooleanConverter booleanConverter = new BooleanConverter();
+ private static BooleanConverter booleanConverter = new BooleanConverter();
- public static BooleanConverter getInstance() {
- return booleanConverter;
- }
+ public static BooleanConverter getInstance() {
+ return booleanConverter;
+ }
- private BooleanConverter() {
+ private BooleanConverter() {
- }
+ }
- @Override
- public Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- return Boolean.valueOf(value);
- }
+ @Override
+ public Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ return Boolean.valueOf(value);
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/DataTypePropertyConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/DataTypePropertyConverter.java
index 32929beb5f..f3b842e0cf 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/DataTypePropertyConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/DataTypePropertyConverter.java
@@ -1,19 +1,18 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.io.StringReader;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.openecomp.sdc.be.model.DataTypeDefinition;
-import org.openecomp.sdc.be.model.PropertyDefinition;
-import org.openecomp.sdc.common.util.JsonUtils;
-
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.stream.JsonReader;
+import org.openecomp.sdc.be.model.DataTypeDefinition;
+import org.openecomp.sdc.be.model.PropertyDefinition;
+import org.openecomp.sdc.common.util.JsonUtils;
+
+import java.io.StringReader;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
public class DataTypePropertyConverter {
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/DefaultConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/DefaultConverter.java
index c190298b52..11c0340a91 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/DefaultConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/DefaultConverter.java
@@ -20,24 +20,24 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.Map;
-
import org.openecomp.sdc.be.model.DataTypeDefinition;
+import java.util.Map;
+
public class DefaultConverter implements PropertyValueConverter {
- private static DefaultConverter defaultConverter = new DefaultConverter();
+ private static DefaultConverter defaultConverter = new DefaultConverter();
- public static DefaultConverter getInstance() {
- return defaultConverter;
- }
+ public static DefaultConverter getInstance() {
+ return defaultConverter;
+ }
- private DefaultConverter() {
+ private DefaultConverter() {
- }
+ }
- @Override
- public String convert(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- return value;
- }
+ @Override
+ public String convert(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ return value;
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/FloatConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/FloatConverter.java
index d3edd9b8bf..2d2ac72ca5 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/FloatConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/FloatConverter.java
@@ -20,23 +20,23 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.Map;
-
import org.openecomp.sdc.be.model.DataTypeDefinition;
+import java.util.Map;
+
public class FloatConverter implements ToscaValueConverter {
- private static FloatConverter floatConverter = new FloatConverter();
+ private static FloatConverter floatConverter = new FloatConverter();
- public static FloatConverter getInstance() {
- return floatConverter;
- }
+ public static FloatConverter getInstance() {
+ return floatConverter;
+ }
- private FloatConverter() {
+ private FloatConverter() {
- }
+ }
- @Override
- public Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- return Double.parseDouble(value);
- }
+ @Override
+ public Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ return Double.parseDouble(value);
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatBooleanConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatBooleanConverter.java
index 52fa9bfa81..77f49319bd 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatBooleanConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatBooleanConverter.java
@@ -20,35 +20,35 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.Map;
-
import org.openecomp.sdc.be.model.DataTypeDefinition;
+import java.util.Map;
+
public class HeatBooleanConverter implements PropertyValueConverter {
- private static HeatBooleanConverter booleanConverter = new HeatBooleanConverter();
+ private static HeatBooleanConverter booleanConverter = new HeatBooleanConverter();
- public static HeatBooleanConverter getInstance() {
- return booleanConverter;
- }
+ public static HeatBooleanConverter getInstance() {
+ return booleanConverter;
+ }
- private HeatBooleanConverter() {
+ private HeatBooleanConverter() {
- }
+ }
- @Override
- public String convert(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ @Override
+ public String convert(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- if (value == null || value.isEmpty()) {
- return null;
- }
+ if (value == null || value.isEmpty()) {
+ return null;
+ }
- if (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("t") || value.equalsIgnoreCase("on")
- || value.equalsIgnoreCase("yes") || value.equalsIgnoreCase("y") || value.equalsIgnoreCase("1")) {
- return "true";
- } else {
- return "false";
- }
- }
+ if (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("t") || value.equalsIgnoreCase("on")
+ || value.equalsIgnoreCase("yes") || value.equalsIgnoreCase("y") || value.equalsIgnoreCase("1")) {
+ return "true";
+ } else {
+ return "false";
+ }
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatCommaDelimitedListConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatCommaDelimitedListConverter.java
index 30c21c8c1c..04c2a7dd1f 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatCommaDelimitedListConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatCommaDelimitedListConverter.java
@@ -20,33 +20,33 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.Map;
-
import org.openecomp.sdc.be.model.DataTypeDefinition;
import org.openecomp.sdc.common.util.ValidationUtils;
+import java.util.Map;
+
public class HeatCommaDelimitedListConverter implements PropertyValueConverter {
- private static HeatCommaDelimitedListConverter stringConverter = new HeatCommaDelimitedListConverter();
+ private static HeatCommaDelimitedListConverter stringConverter = new HeatCommaDelimitedListConverter();
- public static HeatCommaDelimitedListConverter getInstance() {
- return stringConverter;
- }
+ public static HeatCommaDelimitedListConverter getInstance() {
+ return stringConverter;
+ }
- private HeatCommaDelimitedListConverter() {
+ private HeatCommaDelimitedListConverter() {
- }
+ }
- @Override
- public String convert(String original, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- String coverted = null;
- if(original != null){
- coverted = ValidationUtils.removeNoneUtf8Chars(original);
- coverted = ValidationUtils.removeHtmlTagsOnly(coverted);
- coverted = ValidationUtils.normaliseWhitespace(coverted);
- coverted = ValidationUtils.stripOctets(coverted);
- }
- return coverted;
- }
+ @Override
+ public String convert(String original, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ String coverted = null;
+ if(original != null){
+ coverted = ValidationUtils.removeNoneUtf8Chars(original);
+ coverted = ValidationUtils.removeHtmlTagsOnly(coverted);
+ coverted = ValidationUtils.normaliseWhitespace(coverted);
+ coverted = ValidationUtils.stripOctets(coverted);
+ }
+ return coverted;
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatJsonConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatJsonConverter.java
index 9922c0f05d..90618ced45 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatJsonConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatJsonConverter.java
@@ -20,34 +20,34 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.Map;
-
import org.openecomp.sdc.be.model.DataTypeDefinition;
import org.openecomp.sdc.common.util.ValidationUtils;
+import java.util.Map;
+
public class HeatJsonConverter implements PropertyValueConverter {
- private static HeatJsonConverter jsonConverter = new HeatJsonConverter();
+ private static HeatJsonConverter jsonConverter = new HeatJsonConverter();
- public static HeatJsonConverter getInstance() {
- return jsonConverter;
- }
+ public static HeatJsonConverter getInstance() {
+ return jsonConverter;
+ }
- private HeatJsonConverter() {
+ private HeatJsonConverter() {
- }
+ }
- @Override
- public String convert(String original, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- if (original == null) {
- return null;
- }
- String converted = ValidationUtils.removeNoneUtf8Chars(original);
- converted = ValidationUtils.removeHtmlTagsOnly(converted);
- converted = ValidationUtils.normaliseWhitespace(converted);
- converted = ValidationUtils.stripOctets(converted);
- // As opposed to string converter, keeping the " and ' symbols
- return converted;
- }
+ @Override
+ public String convert(String original, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ if (original == null) {
+ return null;
+ }
+ String converted = ValidationUtils.removeNoneUtf8Chars(original);
+ converted = ValidationUtils.removeHtmlTagsOnly(converted);
+ converted = ValidationUtils.normaliseWhitespace(converted);
+ converted = ValidationUtils.stripOctets(converted);
+ // As opposed to string converter, keeping the " and ' symbols
+ return converted;
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatNumberConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatNumberConverter.java
index 8798b544bc..187793ee0b 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatNumberConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatNumberConverter.java
@@ -20,31 +20,31 @@
package org.openecomp.sdc.be.model.tosca.converters;
+import org.openecomp.sdc.be.model.DataTypeDefinition;
+
import java.math.BigDecimal;
import java.util.Map;
-import org.openecomp.sdc.be.model.DataTypeDefinition;
-
public class HeatNumberConverter implements PropertyValueConverter {
- private static HeatNumberConverter numberConverter = new HeatNumberConverter();
+ private static HeatNumberConverter numberConverter = new HeatNumberConverter();
- public static HeatNumberConverter getInstance() {
- return numberConverter;
- }
+ public static HeatNumberConverter getInstance() {
+ return numberConverter;
+ }
- private HeatNumberConverter() {
+ private HeatNumberConverter() {
- }
+ }
- @Override
- public String convert(String original, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ @Override
+ public String convert(String original, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- if (original == null || original.isEmpty()) {
- return null;
- }
+ if (original == null || original.isEmpty()) {
+ return null;
+ }
- return new BigDecimal(original).toPlainString();
- }
+ return new BigDecimal(original).toPlainString();
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatStringConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatStringConverter.java
index 3f2b6eabf7..3bc379c7f9 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatStringConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/HeatStringConverter.java
@@ -20,33 +20,33 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.Map;
-
import org.openecomp.sdc.be.model.DataTypeDefinition;
import org.openecomp.sdc.common.util.ValidationUtils;
+import java.util.Map;
+
public class HeatStringConverter implements PropertyValueConverter {
- private static HeatStringConverter stringConverter = new HeatStringConverter();
+ private static HeatStringConverter stringConverter = new HeatStringConverter();
- public static HeatStringConverter getInstance() {
- return stringConverter;
- }
+ public static HeatStringConverter getInstance() {
+ return stringConverter;
+ }
- private HeatStringConverter() {
+ private HeatStringConverter() {
- }
+ }
- @Override
- public String convert(String original, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- String coverted = null;
- if(original != null){
- coverted = ValidationUtils.removeNoneUtf8Chars(original);
- coverted = ValidationUtils.normaliseWhitespace(coverted);
- coverted = ValidationUtils.stripOctets(coverted);
- coverted = ValidationUtils.removeHtmlTagsOnly(coverted);
- }
- return coverted;
- }
+ @Override
+ public String convert(String original, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ String coverted = null;
+ if(original != null){
+ coverted = ValidationUtils.removeNoneUtf8Chars(original);
+ coverted = ValidationUtils.normaliseWhitespace(coverted);
+ coverted = ValidationUtils.stripOctets(coverted);
+ coverted = ValidationUtils.removeHtmlTagsOnly(coverted);
+ }
+ return coverted;
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/IntegerConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/IntegerConverter.java
index 30fbf69b80..f5e0a61358 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/IntegerConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/IntegerConverter.java
@@ -20,28 +20,28 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.Map;
-
import org.openecomp.sdc.be.model.DataTypeDefinition;
+import java.util.Map;
+
public class IntegerConverter implements ToscaValueConverter {
- private static IntegerConverter integerConverter = new IntegerConverter();
+ private static IntegerConverter integerConverter = new IntegerConverter();
- public static IntegerConverter getInstance() {
- return integerConverter;
- }
+ public static IntegerConverter getInstance() {
+ return integerConverter;
+ }
- private IntegerConverter() {
+ private IntegerConverter() {
- }
+ }
- @Override
- public Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- if ( value == null || value.isEmpty() ){
- return null;
- }
- return Integer.parseInt(value);
- }
+ @Override
+ public Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ if ( value == null || value.isEmpty() ){
+ return null;
+ }
+ return Integer.parseInt(value);
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/JsonConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/JsonConverter.java
index 3472b6448c..db2004aab4 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/JsonConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/JsonConverter.java
@@ -20,42 +20,41 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.io.StringReader;
-import java.util.Map;
-
-import org.openecomp.sdc.be.model.DataTypeDefinition;
-import org.openecomp.sdc.common.util.GsonFactory;
-
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.google.gson.stream.JsonReader;
+import org.openecomp.sdc.be.model.DataTypeDefinition;
+import org.openecomp.sdc.common.util.GsonFactory;
+
+import java.io.StringReader;
+import java.util.Map;
public class JsonConverter implements PropertyValueConverter {
- private static JsonConverter jsonConverter = new JsonConverter();
+ private static JsonConverter jsonConverter = new JsonConverter();
- private static JsonParser jsonParser = new JsonParser();
+ private static JsonParser jsonParser = new JsonParser();
- private static Gson gson = GsonFactory.getGson();
+ private static Gson gson = GsonFactory.getGson();
- public static JsonConverter getInstance() {
- return jsonConverter;
- }
+ public static JsonConverter getInstance() {
+ return jsonConverter;
+ }
- private JsonConverter() {
+ private JsonConverter() {
- }
+ }
- @Override
- public String convert(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- StringReader reader = new StringReader(value);
- JsonReader jsonReader = new JsonReader(reader);
- jsonReader.setLenient(true);
- JsonElement jsonElement = jsonParser.parse(jsonReader);
- if (jsonElement.isJsonPrimitive()) {
- return value;
- }
- return gson.toJson(jsonElement);
- }
+ @Override
+ public String convert(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ StringReader reader = new StringReader(value);
+ JsonReader jsonReader = new JsonReader(reader);
+ jsonReader.setLenient(true);
+ JsonElement jsonElement = jsonParser.parse(jsonReader);
+ if (jsonElement.isJsonPrimitive()) {
+ return value;
+ }
+ return gson.toJson(jsonElement);
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ListConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ListConverter.java
index 4f6de9b80c..00783404e7 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ListConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ListConverter.java
@@ -20,200 +20,191 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.math.BigInteger;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
+import com.google.gson.*;
+import fj.data.Either;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
import org.openecomp.sdc.be.model.DataTypeDefinition;
import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
import org.openecomp.sdc.be.model.tosca.validators.DataTypeValidatorConverter;
import org.openecomp.sdc.be.model.tosca.validators.ListValidator;
+import org.openecomp.sdc.common.log.wrappers.Logger;
import org.openecomp.sdc.common.util.GsonFactory;
import org.openecomp.sdc.common.util.JsonUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import com.google.gson.Gson;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonParseException;
-import com.google.gson.JsonParser;
-
-import fj.data.Either;
+import java.math.BigInteger;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
public class ListConverter implements PropertyValueConverter {
- private static ListConverter listConverter = new ListConverter();
- private static Gson gson = GsonFactory.getGson();
- private static Logger log = LoggerFactory.getLogger(ListValidator.class.getName());
-
- DataTypeValidatorConverter dataTypeValidatorConverter = DataTypeValidatorConverter.getInstance();
-
- private static JsonParser jsonParser = new JsonParser();
-
- public static ListConverter getInstance() {
- return listConverter;
- }
-
- @Override
- public String convert(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- Either<String, Boolean> convertWithErrorResult = this.convertWithErrorResult(value, innerType, dataTypes);
- if (convertWithErrorResult.isRight()) {
- return null;
- }
-
- return convertWithErrorResult.left().value();
- }
-
- public Either<String, Boolean> convertWithErrorResult(String value, String innerType,
- Map<String, DataTypeDefinition> dataTypes) {
- if (value == null || innerType == null) {
- return Either.left(value);
- }
-
- PropertyValueConverter innerConverter;
- ToscaPropertyType innerToscaType = ToscaPropertyType.isValidType(innerType);
-
- if (innerToscaType != null) {
- PropertyValueConverter innerConverter1;
- switch (innerToscaType) {
- case STRING:
- innerConverter1 = ToscaPropertyType.STRING.getConverter();
- break;
- case INTEGER:
- innerConverter1 = ToscaPropertyType.INTEGER.getConverter();
- break;
- case FLOAT:
- innerConverter1 = ToscaPropertyType.FLOAT.getConverter();
- break;
- case BOOLEAN:
- innerConverter1 = ToscaPropertyType.BOOLEAN.getConverter();
- break;
- case JSON:
- innerConverter1 = ToscaPropertyType.JSON.getConverter();
- break;
- default:
- log.debug("inner Tosca Type is unknown");
- return Either.left(value);
- }
- innerConverter = innerConverter1;
- } else {
- log.debug("inner Tosca Type {} ia a complex data type.", innerType);
-
- Either<String, Boolean> validateComplexInnerType = convertComplexInnerType(value, innerType, dataTypes);
-
- return validateComplexInnerType;
- }
-
- try {
- ArrayList<String> newList = new ArrayList<String>();
-
- JsonArray jo = (JsonArray) jsonParser.parse(value);
- if(ToscaPropertyType.JSON == innerToscaType)
- return Either.left(value);
- int size = jo.size();
- for (int i = 0; i < size; i++) {
- JsonElement currentValue = jo.get(i);
- String element = JsonUtils.toString(currentValue);
-
- if (element == null || element.isEmpty()) {
- continue;
- }
- element = innerConverter.convert(element, null, dataTypes);
- newList.add(element);
- }
-
- switch (innerToscaType) {
- case STRING:
- value = gson.toJson(newList);
- break;
- case INTEGER:
- List<BigInteger> intList = new ArrayList<BigInteger>();
-
- for (String str : newList) {
- int base = 10;
- if (str.contains("0x")) {
- str = str.replaceFirst("0x", "");
- base = 16;
- }
- if (str.contains("0o")) {
- str = str.replaceFirst("0o", "");
- base = 8;
- }
- intList.add(new BigInteger(str, base));
- }
- value = gson.toJson(intList);
- break;
- case FLOAT:
- value = "[";
- for (String str : newList) {
- value += str + ",";
- }
- value = value.substring(0, value.length() - 1);
- value += "]";
- break;
- case BOOLEAN:
- List<Boolean> boolList = new ArrayList<Boolean>();
- for (String str : newList) {
- boolList.add(Boolean.valueOf(str));
- }
- value = gson.toJson(boolList);
- break;
- default:
- value = gson.toJson(newList);
- log.debug("inner Tosca Type unknown : {}", innerToscaType);
- }
-
- } catch (JsonParseException e) {
- log.debug("Failed to parse json : {}", value, e);
- BeEcompErrorManager.getInstance().logBeInvalidJsonInput("List Converter");
- return Either.right(false);
- }
-
- return Either.left(value);
- }
-
- private Either<String, Boolean> convertComplexInnerType(String value, String innerType,
- Map<String, DataTypeDefinition> allDataTypes) {
-
- DataTypeDefinition dataTypeDefinition = allDataTypes.get(innerType);
- if (dataTypeDefinition == null) {
- log.debug("Cannot find data type {}", innerType);
- return Either.right(false);
- }
-
- List<JsonElement> newList = new ArrayList<>();
-
- try {
-
- JsonArray jo = (JsonArray) jsonParser.parse(value);
- int size = jo.size();
- for (int i = 0; i < size; i++) {
- JsonElement currentValue = jo.get(i);
-
- if (currentValue != null) {
-
- String element = JsonUtils.toString(currentValue);
-
- ImmutablePair<JsonElement, Boolean> validateAndUpdate = dataTypeValidatorConverter
- .validateAndUpdate(element, dataTypeDefinition, allDataTypes);
- if (validateAndUpdate.right.booleanValue() == false) {
- log.debug("Cannot parse value {} from type {} in list position {}",currentValue,innerType,i);
- return Either.right(false);
- }
- JsonElement newValue = validateAndUpdate.left;
- newList.add(newValue);
- }
- }
- } catch (Exception e) {
- log.debug("Failed to parse the value {} of list parameter.", value);
- return Either.right(false);
- }
- value = gson.toJson(newList);
- return Either.left(value);
- }
+ private static ListConverter listConverter = new ListConverter();
+ private static Gson gson = GsonFactory.getGson();
+ private static final Logger log = Logger.getLogger(ListValidator.class.getName());
+
+ DataTypeValidatorConverter dataTypeValidatorConverter = DataTypeValidatorConverter.getInstance();
+
+ private static JsonParser jsonParser = new JsonParser();
+
+ public static ListConverter getInstance() {
+ return listConverter;
+ }
+
+ @Override
+ public String convert(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ Either<String, Boolean> convertWithErrorResult = this.convertWithErrorResult(value, innerType, dataTypes);
+ if (convertWithErrorResult.isRight()) {
+ return null;
+ }
+
+ return convertWithErrorResult.left().value();
+ }
+
+ public Either<String, Boolean> convertWithErrorResult(String value, String innerType,
+ Map<String, DataTypeDefinition> dataTypes) {
+ if (value == null || innerType == null) {
+ return Either.left(value);
+ }
+
+ PropertyValueConverter innerConverter;
+ ToscaPropertyType innerToscaType = ToscaPropertyType.isValidType(innerType);
+
+ if (innerToscaType != null) {
+ PropertyValueConverter innerConverter1;
+ switch (innerToscaType) {
+ case STRING:
+ innerConverter1 = ToscaPropertyType.STRING.getConverter();
+ break;
+ case INTEGER:
+ innerConverter1 = ToscaPropertyType.INTEGER.getConverter();
+ break;
+ case FLOAT:
+ innerConverter1 = ToscaPropertyType.FLOAT.getConverter();
+ break;
+ case BOOLEAN:
+ innerConverter1 = ToscaPropertyType.BOOLEAN.getConverter();
+ break;
+ case JSON:
+ innerConverter1 = ToscaPropertyType.JSON.getConverter();
+ break;
+ default:
+ log.debug("inner Tosca Type is unknown");
+ return Either.left(value);
+ }
+ innerConverter = innerConverter1;
+ } else {
+ log.debug("inner Tosca Type {} ia a complex data type.", innerType);
+
+ return convertComplexInnerType(value, innerType, dataTypes);
+ }
+
+ try {
+ ArrayList<String> newList = new ArrayList<>();
+
+ JsonArray jo = (JsonArray) jsonParser.parse(value);
+ if(ToscaPropertyType.JSON == innerToscaType)
+ return Either.left(value);
+ int size = jo.size();
+ for (int i = 0; i < size; i++) {
+ JsonElement currentValue = jo.get(i);
+ String element = JsonUtils.toString(currentValue);
+
+ if (element == null || element.isEmpty()) {
+ continue;
+ }
+ element = innerConverter.convert(element, null, dataTypes);
+ newList.add(element);
+ }
+
+ switch (innerToscaType) {
+ case STRING:
+ value = gson.toJson(newList);
+ break;
+ case INTEGER:
+ List<BigInteger> intList = new ArrayList<>();
+
+ for (String str : newList) {
+ int base = 10;
+ if (str.contains("0x")) {
+ str = str.replaceFirst("0x", "");
+ base = 16;
+ }
+ if (str.contains("0o")) {
+ str = str.replaceFirst("0o", "");
+ base = 8;
+ }
+ intList.add(new BigInteger(str, base));
+ }
+ value = gson.toJson(intList);
+ break;
+ case FLOAT:
+ value = "[";
+ for (String str : newList) {
+ value += str + ",";
+ }
+ value = value.substring(0, value.length() - 1);
+ value += "]";
+ break;
+ case BOOLEAN:
+ List<Boolean> boolList = new ArrayList<>();
+ for (String str : newList) {
+ boolList.add(Boolean.valueOf(str));
+ }
+ value = gson.toJson(boolList);
+ break;
+ default:
+ value = gson.toJson(newList);
+ log.debug("inner Tosca Type unknown : {}", innerToscaType);
+ }
+
+ } catch (JsonParseException e) {
+ log.debug("Failed to parse json : {}", value, e);
+ BeEcompErrorManager.getInstance().logBeInvalidJsonInput("List Converter");
+ return Either.right(false);
+ }
+
+ return Either.left(value);
+ }
+
+ private Either<String, Boolean> convertComplexInnerType(String value, String innerType,
+ Map<String, DataTypeDefinition> allDataTypes) {
+
+ DataTypeDefinition dataTypeDefinition = allDataTypes.get(innerType);
+ if (dataTypeDefinition == null) {
+ log.debug("Cannot find data type {}", innerType);
+ return Either.right(false);
+ }
+
+ List<JsonElement> newList = new ArrayList<>();
+
+ try {
+
+ JsonArray jo = (JsonArray) jsonParser.parse(value);
+ int size = jo.size();
+ for (int i = 0; i < size; i++) {
+ JsonElement currentValue = jo.get(i);
+
+ if (currentValue != null) {
+
+ String element = JsonUtils.toString(currentValue);
+
+ ImmutablePair<JsonElement, Boolean> validateAndUpdate = dataTypeValidatorConverter
+ .validateAndUpdate(element, dataTypeDefinition, allDataTypes);
+ if (!validateAndUpdate.right.booleanValue()) {
+ log.debug("Cannot parse value {} from type {} in list position {}",currentValue,innerType,i);
+ return Either.right(false);
+ }
+ JsonElement newValue = validateAndUpdate.left;
+ newList.add(newValue);
+ }
+ }
+ } catch (Exception e) {
+ log.debug("Failed to parse the value {} of list parameter.", value);
+ return Either.right(false);
+ }
+ value = gson.toJson(newList);
+ return Either.left(value);
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/LowerCaseConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/LowerCaseConverter.java
index f33be29327..6e799dac83 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/LowerCaseConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/LowerCaseConverter.java
@@ -20,29 +20,29 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.Map;
-
import org.openecomp.sdc.be.model.DataTypeDefinition;
+import java.util.Map;
+
public class LowerCaseConverter implements PropertyValueConverter {
- private static LowerCaseConverter booleanConverter = new LowerCaseConverter();
+ private static LowerCaseConverter booleanConverter = new LowerCaseConverter();
- public static LowerCaseConverter getInstance() {
- return booleanConverter;
- }
+ public static LowerCaseConverter getInstance() {
+ return booleanConverter;
+ }
- private LowerCaseConverter() {
+ private LowerCaseConverter() {
- }
+ }
- @Override
- public String convert(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ @Override
+ public String convert(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- if (value == null) {
- return null;
- }
- return value.toLowerCase();
- }
+ if (value == null) {
+ return null;
+ }
+ return value.toLowerCase();
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/MapConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/MapConverter.java
index 30b895f0d2..f53d95ceaf 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/MapConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/MapConverter.java
@@ -20,230 +20,221 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
+import com.google.gson.*;
+import fj.data.Either;
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
import org.openecomp.sdc.be.model.DataTypeDefinition;
import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
import org.openecomp.sdc.be.model.tosca.validators.DataTypeValidatorConverter;
import org.openecomp.sdc.be.model.tosca.validators.ListValidator;
+import org.openecomp.sdc.common.log.wrappers.Logger;
import org.openecomp.sdc.common.util.GsonFactory;
import org.openecomp.sdc.common.util.JsonUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import com.google.gson.Gson;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParseException;
-import com.google.gson.JsonParser;
-
-import fj.data.Either;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Map.Entry;
+import java.util.Set;
public class MapConverter implements PropertyValueConverter {
- private static MapConverter mapConverter = new MapConverter();
- private static Gson gson = GsonFactory.getGson();
- private static Logger log = LoggerFactory.getLogger(ListValidator.class.getName());
-
- DataTypeValidatorConverter dataTypeValidatorConverter = DataTypeValidatorConverter.getInstance();
-
- private static JsonParser jsonParser = new JsonParser();
-
- public static MapConverter getInstance() {
- return mapConverter;
- }
-
- public String convert(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
-
- Either<String, Boolean> convertWithErrorResult = this.convertWithErrorResult(value, innerType, dataTypes);
- if (convertWithErrorResult.isRight()) {
- return null;
- }
-
- return convertWithErrorResult.left().value();
- }
-
- public Either<String, Boolean> convertWithErrorResult(String value, String innerType,
- Map<String, DataTypeDefinition> dataTypes) {
-
- if (value == null || value == "" || innerType == null) {
- return Either.left(value);
- }
-
- PropertyValueConverter innerConverter;
- PropertyValueConverter keyConverter = ToscaPropertyType.STRING.getConverter();
- ToscaPropertyType innerToscaType = ToscaPropertyType.isValidType(innerType);
-
- if (innerToscaType != null) {
- switch (innerToscaType) {
- case STRING:
- innerConverter = ToscaPropertyType.STRING.getConverter();
- break;
- case INTEGER:
- innerConverter = ToscaPropertyType.INTEGER.getConverter();
- break;
- case FLOAT:
- innerConverter = ToscaPropertyType.FLOAT.getConverter();
- break;
- case BOOLEAN:
- innerConverter = ToscaPropertyType.BOOLEAN.getConverter();
- break;
- case JSON:
- innerConverter = ToscaPropertyType.JSON.getConverter();
- break;
- default:
- log.debug("inner Tosca Type is unknown");
- return Either.left(value);
- }
-
- } else {
-
- log.debug("inner Tosca Type {} ia a complex data type.", innerType);
-
- Either<String, Boolean> validateComplexInnerType = convertComplexInnerType(value, innerType, keyConverter,
- dataTypes);
-
- return validateComplexInnerType;
-
- }
-
- try {
- Map<String, String> newMap = new HashMap<String, String>();
-
- JsonElement jsonObject = jsonParser.parse(value);
- JsonObject asJsonObject = jsonObject.getAsJsonObject();
- Set<Entry<String, JsonElement>> entrySet = asJsonObject.entrySet();
- for (Entry<String, JsonElement> entry : entrySet) {
- String key = entry.getKey();
- JsonElement jsonValue = entry.getValue();
-
- key = keyConverter.convert(entry.getKey(), null, dataTypes);
-
- String element = JsonUtils.toString(jsonValue);
-
- String val = innerConverter.convert(element, null, dataTypes);
- newMap.put(key, val);
- }
-
- String objVal;
- switch (innerToscaType) {
- case STRING:
- value = gson.toJson(newMap);
- break;
- case INTEGER:
- String key = null;
- Map<String, Integer> intMap = new HashMap<String, Integer>();
- for (Map.Entry<String, String> entry : newMap.entrySet()) {
- objVal = entry.getValue();
- key = entry.getKey();
- if (objVal != null) {
- intMap.put(key, Integer.valueOf(objVal.toString()));
- } else {
- intMap.put(key, null);
- }
-
- }
- value = gson.toJson(intMap);
- break;
- case FLOAT:
- value = "{";
- for (Map.Entry<String, String> entry : newMap.entrySet()) {
- objVal = entry.getValue();
- if (objVal == null) {
- objVal = "null";
- }
- key = entry.getKey();
- value += "\"" + key + "\":" + objVal.toString() + ",";
- }
- value = value.substring(0, value.length() - 1);
- value += "}";
- break;
- case BOOLEAN:
- Map<String, Boolean> boolMap = new HashMap<String, Boolean>();
- for (Map.Entry<String, String> entry : newMap.entrySet()) {
- objVal = entry.getValue();
- key = entry.getKey();
- if (objVal != null) {
- boolMap.put(key, Boolean.valueOf(objVal.toString()));
- } else {
- boolMap.put(key, null);
- }
- }
- value = gson.toJson(boolMap);
- break;
- default:
- value = gson.toJson(newMap);
- log.debug("inner Tosca Type unknown : {}", innerToscaType);
- }
- } catch (JsonParseException e) {
- log.debug("Failed to parse json : {}", value, e);
- BeEcompErrorManager.getInstance().logBeInvalidJsonInput("Map Converter");
- return Either.right(false);
- }
-
- return Either.left(value);
-
- }
-
- /**
- * convert the json value of map when the inner type is a complex data type
- *
- * @param value
- * @param innerType
- * @param keyConverter
- * @param allDataTypes
- * @return
- */
- private Either<String, Boolean> convertComplexInnerType(String value, String innerType,
- PropertyValueConverter keyConverter, Map<String, DataTypeDefinition> allDataTypes) {
-
- DataTypeDefinition dataTypeDefinition = allDataTypes.get(innerType);
- if (dataTypeDefinition == null) {
- log.debug("Cannot find data type {}", innerType);
- return Either.right(false);
- }
-
- Map<String, JsonElement> newMap = new HashMap<String, JsonElement>();
-
- try {
-
- JsonElement jsonObject = jsonParser.parse(value);
- JsonObject asJsonObject = jsonObject.getAsJsonObject();
- Set<Entry<String, JsonElement>> entrySet = asJsonObject.entrySet();
- for (Entry<String, JsonElement> entry : entrySet) {
- String currentKey = keyConverter.convert(entry.getKey(), null, allDataTypes);
-
- JsonElement currentValue = entry.getValue();
-
- if (currentValue != null) {
-
- String element = JsonUtils.toString(currentValue);
-
- ImmutablePair<JsonElement, Boolean> validateAndUpdate = dataTypeValidatorConverter
- .validateAndUpdate(element, dataTypeDefinition, allDataTypes);
- if (validateAndUpdate.right.booleanValue() == false) {
- log.debug("Cannot parse value {} from type {} of key {}",currentValue,innerType,currentKey);
- return Either.right(false);
- }
- JsonElement newValue = validateAndUpdate.left;
- newMap.put(currentKey, newValue);
- } else {
- newMap.put(currentKey, null);
- }
- }
-
- } catch (Exception e) {
- log.debug("Cannot parse value {} of map from inner type {}", value, innerType);
- return Either.right(false);
- }
-
- value = gson.toJson(newMap);
- return Either.left(value);
- }
+ private static MapConverter mapConverter = new MapConverter();
+ private static Gson gson = GsonFactory.getGson();
+ private static final Logger log = Logger.getLogger(ListValidator.class.getName());
+
+ DataTypeValidatorConverter dataTypeValidatorConverter = DataTypeValidatorConverter.getInstance();
+
+ private static JsonParser jsonParser = new JsonParser();
+
+ public static MapConverter getInstance() {
+ return mapConverter;
+ }
+
+ public String convert(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+
+ Either<String, Boolean> convertWithErrorResult = this.convertWithErrorResult(value, innerType, dataTypes);
+ if (convertWithErrorResult.isRight()) {
+ return null;
+ }
+
+ return convertWithErrorResult.left().value();
+ }
+
+ public Either<String, Boolean> convertWithErrorResult(String value, String innerType,
+ Map<String, DataTypeDefinition> dataTypes) {
+
+ if (value == null || value == "" || innerType == null) {
+ return Either.left(value);
+ }
+
+ PropertyValueConverter innerConverter;
+ PropertyValueConverter keyConverter = ToscaPropertyType.STRING.getConverter();
+ ToscaPropertyType innerToscaType = ToscaPropertyType.isValidType(innerType);
+
+ if (innerToscaType != null) {
+ switch (innerToscaType) {
+ case STRING:
+ innerConverter = ToscaPropertyType.STRING.getConverter();
+ break;
+ case INTEGER:
+ innerConverter = ToscaPropertyType.INTEGER.getConverter();
+ break;
+ case FLOAT:
+ innerConverter = ToscaPropertyType.FLOAT.getConverter();
+ break;
+ case BOOLEAN:
+ innerConverter = ToscaPropertyType.BOOLEAN.getConverter();
+ break;
+ case JSON:
+ innerConverter = ToscaPropertyType.JSON.getConverter();
+ break;
+ default:
+ log.debug("inner Tosca Type is unknown");
+ return Either.left(value);
+ }
+
+ } else {
+
+ log.debug("inner Tosca Type {} ia a complex data type.", innerType);
+
+ return convertComplexInnerType(value, innerType, keyConverter,
+ dataTypes);
+
+ }
+
+ try {
+ Map<String, String> newMap = new HashMap<>();
+
+ JsonElement jsonObject = jsonParser.parse(value);
+ JsonObject asJsonObject = jsonObject.getAsJsonObject();
+ Set<Entry<String, JsonElement>> entrySet = asJsonObject.entrySet();
+ for (Entry<String, JsonElement> entry : entrySet) {
+ String key = entry.getKey();
+ JsonElement jsonValue = entry.getValue();
+
+ key = keyConverter.convert(entry.getKey(), null, dataTypes);
+
+ String element = JsonUtils.toString(jsonValue);
+
+ String val = innerConverter.convert(element, null, dataTypes);
+ newMap.put(key, val);
+ }
+
+ String objVal;
+ switch (innerToscaType) {
+ case STRING:
+ value = gson.toJson(newMap);
+ break;
+ case INTEGER:
+ String key = null;
+ Map<String, Integer> intMap = new HashMap<>();
+ for (Map.Entry<String, String> entry : newMap.entrySet()) {
+ objVal = entry.getValue();
+ key = entry.getKey();
+ if (objVal != null) {
+ intMap.put(key, Integer.valueOf(objVal.toString()));
+ } else {
+ intMap.put(key, null);
+ }
+
+ }
+ value = gson.toJson(intMap);
+ break;
+ case FLOAT:
+ value = "{";
+ for (Map.Entry<String, String> entry : newMap.entrySet()) {
+ objVal = entry.getValue();
+ if (objVal == null) {
+ objVal = "null";
+ }
+ key = entry.getKey();
+ value += "\"" + key + "\":" + objVal.toString() + ",";
+ }
+ value = value.substring(0, value.length() - 1);
+ value += "}";
+ break;
+ case BOOLEAN:
+ Map<String, Boolean> boolMap = new HashMap<>();
+ for (Map.Entry<String, String> entry : newMap.entrySet()) {
+ objVal = entry.getValue();
+ key = entry.getKey();
+ if (objVal != null) {
+ boolMap.put(key, Boolean.valueOf(objVal.toString()));
+ } else {
+ boolMap.put(key, null);
+ }
+ }
+ value = gson.toJson(boolMap);
+ break;
+ default:
+ value = gson.toJson(newMap);
+ log.debug("inner Tosca Type unknown : {}", innerToscaType);
+ }
+ } catch (JsonParseException e) {
+ log.debug("Failed to parse json : {}", value, e);
+ BeEcompErrorManager.getInstance().logBeInvalidJsonInput("Map Converter");
+ return Either.right(false);
+ }
+
+ return Either.left(value);
+
+ }
+
+ /**
+ * convert the json value of map when the inner type is a complex data type
+ *
+ * @param value
+ * @param innerType
+ * @param keyConverter
+ * @param allDataTypes
+ * @return
+ */
+ private Either<String, Boolean> convertComplexInnerType(String value, String innerType,
+ PropertyValueConverter keyConverter, Map<String, DataTypeDefinition> allDataTypes) {
+
+ DataTypeDefinition dataTypeDefinition = allDataTypes.get(innerType);
+ if (dataTypeDefinition == null) {
+ log.debug("Cannot find data type {}", innerType);
+ return Either.right(false);
+ }
+
+ Map<String, JsonElement> newMap = new HashMap<>();
+
+ try {
+
+ JsonElement jsonObject = jsonParser.parse(value);
+ JsonObject asJsonObject = jsonObject.getAsJsonObject();
+ Set<Entry<String, JsonElement>> entrySet = asJsonObject.entrySet();
+ for (Entry<String, JsonElement> entry : entrySet) {
+ String currentKey = keyConverter.convert(entry.getKey(), null, allDataTypes);
+
+ JsonElement currentValue = entry.getValue();
+
+ if (currentValue != null) {
+
+ String element = JsonUtils.toString(currentValue);
+
+ ImmutablePair<JsonElement, Boolean> validateAndUpdate = dataTypeValidatorConverter
+ .validateAndUpdate(element, dataTypeDefinition, allDataTypes);
+ if (!validateAndUpdate.right.booleanValue()) {
+ log.debug("Cannot parse value {} from type {} of key {}",currentValue,innerType,currentKey);
+ return Either.right(false);
+ }
+ JsonElement newValue = validateAndUpdate.left;
+ newMap.put(currentKey, newValue);
+ } else {
+ newMap.put(currentKey, null);
+ }
+ }
+
+ } catch (Exception e) {
+ log.debug("Cannot parse value {} of map from inner type {}", value, innerType);
+ return Either.right(false);
+ }
+
+ value = gson.toJson(newMap);
+ return Either.left(value);
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/PropertyValueConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/PropertyValueConverter.java
index 254785fe8a..b60b0a5ec8 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/PropertyValueConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/PropertyValueConverter.java
@@ -20,12 +20,12 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.Map;
-
import org.openecomp.sdc.be.model.DataTypeDefinition;
+import java.util.Map;
+
public interface PropertyValueConverter {
- String convert(String value, String innerType, Map<String, DataTypeDefinition> dataTypes);
+ String convert(String value, String innerType, Map<String, DataTypeDefinition> dataTypes);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/StringConvertor.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/StringConvertor.java
index f5a7ff632e..ae5340720c 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/StringConvertor.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/StringConvertor.java
@@ -20,36 +20,36 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.Map;
-
import org.openecomp.sdc.be.model.DataTypeDefinition;
import org.openecomp.sdc.common.util.ValidationUtils;
+import java.util.Map;
+
public class StringConvertor implements PropertyValueConverter {
- private static StringConvertor stringConverter = new StringConvertor();
+ private static StringConvertor stringConverter = new StringConvertor();
- public static StringConvertor getInstance() {
- return stringConverter;
- }
+ public static StringConvertor getInstance() {
+ return stringConverter;
+ }
- private StringConvertor() {
+ private StringConvertor() {
- }
+ }
- @Override
- public String convert(String original, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- if (original == null) {
- return null;
- }
- String coverted = ValidationUtils.removeNoneUtf8Chars(original);
+ @Override
+ public String convert(String original, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ if (original == null) {
+ return null;
+ }
+ String coverted = ValidationUtils.removeNoneUtf8Chars(original);
- // coverted = ValidationUtils.convertHtmlTagsToEntities(coverted);
- coverted = ValidationUtils.normaliseWhitespace(coverted);
- coverted = ValidationUtils.stripOctets(coverted);
- coverted = ValidationUtils.removeHtmlTagsOnly(coverted);
+ // coverted = ValidationUtils.convertHtmlTagsToEntities(coverted);
+ coverted = ValidationUtils.normaliseWhitespace(coverted);
+ coverted = ValidationUtils.stripOctets(coverted);
+ coverted = ValidationUtils.removeHtmlTagsOnly(coverted);
- return coverted;
- }
+ return coverted;
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaBooleanConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaBooleanConverter.java
index 977415b909..346f637306 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaBooleanConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaBooleanConverter.java
@@ -20,35 +20,35 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.Map;
-
import org.openecomp.sdc.be.model.DataTypeDefinition;
+import java.util.Map;
+
public class ToscaBooleanConverter implements PropertyValueConverter {
- private static ToscaBooleanConverter booleanConverter = new ToscaBooleanConverter();
+ private static ToscaBooleanConverter booleanConverter = new ToscaBooleanConverter();
- public static ToscaBooleanConverter getInstance() {
- return booleanConverter;
- }
+ public static ToscaBooleanConverter getInstance() {
+ return booleanConverter;
+ }
- private ToscaBooleanConverter() {
+ private ToscaBooleanConverter() {
- }
+ }
- @Override
- public String convert(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ @Override
+ public String convert(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- if (value == null) {
- return null;
- }
+ if (value == null) {
+ return null;
+ }
- if (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("on") || value.equalsIgnoreCase("yes")
- || value.equalsIgnoreCase("y")) {
- return "true";
- } else {
- return "false";
- }
- }
+ if (value.equalsIgnoreCase("true") || value.equalsIgnoreCase("on") || value.equalsIgnoreCase("yes")
+ || value.equalsIgnoreCase("y")) {
+ return "true";
+ } else {
+ return "false";
+ }
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaConverterUtils.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaConverterUtils.java
index 4aadaa0910..941535a09d 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaConverterUtils.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaConverterUtils.java
@@ -1,8 +1,7 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import org.openecomp.sdc.be.model.tosca.ToscaFunctions;
-
import com.google.gson.JsonObject;
+import org.openecomp.sdc.be.model.tosca.ToscaFunctions;
public class ToscaConverterUtils {
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaFloatConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaFloatConverter.java
index ba765c92a0..417beea5fe 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaFloatConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaFloatConverter.java
@@ -20,12 +20,12 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.math.BigDecimal;
-import java.util.Map;
-
import org.apache.commons.lang.StringUtils;
import org.openecomp.sdc.be.model.DataTypeDefinition;
+import java.math.BigDecimal;
+import java.util.Map;
+
public class ToscaFloatConverter implements PropertyValueConverter {
private static ToscaFloatConverter numberConverter = new ToscaFloatConverter();
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaJsonValueConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaJsonValueConverter.java
index d70088e044..0ce446d3c4 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaJsonValueConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaJsonValueConverter.java
@@ -20,37 +20,36 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.io.StringReader;
-import java.util.Map;
-
-import org.openecomp.sdc.be.model.DataTypeDefinition;
-
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import com.google.gson.stream.JsonReader;
+import org.openecomp.sdc.be.model.DataTypeDefinition;
+
+import java.io.StringReader;
+import java.util.Map;
public class ToscaJsonValueConverter extends ToscaValueBaseConverter implements ToscaValueConverter {
- private static ToscaJsonValueConverter toscaJsonConverter = new ToscaJsonValueConverter();
+ private static ToscaJsonValueConverter toscaJsonConverter = new ToscaJsonValueConverter();
- public static ToscaJsonValueConverter getInstance() {
- return toscaJsonConverter;
- }
+ public static ToscaJsonValueConverter getInstance() {
+ return toscaJsonConverter;
+ }
- private ToscaJsonValueConverter() {
+ private ToscaJsonValueConverter() {
- }
+ }
- JsonParser jsonParser = new JsonParser();
+ JsonParser jsonParser = new JsonParser();
- @Override
- public Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- StringReader reader = new StringReader(value);
- JsonReader jsonReader = new JsonReader(reader);
- jsonReader.setLenient(true);
- JsonElement jsonElement = jsonParser.parse(jsonReader);
- if (jsonElement.isJsonPrimitive()) {
- return value;
- }
- return handleComplexJsonValue(jsonElement);
- }
+ @Override
+ public Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ StringReader reader = new StringReader(value);
+ JsonReader jsonReader = new JsonReader(reader);
+ jsonReader.setLenient(true);
+ JsonElement jsonElement = jsonParser.parse(jsonReader);
+ if (jsonElement.isJsonPrimitive()) {
+ return value;
+ }
+ return handleComplexJsonValue(jsonElement);
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaListValueConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaListValueConverter.java
index f3189ee968..8eb4c1099b 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaListValueConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaListValueConverter.java
@@ -20,6 +20,14 @@
package org.openecomp.sdc.be.model.tosca.converters;
+import com.google.gson.*;
+import com.google.gson.stream.JsonReader;
+import org.openecomp.sdc.be.config.BeEcompErrorManager;
+import org.openecomp.sdc.be.model.DataTypeDefinition;
+import org.openecomp.sdc.be.model.PropertyDefinition;
+import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
+import org.openecomp.sdc.common.log.wrappers.Logger;
+
import java.io.StringReader;
import java.util.ArrayList;
import java.util.HashMap;
@@ -27,151 +35,136 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
-import org.openecomp.sdc.be.config.BeEcompErrorManager;
-import org.openecomp.sdc.be.model.DataTypeDefinition;
-import org.openecomp.sdc.be.model.PropertyDefinition;
-import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParseException;
-import com.google.gson.JsonParser;
-import com.google.gson.JsonSyntaxException;
-import com.google.gson.stream.JsonReader;
-
public class ToscaListValueConverter extends ToscaValueBaseConverter implements ToscaValueConverter {
- private static ToscaListValueConverter listConverter = new ToscaListValueConverter();
- private JsonParser jsonParser = new JsonParser();
- private static Logger log = LoggerFactory.getLogger(ToscaListValueConverter.class.getName());
-
- public static ToscaListValueConverter getInstance() {
- return listConverter;
- }
-
- private ToscaListValueConverter() {
-
- }
-
- @Override
- public Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- if (value == null) {
- return null;
- }
- try {
- ToscaPropertyType innerToscaType = ToscaPropertyType.isValidType(innerType);
- ToscaValueConverter innerConverter = null;
- boolean isScalar = true;
- if (innerToscaType != null) {
- innerConverter = innerToscaType.getValueConverter();
- } else {
- DataTypeDefinition dataTypeDefinition = dataTypes.get(innerType);
-
- if (dataTypeDefinition != null) {
- ToscaPropertyType toscaPropertyType = null;
- if ((toscaPropertyType = isScalarType(dataTypeDefinition)) != null) {
- innerConverter = toscaPropertyType.getValueConverter();
- } else {
- isScalar = false;
- innerConverter = ToscaMapValueConverter.getInstance();
- }
- } else {
- log.debug("inner Tosca Type is null");
- return value;
- }
- }
- JsonElement jsonElement = null;
- try {
- StringReader reader = new StringReader(value);
- JsonReader jsonReader = new JsonReader(reader);
- jsonReader.setLenient(true);
-
- jsonElement = jsonParser.parse(jsonReader);
- } catch (JsonSyntaxException e) {
- log.debug("convertToToscaValue failed to parse json value :", e);
- return null;
- }
- if (jsonElement == null || true == jsonElement.isJsonNull()) {
- log.debug("convertToToscaValue json element is null");
- return null;
- }
- if (jsonElement.isJsonArray() == false) {
- // get_input all array like get_input: qrouter_names
- return handleComplexJsonValue(jsonElement);
- }
- JsonArray asJsonArray = jsonElement.getAsJsonArray();
-
- ArrayList<Object> toscaList = new ArrayList<Object>();
- final boolean isScalarF = isScalar;
- final ToscaValueConverter innerConverterFinal = innerConverter;
- asJsonArray.forEach(e -> {
- Object convertedValue = null;
- if (isScalarF) {
- if (e.isJsonPrimitive()) {
- String jsonAsString = e.getAsString();
- log.debug("try to convert scalar value {}", jsonAsString);
- convertedValue = innerConverterFinal.convertToToscaValue(jsonAsString, innerType,
- dataTypes);
- } else {
- convertedValue = handleComplexJsonValue(e);
- }
-
- } else {
- JsonObject asJsonObject = e.getAsJsonObject();
- Set<Entry<String, JsonElement>> entrySet = asJsonObject.entrySet();
-
- DataTypeDefinition dataTypeDefinition = dataTypes.get(innerType);
- Map<String, PropertyDefinition> allProperties = getAllProperties(dataTypeDefinition);
- Map<String, Object> toscaObjectPresentation = new HashMap<>();
-
- for (Entry<String, JsonElement> entry : entrySet) {
- String propName = entry.getKey();
-
- JsonElement elementValue = entry.getValue();
- PropertyDefinition propertyDefinition = allProperties.get(propName);
- if (propertyDefinition == null) {
- log.debug("The property {} was not found under data type {}",propName,dataTypeDefinition.getName());
- continue;
- // return null;
- }
- String type = propertyDefinition.getType();
- ToscaPropertyType propertyType = ToscaPropertyType.isValidType(type);
- Object convValue;
- if (propertyType != null) {
- if (elementValue.isJsonPrimitive()) {
- ToscaValueConverter valueConverter = propertyType.getValueConverter();
- convValue = valueConverter.convertToToscaValue(elementValue.getAsString(), type,
- dataTypes);
- } else {
- if (ToscaPropertyType.MAP.equals(type) || ToscaPropertyType.LIST.equals(propertyType)) {
- ToscaValueConverter valueConverter = propertyType.getValueConverter();
- String json = gson.toJson(elementValue);
- String innerTypeRecursive = propertyDefinition.getSchema().getProperty().getType();
- convValue = valueConverter.convertToToscaValue(json, innerTypeRecursive, dataTypes);
- } else {
- convValue = handleComplexJsonValue(elementValue);
- }
- }
- } else {
- String json = gson.toJson(elementValue);
- convValue = convertToToscaValue(json, type, dataTypes);
- }
- toscaObjectPresentation.put(propName, convValue);
- }
- convertedValue = toscaObjectPresentation;
- }
- toscaList.add(convertedValue);
- });
- return toscaList;
- } catch (
-
- JsonParseException e) {
- log.debug("Failed to parse json : {}", value, e);
- BeEcompErrorManager.getInstance().logBeInvalidJsonInput("List Converter");
- return null;
- }
- }
+ private static ToscaListValueConverter listConverter = new ToscaListValueConverter();
+ private JsonParser jsonParser = new JsonParser();
+ private static final Logger log = Logger.getLogger(ToscaListValueConverter.class.getName());
+
+ public static ToscaListValueConverter getInstance() {
+ return listConverter;
+ }
+
+ private ToscaListValueConverter() {
+
+ }
+
+ @Override
+ public Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ if (value == null) {
+ return null;
+ }
+ try {
+ ToscaPropertyType innerToscaType = ToscaPropertyType.isValidType(innerType);
+ ToscaValueConverter innerConverter = null;
+ boolean isScalar = true;
+ if (innerToscaType != null) {
+ innerConverter = innerToscaType.getValueConverter();
+ } else {
+ DataTypeDefinition dataTypeDefinition = dataTypes.get(innerType);
+
+ if (dataTypeDefinition != null) {
+ ToscaPropertyType toscaPropertyType = null;
+ if ((toscaPropertyType = isScalarType(dataTypeDefinition)) != null) {
+ innerConverter = toscaPropertyType.getValueConverter();
+ } else {
+ isScalar = false;
+ innerConverter = ToscaMapValueConverter.getInstance();
+ }
+ } else {
+ log.debug("inner Tosca Type is null");
+ return value;
+ }
+ }
+ JsonElement jsonElement = null;
+ try {
+ StringReader reader = new StringReader(value);
+ JsonReader jsonReader = new JsonReader(reader);
+ jsonReader.setLenient(true);
+
+ jsonElement = jsonParser.parse(jsonReader);
+ } catch (JsonSyntaxException e) {
+ log.debug("convertToToscaValue failed to parse json value :", e);
+ return null;
+ }
+ if (jsonElement == null || jsonElement.isJsonNull()) {
+ log.debug("convertToToscaValue json element is null");
+ return null;
+ }
+ if (!jsonElement.isJsonArray()) {
+ // get_input all array like get_input: qrouter_names
+ return handleComplexJsonValue(jsonElement);
+ }
+ JsonArray asJsonArray = jsonElement.getAsJsonArray();
+
+ ArrayList<Object> toscaList = new ArrayList<>();
+ final boolean isScalarF = isScalar;
+ final ToscaValueConverter innerConverterFinal = innerConverter;
+ asJsonArray.forEach(e -> {
+ Object convertedValue = null;
+ if (isScalarF) {
+ if (e.isJsonPrimitive()) {
+ String jsonAsString = e.getAsString();
+ log.debug("try to convert scalar value {}", jsonAsString);
+ convertedValue = innerConverterFinal.convertToToscaValue(jsonAsString, innerType,
+ dataTypes);
+ } else {
+ convertedValue = handleComplexJsonValue(e);
+ }
+
+ } else {
+ JsonObject asJsonObject = e.getAsJsonObject();
+ Set<Entry<String, JsonElement>> entrySet = asJsonObject.entrySet();
+
+ DataTypeDefinition dataTypeDefinition = dataTypes.get(innerType);
+ Map<String, PropertyDefinition> allProperties = getAllProperties(dataTypeDefinition);
+ Map<String, Object> toscaObjectPresentation = new HashMap<>();
+
+ for (Entry<String, JsonElement> entry : entrySet) {
+ String propName = entry.getKey();
+
+ JsonElement elementValue = entry.getValue();
+ PropertyDefinition propertyDefinition = allProperties.get(propName);
+ if (propertyDefinition == null) {
+ log.debug("The property {} was not found under data type {}",propName,dataTypeDefinition.getName());
+ continue;
+ // return null;
+ }
+ String type = propertyDefinition.getType();
+ ToscaPropertyType propertyType = ToscaPropertyType.isValidType(type);
+ Object convValue;
+ if (propertyType != null) {
+ if (elementValue.isJsonPrimitive()) {
+ ToscaValueConverter valueConverter = propertyType.getValueConverter();
+ convValue = valueConverter.convertToToscaValue(elementValue.getAsString(), type,
+ dataTypes);
+ } else {
+ if (ToscaPropertyType.MAP.equals(type) || ToscaPropertyType.LIST.equals(propertyType)) {
+ ToscaValueConverter valueConverter = propertyType.getValueConverter();
+ String json = gson.toJson(elementValue);
+ String innerTypeRecursive = propertyDefinition.getSchema().getProperty().getType();
+ convValue = valueConverter.convertToToscaValue(json, innerTypeRecursive, dataTypes);
+ } else {
+ convValue = handleComplexJsonValue(elementValue);
+ }
+ }
+ } else {
+ String json = gson.toJson(elementValue);
+ convValue = convertToToscaValue(json, type, dataTypes);
+ }
+ toscaObjectPresentation.put(propName, convValue);
+ }
+ convertedValue = toscaObjectPresentation;
+ }
+ toscaList.add(convertedValue);
+ });
+ return toscaList;
+ } catch (
+
+ JsonParseException e) {
+ log.debug("Failed to parse json : {}", value, e);
+ BeEcompErrorManager.getInstance().logBeInvalidJsonInput("List Converter");
+ return null;
+ }
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaMapValueConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaMapValueConverter.java
index 5b565bf62a..04636d87e0 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaMapValueConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaMapValueConverter.java
@@ -20,233 +20,222 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.io.StringReader;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
+import com.google.gson.*;
+import com.google.gson.stream.JsonReader;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
import org.openecomp.sdc.be.model.DataTypeDefinition;
import org.openecomp.sdc.be.model.PropertyDefinition;
import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonParseException;
-import com.google.gson.JsonParser;
-import com.google.gson.JsonSyntaxException;
-import com.google.gson.stream.JsonReader;
+import org.openecomp.sdc.common.log.wrappers.Logger;
+
+import java.io.StringReader;
+import java.util.*;
+import java.util.Map.Entry;
public class ToscaMapValueConverter extends ToscaValueBaseConverter implements ToscaValueConverter {
- private static ToscaMapValueConverter mapConverter = new ToscaMapValueConverter();
-
- private JsonParser jsonParser = new JsonParser();
- private static Logger log = LoggerFactory.getLogger(ToscaMapValueConverter.class.getName());
-
- public static ToscaMapValueConverter getInstance() {
- return mapConverter;
- }
-
- private ToscaMapValueConverter() {
-
- }
-
- @Override
- public Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- if (value == null) {
- return value;
- }
- try {
- ToscaPropertyType innerToscaType = ToscaPropertyType.isValidType(innerType);
- ToscaValueConverter innerConverter = null;
- boolean isScalar = true;
- List<PropertyDefinition> allPropertiesRecursive = new ArrayList<>();
- if (innerToscaType != null) {
- innerConverter = innerToscaType.getValueConverter();
- } else {
-
- DataTypeDefinition dataTypeDefinition = dataTypes.get(innerType);
- if (dataTypeDefinition != null) {
- ToscaPropertyType toscaPropertyType = null;
- if ((toscaPropertyType = isScalarType(dataTypeDefinition)) != null) {
- innerConverter = toscaPropertyType.getValueConverter();
- } else {
- isScalar = false;
- allPropertiesRecursive.addAll(dataTypeDefinition.getProperties());
- DataTypeDefinition derivedFrom = dataTypeDefinition.getDerivedFrom();
- while ( !derivedFrom.getName().equals("tosca.datatypes.Root") ){
- allPropertiesRecursive.addAll(derivedFrom.getProperties());
- derivedFrom = derivedFrom.getDerivedFrom();
- }
- }
- } else {
- log.debug("inner Tosca Type is null");
- return value;
- }
-
- }
- JsonElement jsonElement = null;
- try {
- StringReader reader = new StringReader(value);
- JsonReader jsonReader = new JsonReader(reader);
- jsonReader.setLenient(true);
-
- jsonElement = jsonParser.parse(jsonReader);
-
- } catch (JsonSyntaxException e) {
- log.debug("convertToToscaValue failed to parse json value :", e);
- return null;
- }
- if (jsonElement == null || true == jsonElement.isJsonNull()) {
- log.debug("convertToToscaValue json element is null");
- return null;
- }
- JsonObject asJsonObject = jsonElement.getAsJsonObject();
- Set<Entry<String, JsonElement>> entrySet = asJsonObject.entrySet();
-
- Map<String, Object> toscaMap = new HashMap<>();
- final boolean isScalarF = isScalar;
- final ToscaValueConverter innerConverterFinal = innerConverter;
- entrySet.forEach(e -> {
- convertEntry(innerType, dataTypes, allPropertiesRecursive, toscaMap, isScalarF, innerConverterFinal, e);
- });
- return toscaMap;
- } catch (JsonParseException e) {
- log.debug("Failed to parse json : {}", value, e);
- BeEcompErrorManager.getInstance().logBeInvalidJsonInput("List Converter");
- return null;
- }
- }
-
- private void convertEntry(String innerType, Map<String, DataTypeDefinition> dataTypes, List<PropertyDefinition> allPropertiesRecursive, Map<String, Object> toscaMap, final boolean isScalarF, final ToscaValueConverter innerConverterFinal,
- Entry<String, JsonElement> e) {
- log.debug("try convert element {}", e.getValue());
- boolean scalar = false;
- String propType = null;
- ToscaValueConverter innerConverterProp = innerConverterFinal;
- if ( isScalarF ){
- scalar = isScalarF;
- propType = innerType;
- }else{
- for ( PropertyDefinition pd : allPropertiesRecursive ){
- if ( pd.getName().equals(e.getKey()) ){
- propType = pd.getType();
- DataTypeDefinition pdDataType = dataTypes.get(propType);
- ToscaPropertyType toscaPropType = isScalarType(pdDataType);
- if ( toscaPropType == null ){
- scalar = false;
- }else{
- scalar = true;
- propType = toscaPropType.getType();
- innerConverterProp = toscaPropType.getValueConverter();
- }
- break;
- }
- }
- }
- Object convertedValue = convertDataTypeToToscaObject(propType, dataTypes, innerConverterProp, scalar, e.getValue());
- toscaMap.put(e.getKey(), convertedValue);
- }
-
- public Object convertDataTypeToToscaObject(String innerType, Map<String, DataTypeDefinition> dataTypes, ToscaValueConverter innerConverter, final boolean isScalarF, JsonElement entryValue) {
- Object convertedValue = null;
- if (isScalarF && entryValue.isJsonPrimitive()) {
- log.debug("try convert scalar value {}", entryValue.getAsString());
- if (entryValue.getAsString() == null) {
- convertedValue = null;
- } else {
- convertedValue = innerConverter.convertToToscaValue(entryValue.getAsString(), innerType, dataTypes);
- }
- } else {
- if ( entryValue.isJsonPrimitive() ){
- return handleComplexJsonValue(entryValue);
- }
-
- // ticket 228696523 created / DE272734 / Bug 154492 Fix
- if(entryValue instanceof JsonArray) {
- ArrayList<Object> toscaObjectPresentationArray = new ArrayList<>();
- JsonArray jsonArray = entryValue.getAsJsonArray();
-
- for (JsonElement jsonElement : jsonArray) {
- Object convertedDataTypeToToscaMap = convertDataTypeToToscaMap(innerType, dataTypes, isScalarF, jsonElement);
- toscaObjectPresentationArray.add(convertedDataTypeToToscaMap);
- }
- convertedValue = toscaObjectPresentationArray;
- } else {
- convertedValue = convertDataTypeToToscaMap(innerType, dataTypes, isScalarF, entryValue);
- }
- }
- return convertedValue;
- }
-
- private Object convertDataTypeToToscaMap(String innerType, Map<String, DataTypeDefinition> dataTypes,
- final boolean isScalarF, JsonElement entryValue) {
- Object convertedValue;
- if (entryValue.isJsonPrimitive()) {
- return json2JavaPrimitive(entryValue.getAsJsonPrimitive());
- }
- JsonObject asJsonObjectIn = entryValue.getAsJsonObject();
-
- DataTypePropertyConverter.getInstance().mergeDataTypeDefaultValuesWithPropertyValue(asJsonObjectIn, innerType, dataTypes);
- Map<String, Object> toscaObjectPresentation = new HashMap<>();
- Set<Entry<String, JsonElement>> entrySetIn = asJsonObjectIn.entrySet();
-
- for (Entry<String, JsonElement> entry : entrySetIn) {
- String propName = entry.getKey();
-
- JsonElement elementValue = entry.getValue();
- Object convValue;
- if (isScalarF == false) {
- DataTypeDefinition dataTypeDefinition = dataTypes.get(innerType);
- Map<String, PropertyDefinition> allProperties = getAllProperties(dataTypeDefinition);
- PropertyDefinition propertyDefinition = allProperties.get(propName);
- if (propertyDefinition == null) {
- log.trace("The property {} was not found under data type . Parse as map", propName);
- if (elementValue.isJsonPrimitive()) {
- convValue = elementValue.getAsString();
- } else {
- convValue = handleComplexJsonValue(elementValue);
- }
- } else {
- String type = propertyDefinition.getType();
- ToscaPropertyType propertyType = ToscaPropertyType.isValidType(type);
- if (propertyType != null) {
- if (elementValue.isJsonPrimitive()) {
- ToscaValueConverter valueConverter = propertyType.getValueConverter();
- convValue = valueConverter.convertToToscaValue(elementValue.getAsString(), type, dataTypes);
- } else {
- if (ToscaPropertyType.MAP.equals(type) || ToscaPropertyType.LIST.equals(propertyType)) {
- ToscaValueConverter valueConverter = propertyType.getValueConverter();
- String json = gson.toJson(elementValue);
- String innerTypeRecursive = propertyDefinition.getSchema().getProperty().getType();
- convValue = valueConverter.convertToToscaValue(json, innerTypeRecursive, dataTypes);
- } else {
- convValue = handleComplexJsonValue(elementValue);
- }
- }
- } else {
- convValue = convertToToscaValue(elementValue.toString(), type, dataTypes);
- }
- }
- } else {
- if (elementValue.isJsonPrimitive()) {
- convValue = json2JavaPrimitive(elementValue.getAsJsonPrimitive());
- } else {
- convValue = handleComplexJsonValue(elementValue);
- }
- }
- if(!isEmptyObjectValue(convValue)){
- toscaObjectPresentation.put(propName, convValue);
- }
- }
- convertedValue = toscaObjectPresentation;
- return convertedValue;
- }
+ private static ToscaMapValueConverter mapConverter = new ToscaMapValueConverter();
+
+ private JsonParser jsonParser = new JsonParser();
+ private static final Logger log = Logger.getLogger(ToscaMapValueConverter.class.getName());
+
+ public static ToscaMapValueConverter getInstance() {
+ return mapConverter;
+ }
+
+ private ToscaMapValueConverter() {
+
+ }
+
+ @Override
+ public Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ if (value == null) {
+ return value;
+ }
+ try {
+ ToscaPropertyType innerToscaType = ToscaPropertyType.isValidType(innerType);
+ ToscaValueConverter innerConverter = null;
+ boolean isScalar = true;
+ List<PropertyDefinition> allPropertiesRecursive = new ArrayList<>();
+ if (innerToscaType != null) {
+ innerConverter = innerToscaType.getValueConverter();
+ } else {
+
+ DataTypeDefinition dataTypeDefinition = dataTypes.get(innerType);
+ if (dataTypeDefinition != null) {
+ ToscaPropertyType toscaPropertyType = null;
+ if ((toscaPropertyType = isScalarType(dataTypeDefinition)) != null) {
+ innerConverter = toscaPropertyType.getValueConverter();
+ } else {
+ isScalar = false;
+ allPropertiesRecursive.addAll(dataTypeDefinition.getProperties());
+ DataTypeDefinition derivedFrom = dataTypeDefinition.getDerivedFrom();
+ while ( !derivedFrom.getName().equals("tosca.datatypes.Root") ){
+ allPropertiesRecursive.addAll(derivedFrom.getProperties());
+ derivedFrom = derivedFrom.getDerivedFrom();
+ }
+ }
+ } else {
+ log.debug("inner Tosca Type is null");
+ return value;
+ }
+
+ }
+ JsonElement jsonElement = null;
+ try {
+ StringReader reader = new StringReader(value);
+ JsonReader jsonReader = new JsonReader(reader);
+ jsonReader.setLenient(true);
+
+ jsonElement = jsonParser.parse(jsonReader);
+
+ } catch (JsonSyntaxException e) {
+ log.debug("convertToToscaValue failed to parse json value :", e);
+ return null;
+ }
+ if (jsonElement == null || jsonElement.isJsonNull()) {
+ log.debug("convertToToscaValue json element is null");
+ return null;
+ }
+ JsonObject asJsonObject = jsonElement.getAsJsonObject();
+ Set<Entry<String, JsonElement>> entrySet = asJsonObject.entrySet();
+
+ Map<String, Object> toscaMap = new HashMap<>();
+ final boolean isScalarF = isScalar;
+ final ToscaValueConverter innerConverterFinal = innerConverter;
+ entrySet.forEach(e -> {
+ convertEntry(innerType, dataTypes, allPropertiesRecursive, toscaMap, isScalarF, innerConverterFinal, e);
+ });
+ return toscaMap;
+ } catch (JsonParseException e) {
+ log.debug("Failed to parse json : {}", value, e);
+ BeEcompErrorManager.getInstance().logBeInvalidJsonInput("List Converter");
+ return null;
+ }
+ }
+
+ private void convertEntry(String innerType, Map<String, DataTypeDefinition> dataTypes, List<PropertyDefinition> allPropertiesRecursive, Map<String, Object> toscaMap, final boolean isScalarF, final ToscaValueConverter innerConverterFinal,
+ Entry<String, JsonElement> e) {
+ log.debug("try convert element {}", e.getValue());
+ boolean scalar = false;
+ String propType = null;
+ ToscaValueConverter innerConverterProp = innerConverterFinal;
+ if ( isScalarF ){
+ scalar = isScalarF;
+ propType = innerType;
+ }else{
+ for ( PropertyDefinition pd : allPropertiesRecursive ){
+ if ( pd.getName().equals(e.getKey()) ){
+ propType = pd.getType();
+ DataTypeDefinition pdDataType = dataTypes.get(propType);
+ ToscaPropertyType toscaPropType = isScalarType(pdDataType);
+ if ( toscaPropType == null ){
+ scalar = false;
+ }else{
+ scalar = true;
+ propType = toscaPropType.getType();
+ innerConverterProp = toscaPropType.getValueConverter();
+ }
+ break;
+ }
+ }
+ }
+ Object convertedValue = convertDataTypeToToscaObject(propType, dataTypes, innerConverterProp, scalar, e.getValue(), false);
+ toscaMap.put(e.getKey(), convertedValue);
+ }
+
+ public Object convertDataTypeToToscaObject(String innerType, Map<String, DataTypeDefinition> dataTypes, ToscaValueConverter innerConverter, final boolean isScalarF, JsonElement entryValue, boolean preserveEmptyValue) {
+ Object convertedValue = null;
+ if (isScalarF && entryValue.isJsonPrimitive()) {
+ log.debug("try convert scalar value {}", entryValue.getAsString());
+ if (entryValue.getAsString() == null) {
+ convertedValue = null;
+ } else {
+ convertedValue = innerConverter.convertToToscaValue(entryValue.getAsString(), innerType, dataTypes);
+ }
+ } else {
+ if ( entryValue.isJsonPrimitive() ){
+ return handleComplexJsonValue(entryValue);
+ }
+
+ // ticket 228696523 created / DE272734 / Bug 154492 Fix
+ if(entryValue instanceof JsonArray) {
+ ArrayList<Object> toscaObjectPresentationArray = new ArrayList<>();
+ JsonArray jsonArray = entryValue.getAsJsonArray();
+
+ for (JsonElement jsonElement : jsonArray) {
+ Object convertedDataTypeToToscaMap = convertDataTypeToToscaMap(innerType, dataTypes, isScalarF, jsonElement, preserveEmptyValue);
+ toscaObjectPresentationArray.add(convertedDataTypeToToscaMap);
+ }
+ convertedValue = toscaObjectPresentationArray;
+ } else {
+ convertedValue = convertDataTypeToToscaMap(innerType, dataTypes, isScalarF, entryValue, preserveEmptyValue);
+ }
+ }
+ return convertedValue;
+ }
+
+ private Object convertDataTypeToToscaMap(String innerType, Map<String, DataTypeDefinition> dataTypes,
+ final boolean isScalarF, JsonElement entryValue, boolean preserveEmptyValue) {
+ Object convertedValue;
+ if (entryValue.isJsonPrimitive()) {
+ return json2JavaPrimitive(entryValue.getAsJsonPrimitive());
+ }
+ JsonObject asJsonObjectIn = entryValue.getAsJsonObject();
+
+ DataTypePropertyConverter.getInstance().mergeDataTypeDefaultValuesWithPropertyValue(asJsonObjectIn, innerType, dataTypes);
+ Map<String, Object> toscaObjectPresentation = new HashMap<>();
+ Set<Entry<String, JsonElement>> entrySetIn = asJsonObjectIn.entrySet();
+
+ for (Entry<String, JsonElement> entry : entrySetIn) {
+ String propName = entry.getKey();
+
+ JsonElement elementValue = entry.getValue();
+ Object convValue;
+ if (!isScalarF) {
+ DataTypeDefinition dataTypeDefinition = dataTypes.get(innerType);
+ Map<String, PropertyDefinition> allProperties = getAllProperties(dataTypeDefinition);
+ PropertyDefinition propertyDefinition = allProperties.get(propName);
+ if (propertyDefinition == null) {
+ log.trace("The property {} was not found under data type . Parse as map", propName);
+ if (elementValue.isJsonPrimitive()) {
+ convValue = elementValue.getAsString();
+ } else {
+ convValue = handleComplexJsonValue(elementValue);
+ }
+ } else {
+ String type = propertyDefinition.getType();
+ ToscaPropertyType propertyType = ToscaPropertyType.isValidType(type);
+ if (propertyType != null) {
+ if (elementValue.isJsonPrimitive()) {
+ ToscaValueConverter valueConverter = propertyType.getValueConverter();
+ convValue = valueConverter.convertToToscaValue(elementValue.getAsString(), type, dataTypes);
+ } else {
+ if (ToscaPropertyType.MAP.equals(type) || ToscaPropertyType.LIST.equals(propertyType)) {
+ ToscaValueConverter valueConverter = propertyType.getValueConverter();
+ String json = gson.toJson(elementValue);
+ String innerTypeRecursive = propertyDefinition.getSchema().getProperty().getType();
+ convValue = valueConverter.convertToToscaValue(json, innerTypeRecursive, dataTypes);
+ } else {
+ convValue = handleComplexJsonValue(elementValue);
+ }
+ }
+ } else {
+ convValue = convertToToscaValue(elementValue.toString(), type, dataTypes);
+ }
+ }
+ } else {
+ if (elementValue.isJsonPrimitive()) {
+ convValue = json2JavaPrimitive(elementValue.getAsJsonPrimitive());
+ } else {
+ convValue = handleComplexJsonValue(elementValue);
+ }
+ }
+ if(preserveEmptyValue || !isEmptyObjectValue(convValue)){
+ toscaObjectPresentation.put(propName, convValue);
+ }
+ }
+ convertedValue = toscaObjectPresentation;
+ return convertedValue;
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaStringConvertor.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaStringConvertor.java
index e228d256c2..01cf47a124 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaStringConvertor.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaStringConvertor.java
@@ -20,24 +20,24 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.Map;
-
import org.openecomp.sdc.be.model.DataTypeDefinition;
+import java.util.Map;
+
public class ToscaStringConvertor implements ToscaValueConverter {
- private static ToscaStringConvertor stringConverter = new ToscaStringConvertor();
+ private static ToscaStringConvertor stringConverter = new ToscaStringConvertor();
- public static ToscaStringConvertor getInstance() {
- return stringConverter;
- }
+ public static ToscaStringConvertor getInstance() {
+ return stringConverter;
+ }
- private ToscaStringConvertor() {
+ private ToscaStringConvertor() {
- }
+ }
- @Override
- public Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- return value;
- }
+ @Override
+ public Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ return value;
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueBaseConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueBaseConverter.java
index 7e2f8766ba..e57650b8a6 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueBaseConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueBaseConverter.java
@@ -20,158 +20,147 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
+import com.google.gson.*;
import org.openecomp.sdc.be.model.DataTypeDefinition;
import org.openecomp.sdc.be.model.PropertyDefinition;
import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.openecomp.sdc.common.log.wrappers.Logger;
-import com.google.gson.Gson;
-import com.google.gson.JsonArray;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonObject;
-import com.google.gson.JsonPrimitive;
+import java.util.*;
+import java.util.Map.Entry;
public class ToscaValueBaseConverter {
- protected Gson gson = new Gson();
- private static Logger log = LoggerFactory.getLogger(ToscaValueBaseConverter.class.getName());
-
- protected Map<String, PropertyDefinition> getAllProperties(DataTypeDefinition dataTypeDefinition) {
-
- Map<String, PropertyDefinition> allParentsProps = new HashMap<>();
-
- while (dataTypeDefinition != null) {
-
- List<PropertyDefinition> currentParentsProps = dataTypeDefinition.getProperties();
- if (currentParentsProps != null) {
- currentParentsProps.stream().forEach(p -> allParentsProps.put(p.getName(), p));
- }
-
- dataTypeDefinition = dataTypeDefinition.getDerivedFrom();
- }
-
- return allParentsProps;
- }
-
- public ToscaPropertyType isScalarType(DataTypeDefinition dataTypeDef) {
-
- ToscaPropertyType result = null;
-
- DataTypeDefinition dataType = dataTypeDef;
-
- while (dataType != null) {
-
- String name = dataType.getName();
- ToscaPropertyType typeIfScalar = ToscaPropertyType.getTypeIfScalar(name);
- if (typeIfScalar != null) {
- result = typeIfScalar;
- break;
- }
-
- dataType = dataType.getDerivedFrom();
- }
-
- return result;
- }
-
- public Object handleComplexJsonValue(JsonElement elementValue) {
- Object jsonValue = null;
-
- Map<String, Object> value = new HashMap<String, Object>();
- if (elementValue.isJsonObject()) {
- JsonObject jsonOb = elementValue.getAsJsonObject();
- Set<Entry<String, JsonElement>> entrySet = jsonOb.entrySet();
- Iterator<Entry<String, JsonElement>> iteratorEntry = entrySet.iterator();
- while (iteratorEntry.hasNext()) {
- Entry<String, JsonElement> entry = iteratorEntry.next();
- if (entry.getValue().isJsonArray()) {
- List<Object> array = handleJsonArray(entry.getValue());
- value.put(entry.getKey(), array);
- } else {
- Object object;
- if (entry.getValue().isJsonPrimitive()) {
- object = json2JavaPrimitive(entry.getValue().getAsJsonPrimitive());
- } else {
- object = handleComplexJsonValue(entry.getValue());
- }
- value.put(entry.getKey(), object);
- }
- }
- jsonValue = value;
- } else {
- if (elementValue.isJsonArray()) {
- jsonValue = handleJsonArray(elementValue);
- } else {
- if (elementValue.isJsonPrimitive()) {
- jsonValue = json2JavaPrimitive(elementValue.getAsJsonPrimitive());
- } else {
- log.debug("not supported json type {} ", elementValue);
- }
- }
- }
-
- return jsonValue;
- }
-
- private List<Object> handleJsonArray(JsonElement entry) {
- List<Object> array = new ArrayList<>();
- JsonArray jsonArray = entry.getAsJsonArray();
- Iterator<JsonElement> iterator = jsonArray.iterator();
- while (iterator.hasNext()) {
- Object object;
- JsonElement element = iterator.next();
- if (element.isJsonPrimitive()) {
- object = json2JavaPrimitive(element.getAsJsonPrimitive());
- } else {
- object = handleComplexJsonValue(element);
- }
- array.add(object);
- }
- return array;
- }
-
- public Object json2JavaPrimitive(JsonPrimitive prim) {
- if (prim.isBoolean()) {
- return prim.getAsBoolean();
- } else if (prim.isString()) {
- return prim.getAsString();
- } else if (prim.isNumber()) {
- String strRepesentation = prim.getAsString();
- if (strRepesentation.contains(".")) {
- return prim.getAsDouble();
- } else {
- return prim.getAsInt();
- }
- } else {
- throw new IllegalStateException();
- }
- }
-
- /**
- * checks is received Object empty or equals null or not It is relevant only
- * if received Object is instance of String, Map or List class.
- *
- * @param convertedValue
- * @return
- */
- static public boolean isEmptyObjectValue(Object convertedValue) {
- if (convertedValue == null) {
- return true;
- } else if (convertedValue instanceof String && ((String) convertedValue).isEmpty()) {
- return true;
- } else if (convertedValue instanceof Map && ((Map) convertedValue).isEmpty()) {
- return true;
- } else if (convertedValue instanceof List && ((List) convertedValue).isEmpty()) {
- return true;
- }
- return false;
- }
+ protected Gson gson = new Gson();
+ private static final Logger log = Logger.getLogger(ToscaValueBaseConverter.class.getName());
+
+ protected Map<String, PropertyDefinition> getAllProperties(DataTypeDefinition dataTypeDefinition) {
+
+ Map<String, PropertyDefinition> allParentsProps = new HashMap<>();
+
+ while (dataTypeDefinition != null) {
+
+ List<PropertyDefinition> currentParentsProps = dataTypeDefinition.getProperties();
+ if (currentParentsProps != null) {
+ currentParentsProps.stream().forEach(p -> allParentsProps.put(p.getName(), p));
+ }
+
+ dataTypeDefinition = dataTypeDefinition.getDerivedFrom();
+ }
+
+ return allParentsProps;
+ }
+
+ public ToscaPropertyType isScalarType(DataTypeDefinition dataTypeDef) {
+
+ ToscaPropertyType result = null;
+
+ DataTypeDefinition dataType = dataTypeDef;
+
+ while (dataType != null) {
+
+ String name = dataType.getName();
+ ToscaPropertyType typeIfScalar = ToscaPropertyType.getTypeIfScalar(name);
+ if (typeIfScalar != null) {
+ result = typeIfScalar;
+ break;
+ }
+
+ dataType = dataType.getDerivedFrom();
+ }
+
+ return result;
+ }
+
+ public Object handleComplexJsonValue(JsonElement elementValue) {
+ Object jsonValue = null;
+
+ Map<String, Object> value = new HashMap<>();
+ if (elementValue.isJsonObject()) {
+ JsonObject jsonOb = elementValue.getAsJsonObject();
+ Set<Entry<String, JsonElement>> entrySet = jsonOb.entrySet();
+ Iterator<Entry<String, JsonElement>> iteratorEntry = entrySet.iterator();
+ while (iteratorEntry.hasNext()) {
+ Entry<String, JsonElement> entry = iteratorEntry.next();
+ if (entry.getValue().isJsonArray()) {
+ List<Object> array = handleJsonArray(entry.getValue());
+ value.put(entry.getKey(), array);
+ } else {
+ Object object;
+ if (entry.getValue().isJsonPrimitive()) {
+ object = json2JavaPrimitive(entry.getValue().getAsJsonPrimitive());
+ } else {
+ object = handleComplexJsonValue(entry.getValue());
+ }
+ value.put(entry.getKey(), object);
+ }
+ }
+ jsonValue = value;
+ } else {
+ if (elementValue.isJsonArray()) {
+ jsonValue = handleJsonArray(elementValue);
+ } else {
+ if (elementValue.isJsonPrimitive()) {
+ jsonValue = json2JavaPrimitive(elementValue.getAsJsonPrimitive());
+ } else {
+ log.debug("not supported json type {} ", elementValue);
+ }
+ }
+ }
+
+ return jsonValue;
+ }
+
+ private List<Object> handleJsonArray(JsonElement entry) {
+ List<Object> array = new ArrayList<>();
+ JsonArray jsonArray = entry.getAsJsonArray();
+ Iterator<JsonElement> iterator = jsonArray.iterator();
+ while (iterator.hasNext()) {
+ Object object;
+ JsonElement element = iterator.next();
+ if (element.isJsonPrimitive()) {
+ object = json2JavaPrimitive(element.getAsJsonPrimitive());
+ } else {
+ object = handleComplexJsonValue(element);
+ }
+ array.add(object);
+ }
+ return array;
+ }
+
+ public Object json2JavaPrimitive(JsonPrimitive prim) {
+ if (prim.isBoolean()) {
+ return prim.getAsBoolean();
+ } else if (prim.isString()) {
+ return prim.getAsString();
+ } else if (prim.isNumber()) {
+ String strRepesentation = prim.getAsString();
+ if (strRepesentation.contains(".")) {
+ return prim.getAsDouble();
+ } else {
+ return prim.getAsInt();
+ }
+ } else {
+ throw new IllegalStateException();
+ }
+ }
+
+ /**
+ * checks is received Object empty or equals null or not It is relevant only
+ * if received Object is instance of String, Map or List class.
+ *
+ * @param convertedValue
+ * @return
+ */
+ static public boolean isEmptyObjectValue(Object convertedValue) {
+ if (convertedValue == null) {
+ return true;
+ } else if (convertedValue instanceof String && ((String) convertedValue).isEmpty()) {
+ return true;
+ } else if (convertedValue instanceof Map && ((Map) convertedValue).isEmpty()) {
+ return true;
+ } else if (convertedValue instanceof List && ((List) convertedValue).isEmpty()) {
+ return true;
+ }
+ return false;
+ }
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueConverter.java
index 1b5d4697be..a9d3cb9544 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueConverter.java
@@ -20,11 +20,11 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.Map;
-
import org.openecomp.sdc.be.model.DataTypeDefinition;
+import java.util.Map;
+
public interface ToscaValueConverter {
- Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes);
+ Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes);
}
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueDefaultConverter.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueDefaultConverter.java
index b6eb24276e..ca0724dfc0 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueDefaultConverter.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/tosca/converters/ToscaValueDefaultConverter.java
@@ -20,24 +20,24 @@
package org.openecomp.sdc.be.model.tosca.converters;
-import java.util.Map;
-
import org.openecomp.sdc.be.model.DataTypeDefinition;
+import java.util.Map;
+
public class ToscaValueDefaultConverter implements ToscaValueConverter {
- private static ToscaValueDefaultConverter deafultConverter = new ToscaValueDefaultConverter();
+ private static ToscaValueDefaultConverter deafultConverter = new ToscaValueDefaultConverter();
- public static ToscaValueDefaultConverter getInstance() {
- return deafultConverter;
- }
+ public static ToscaValueDefaultConverter getInstance() {
+ return deafultConverter;
+ }
- private ToscaValueDefaultConverter() {
+ private ToscaValueDefaultConverter() {
- }
+ }
- @Override
- public Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
- return value;
- }
+ @Override
+ public Object convertToToscaValue(String value, String innerType, Map<String, DataTypeDefinition> dataTypes) {
+ return value;
+ }
}