UI support for default custom function names with get_input structure
[sdc.git] / common-be / src / main / java / org / openecomp / sdc / be / datatypes / elements / ToscaCustomFunction.java
index 3f0c4fa..981d4ec 100644 (file)
 package org.openecomp.sdc.be.datatypes.elements;
 
 import com.google.gson.Gson;
-import lombok.Getter;
-import lombok.Setter;
-
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
+import lombok.Getter;
+import lombok.Setter;
 
 @Getter
 @Setter
 public class ToscaCustomFunction implements ToscaFunction, ToscaFunctionParameter {
 
     private String name;
+    private ToscaFunctionType toscaFunctionType;
     private List<ToscaFunctionParameter> parameters = new ArrayList<>();
 
     @Override
@@ -49,9 +50,18 @@ public class ToscaCustomFunction implements ToscaFunction, ToscaFunctionParamete
 
     @Override
     public Object getJsonObjectValue() {
+        if (ToscaFunctionType.GET_INPUT.equals(this.toscaFunctionType)) {
+            Map<String, Object> getInput = parameters.stream().collect(Collectors.toMap(
+                input -> "$" + name,
+                input -> {
+                    Map<String, Object> inputMap = (Map<String, Object>) input.getJsonObjectValue();
+                    return inputMap.get(ToscaFunctionType.GET_INPUT.getName());
+                }));
+            return getInput;
+        }
         return Map.of(
-                "$" + name,
-                parameters.stream().map(ToscaFunctionParameter::getJsonObjectValue).collect(Collectors.toList())
+            "$" + name,
+            parameters.stream().map(ToscaFunctionParameter::getJsonObjectValue).collect(Collectors.toList())
         );
     }