Fix use of Optional in TranslatorHeatToToscaPropertyConverter 21/126721/4
authorfranciscovila <javier.paradela.vila@est.tech>
Mon, 24 Jan 2022 10:10:40 +0000 (10:10 +0000)
committerAndr� Schmid <andre.schmid@est.tech>
Tue, 25 Jan 2022 10:02:05 +0000 (10:02 +0000)
Checking the Optionals are present before getting
their values in the TranslatorHeatToToscaPropertyConverter class

Issue-ID: SDC-3834
Signed-off-by: franciscovila <javier.paradela.vila@est.tech>
Change-Id: I92f9153adea8be4225c0a181fd31b9f7090bde96

openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/services/heattotosca/mapping/TranslatorHeatToToscaPropertyConverter.java

index b9cad2f..7b2a93c 100644 (file)
@@ -25,12 +25,15 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
+
 import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
 import org.onap.sdc.tosca.datatypes.model.Template;
 import org.openecomp.sdc.heat.datatypes.model.HeatOrchestrationTemplate;
 import org.openecomp.sdc.translator.datatypes.heattotosca.TranslationContext;
 import org.openecomp.sdc.translator.services.heattotosca.ConfigConstants;
 import org.openecomp.sdc.translator.services.heattotosca.Constants;
+import org.openecomp.sdc.translator.services.heattotosca.FunctionTranslation;
 import org.openecomp.sdc.translator.services.heattotosca.FunctionTranslationFactory;
 import org.openecomp.sdc.translator.services.heattotosca.impl.functiontranslation.FunctionTranslator;
 
@@ -113,11 +116,12 @@ public class TranslatorHeatToToscaPropertyConverter {
                                                Template template, TranslationContext context) {
         if (propertyValue instanceof Map && !((Map) propertyValue).isEmpty()) {
             Map.Entry<String, Object> functionMapEntry = (Map.Entry<String, Object>) ((Map) propertyValue).entrySet().iterator().next();
-            if (FunctionTranslationFactory.getInstance(functionMapEntry.getKey()).isPresent()) {
+            Optional<FunctionTranslation> optFunctionTranslation = FunctionTranslationFactory.getInstance(functionMapEntry.getKey());
+            if (optFunctionTranslation.isPresent()) {
                 FunctionTranslator functionTranslator = new FunctionTranslator(
                     getFunctionTranslateTo(serviceTemplate, resourceId, heatFileName, heatOrchestrationTemplate, context), propertyName,
                     functionMapEntry.getValue(), template);
-                return FunctionTranslationFactory.getInstance(functionMapEntry.getKey()).get().translateFunction(functionTranslator);
+                return optFunctionTranslation.get().translateFunction(functionTranslator);
             }
             Map<String, Object> propertyValueMap = new HashMap<>();
             for (Map.Entry<String, Object> entry : ((Map<String, Object>) propertyValue).entrySet()) {