diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java | 63 |
1 files changed, 14 insertions, 49 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java index b8414367aa..646a7ecc8b 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/PropertyConvertor.java @@ -20,12 +20,11 @@ package org.openecomp.sdc.be.tosca; -import java.io.StringReader; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; - +import com.google.gson.Gson; +import com.google.gson.JsonElement; +import com.google.gson.JsonParser; +import com.google.gson.stream.JsonReader; +import fj.data.Either; import org.apache.commons.lang3.StringUtils; import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition; import org.openecomp.sdc.be.model.Component; @@ -33,6 +32,7 @@ import org.openecomp.sdc.be.model.DataTypeDefinition; import org.openecomp.sdc.be.model.PropertyDefinition; import org.openecomp.sdc.be.model.Resource; import org.openecomp.sdc.be.model.tosca.ToscaPropertyType; +import org.openecomp.sdc.be.model.tosca.converters.DataTypePropertyConverter; import org.openecomp.sdc.be.model.tosca.converters.ToscaMapValueConverter; import org.openecomp.sdc.be.model.tosca.converters.ToscaValueConverter; import org.openecomp.sdc.be.tosca.model.EntrySchema; @@ -41,14 +41,10 @@ import org.openecomp.sdc.be.tosca.model.ToscaProperty; 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.JsonParser; -import com.google.gson.JsonSyntaxException; -import com.google.gson.stream.JsonReader; - -import fj.data.Either; +import java.io.StringReader; +import java.util.HashMap; +import java.util.List; +import java.util.Map; public class PropertyConvertor { private static PropertyConvertor instance; @@ -101,7 +97,7 @@ public class PropertyConvertor { prop.setEntry_schema(eschema); } log.trace("try to convert property {} from type {} with default value [{}]", property.getName(), property.getType(), property.getDefaultValue()); - prop.setDefaultp(convertToToscaObject(property.getType(), property.getName(), property.getDefaultValue(), innerType, dataTypes)); + prop.setDefaultp(convertToToscaObject(property.getType(), property.getDefaultValue(), innerType, dataTypes)); prop.setType(property.getType()); prop.setDescription(property.getDescription()); if (isCapabiltyProperty) { @@ -111,10 +107,10 @@ public class PropertyConvertor { return prop; } - public Object convertToToscaObject(String propertyType, String propertyName, String value, String innerType, Map<String, DataTypeDefinition> dataTypes) { + public Object convertToToscaObject(String propertyType, String value, String innerType, Map<String, DataTypeDefinition> dataTypes) { log.trace("try to convert propertyType {} , value [{}], innerType {}", propertyType, value, innerType); - if (value == null) { - value = getDataTypeDefaultValue(propertyName, dataTypes.get(propertyType)); + if (StringUtils.isEmpty(value)) { + value = DataTypePropertyConverter.getInstance().getDataTypePropertiesDefaultValuesRec(propertyType, dataTypes); if(StringUtils.isEmpty(value)){ return null; } @@ -193,35 +189,4 @@ public class PropertyConvertor { } - private String getDataTypeDefaultValue(String propertyName, DataTypeDefinition dataTypeDefinition) { - - String delaultValue = null; - JsonObject asJsonObjectIn = new JsonObject(); - 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(); - } - for (Entry<String, PropertyDefinition> entry : allParentsProps.entrySet()) { - String propName = entry.getKey(); - PropertyDefinition propertyDefinition = entry.getValue(); - JsonElement elementValue = asJsonObjectIn.get(propName); - if(elementValue == null && propertyDefinition.getDefaultValue() != null){ - JsonReader jsonReader = new JsonReader(new StringReader(propertyDefinition.getDefaultValue())); - jsonReader.setLenient(true); - elementValue = jsonParser.parse(jsonReader); - asJsonObjectIn.add(propName, elementValue); - } - } - if(!asJsonObjectIn.isJsonNull()){ - delaultValue = gson.toJson(asJsonObjectIn); - } - return delaultValue; - } - } |