test_class.declarator: INITIALIZED = false
test_class.modifier: private static
test_class.original_string: private static boolean INITIALIZED = false;
test_class.type: boolean
test_class.var_name: INITIALIZED
test_class.declarator: alienDAO
test_class.modifier: @Resource(name = "alien-es-dao")
      private
test_class.original_string: @Resource(name = "alien-es-dao")
      private IGenericSearchDAO alienDAO;
test_class.type: IGenericSearchDAO
test_class.var_name: alienDAO
test_class.declarator: archiveUploadService
test_class.modifier: @Resource
      private
test_class.original_string: @Resource
      private ArchiveUploadService archiveUploadService;
test_class.type: ArchiveUploadService
test_class.var_name: archiveUploadService
test_class.declarator: treeBuilder
test_class.modifier: @Resource
      private
test_class.original_string: @Resource
      private TopologyTreeBuilderService treeBuilder;
test_class.type: TopologyTreeBuilderService
test_class.var_name: treeBuilder
test_class.declarator: applicationUtil
test_class.modifier: @Resource
      private
test_class.original_string: @Resource
      private ApplicationUtil applicationUtil;
test_class.type: ApplicationUtil
test_class.var_name: applicationUtil
test_class.declarator: alienRepoDir
test_class.modifier: @Value("${directories.alien}/${directories.csar_repository}")
      private
test_class.original_string: @Value("${directories.alien}/${directories.csar_repository}")
      private String alienRepoDir;
test_class.type: String
test_class.var_name: alienRepoDir
test_class.declarator: artifactsDirectory = Paths.get("target/git-artifacts")
test_class.modifier: private
test_class.original_string: private Path artifactsDirectory = Paths.get("target/git-artifacts");
test_class.type: Path
test_class.var_name: artifactsDirectory
test_class.declarator: repositoryManager = new RepositoryManager()
test_class.modifier: private
test_class.original_string: private RepositoryManager repositoryManager = new RepositoryManager();
test_class.type: RepositoryManager
test_class.var_name: repositoryManager
test_class.declarator: builtPaaSNodeTemplates
test_class.modifier: private
test_class.original_string: private Map<String, PaaSNodeTemplate> builtPaaSNodeTemplates;
test_class.type: Map<String, PaaSNodeTemplate>
test_class.var_name: builtPaaSNodeTemplates
test_class.file: alien4cloud-core/src/test/java/alien4cloud/paas/function/FunctionEvaluatorTest.java
test_class.identifier: FunctionEvaluatorTest
test_case.body: @Test
      public void testParseAttributConcatScalar() {
  
          Map<String, NodeTemplate> nodeTemplates = Maps.newHashMap();
          NodeTemplate nodeTemplate1 = new NodeTemplate();
          nodeTemplate1.setProperties(
                  MapUtil.newHashMap(new String[] { "the_property_name_1" }, new AbstractPropertyValue[] { new ScalarPropertyValue("the_property_value_1") }));
          nodeTemplates.put("the_node_tempalte_1", nodeTemplate1);
          NodeTemplate nodeTemplate2 = new NodeTemplate();
          nodeTemplate2.setProperties(
                  MapUtil.newHashMap(new String[] { "the_property_name_2" }, new AbstractPropertyValue[] { new ScalarPropertyValue("the_property_value_2") }));
          nodeTemplates.put("the_node_tempalte_2", nodeTemplate2);
          Topology topology = new Topology();
          topology.setNodeTemplates(nodeTemplates);
  
          Map<String, Map<String, InstanceInformation>> runtimeInformations = Maps.newHashMap();
  
          // Create a IAttributeValue
          ConcatPropertyValue concatAttributeValue = new ConcatPropertyValue();
          ScalarPropertyValue scalarParameter1 = new ScalarPropertyValue();
          ScalarPropertyValue scalarParameter2 = new ScalarPropertyValue();
          ScalarPropertyValue scalarParameter3 = new ScalarPropertyValue();
          ScalarPropertyValue scalarParameter4 = new ScalarPropertyValue();
  
          scalarParameter1.setValue("http://");
          scalarParameter2.setValue("mywebsiteurl");
          scalarParameter3.setValue(":");
          scalarParameter4.setValue("port");
  
          concatAttributeValue.setParameters(new ArrayList<>());
          concatAttributeValue.getParameters().add(scalarParameter1);
          concatAttributeValue.getParameters().add(scalarParameter2);
          concatAttributeValue.getParameters().add(scalarParameter3);
          concatAttributeValue.getParameters().add(scalarParameter4);
  
          String parsedConcatString = FunctionEvaluator.parseAttribute(null, concatAttributeValue, topology, runtimeInformations, "0", null, null);
          String fullUrl = scalarParameter1.getValue() + scalarParameter2.getValue() + scalarParameter3.getValue() + scalarParameter4.getValue();
          Assert.assertEquals(fullUrl, parsedConcatString);
  
      }
test_case.class_method_signature: FunctionEvaluatorTest.testParseAttributConcatScalar()
test_case.full_signature: @Test public void testParseAttributConcatScalar()
test_case.identifier: testParseAttributConcatScalar
test_case.invocations: newHashMap setProperties newHashMap put setProperties newHashMap put setNodeTemplates newHashMap setValue setValue setValue setValue setParameters add getParameters add getParameters add getParameters add getParameters parseAttribute getValue getValue getValue getValue assertEquals
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testParseAttributConcatScalar()
focal_class.file: alien4cloud-core/src/main/java/alien4cloud/paas/function/FunctionEvaluator.java
focal_class.identifier: FunctionEvaluator
focal_class.class_method_signature: FunctionEvaluator.parseAttribute(String attributeId, IValue attributeValue, Topology topology,
              Map<String, Map<String, InstanceInformation>> runtimeInformations, String currentInstance,
              IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.full_signature: public static String parseAttribute(String attributeId, IValue attributeValue, Topology topology,
              Map<String, Map<String, InstanceInformation>> runtimeInformations, String currentInstance,
              IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.identifier: parseAttribute
focal_class.modifiers: public static
focal_class.parameters: (String attributeId, IValue attributeValue, Topology topology,
              Map<String, Map<String, InstanceInformation>> runtimeInformations, String currentInstance,
              IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.return: String
focal_class.signature: String parseAttribute(String attributeId, IValue attributeValue, Topology topology,
              Map<String, Map<String, InstanceInformation>> runtimeInformations, String currentInstance,
              IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.class_method_signature: FunctionEvaluator.extractRuntimeInformationOperationOutput(Map<String, Map<String, InstanceInformation>> runtimeInformations, String instanceId,
              List<? extends IPaaSTemplate> nodes, FunctionPropertyValue function, String defaultValue)
focal_class.full_signature: private static String extractRuntimeInformationOperationOutput(Map<String, Map<String, InstanceInformation>> runtimeInformations, String instanceId,
              List<? extends IPaaSTemplate> nodes, FunctionPropertyValue function, String defaultValue)
focal_class.identifier: extractRuntimeInformationOperationOutput
focal_class.modifiers: private static
focal_class.parameters: (Map<String, Map<String, InstanceInformation>> runtimeInformations, String instanceId,
              List<? extends IPaaSTemplate> nodes, FunctionPropertyValue function, String defaultValue)
focal_class.return: String
focal_class.signature: String extractRuntimeInformationOperationOutput(Map<String, Map<String, InstanceInformation>> runtimeInformations, String instanceId,
              List<? extends IPaaSTemplate> nodes, FunctionPropertyValue function, String defaultValue)
focal_class.class_method_signature: FunctionEvaluator.extractRuntimeInformationProperty(Topology topology, String propertyOrAttributeName, List<? extends IPaaSTemplate> nodes)
focal_class.full_signature: private static String extractRuntimeInformationProperty(Topology topology, String propertyOrAttributeName, List<? extends IPaaSTemplate> nodes)
focal_class.identifier: extractRuntimeInformationProperty
focal_class.modifiers: private static
focal_class.parameters: (Topology topology, String propertyOrAttributeName, List<? extends IPaaSTemplate> nodes)
focal_class.return: String
focal_class.signature: String extractRuntimeInformationProperty(Topology topology, String propertyOrAttributeName, List<? extends IPaaSTemplate> nodes)
focal_class.class_method_signature: FunctionEvaluator.extractRuntimeInformationAttribute(Map<String, Map<String, InstanceInformation>> runtimeInformations, String currentInstance,
              List<? extends IPaaSTemplate> nodes, String propertyOrAttributeName)
focal_class.full_signature: private static String extractRuntimeInformationAttribute(Map<String, Map<String, InstanceInformation>> runtimeInformations, String currentInstance,
              List<? extends IPaaSTemplate> nodes, String propertyOrAttributeName)
focal_class.identifier: extractRuntimeInformationAttribute
focal_class.modifiers: private static
focal_class.parameters: (Map<String, Map<String, InstanceInformation>> runtimeInformations, String currentInstance,
              List<? extends IPaaSTemplate> nodes, String propertyOrAttributeName)
focal_class.return: String
focal_class.signature: String extractRuntimeInformationAttribute(Map<String, Map<String, InstanceInformation>> runtimeInformations, String currentInstance,
              List<? extends IPaaSTemplate> nodes, String propertyOrAttributeName)
focal_class.class_method_signature: FunctionEvaluator.getPaaSTemplatesFromKeyword(IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate, String keyword,
              Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.full_signature: public static List<? extends IPaaSTemplate> getPaaSTemplatesFromKeyword(IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate, String keyword,
              Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.identifier: getPaaSTemplatesFromKeyword
focal_class.modifiers: public static
focal_class.parameters: (IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate, String keyword,
              Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.return: List<? extends IPaaSTemplate>
focal_class.signature: List<? extends IPaaSTemplate> getPaaSTemplatesFromKeyword(IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate, String keyword,
              Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.class_method_signature: FunctionEvaluator.evaluateGetPropertyFunction(FunctionPropertyValue functionParam,
              IPaaSTemplate<? extends AbstractInheritableToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.full_signature: public static String evaluateGetPropertyFunction(FunctionPropertyValue functionParam,
              IPaaSTemplate<? extends AbstractInheritableToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.identifier: evaluateGetPropertyFunction
focal_class.modifiers: public static
focal_class.parameters: (FunctionPropertyValue functionParam,
              IPaaSTemplate<? extends AbstractInheritableToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.return: String
focal_class.signature: String evaluateGetPropertyFunction(FunctionPropertyValue functionParam,
              IPaaSTemplate<? extends AbstractInheritableToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.class_method_signature: FunctionEvaluator.processGetPropertyFunction(FunctionPropertyValue functionParam,
              IPaaSTemplate<? extends AbstractInheritableToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.full_signature: public static AbstractPropertyValue processGetPropertyFunction(FunctionPropertyValue functionParam,
              IPaaSTemplate<? extends AbstractInheritableToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.identifier: processGetPropertyFunction
focal_class.modifiers: public static
focal_class.parameters: (FunctionPropertyValue functionParam,
              IPaaSTemplate<? extends AbstractInheritableToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.return: AbstractPropertyValue
focal_class.signature: AbstractPropertyValue processGetPropertyFunction(FunctionPropertyValue functionParam,
              IPaaSTemplate<? extends AbstractInheritableToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.class_method_signature: FunctionEvaluator.getPropertyValue(Map<String, AbstractPropertyValue> properties, Map<String, PropertyDefinition> propertyDefinitions,
              String propertyAccessPath)
focal_class.full_signature: private static AbstractPropertyValue getPropertyValue(Map<String, AbstractPropertyValue> properties, Map<String, PropertyDefinition> propertyDefinitions,
              String propertyAccessPath)
focal_class.identifier: getPropertyValue
focal_class.modifiers: private static
focal_class.parameters: (Map<String, AbstractPropertyValue> properties, Map<String, PropertyDefinition> propertyDefinitions,
              String propertyAccessPath)
focal_class.return: AbstractPropertyValue
focal_class.signature: AbstractPropertyValue getPropertyValue(Map<String, AbstractPropertyValue> properties, Map<String, PropertyDefinition> propertyDefinitions,
              String propertyAccessPath)
focal_class.class_method_signature: FunctionEvaluator.getPropertyFromTemplateOrCapability(IPaaSTemplate<? extends AbstractInheritableToscaType> paaSTemplate,
              String capabilityOrRequirementName, String elementName)
focal_class.full_signature: private static AbstractPropertyValue getPropertyFromTemplateOrCapability(IPaaSTemplate<? extends AbstractInheritableToscaType> paaSTemplate,
              String capabilityOrRequirementName, String elementName)
focal_class.identifier: getPropertyFromTemplateOrCapability
focal_class.modifiers: private static
focal_class.parameters: (IPaaSTemplate<? extends AbstractInheritableToscaType> paaSTemplate,
              String capabilityOrRequirementName, String elementName)
focal_class.return: AbstractPropertyValue
focal_class.signature: AbstractPropertyValue getPropertyFromTemplateOrCapability(IPaaSTemplate<? extends AbstractInheritableToscaType> paaSTemplate,
              String capabilityOrRequirementName, String elementName)
focal_class.class_method_signature: FunctionEvaluator.getPaaSNodeOrFail(String nodeId, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.full_signature: private static PaaSNodeTemplate getPaaSNodeOrFail(String nodeId, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.identifier: getPaaSNodeOrFail
focal_class.modifiers: private static
focal_class.parameters: (String nodeId, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.return: PaaSNodeTemplate
focal_class.signature: PaaSNodeTemplate getPaaSNodeOrFail(String nodeId, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.class_method_signature: FunctionEvaluator.getHostNode(IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate)
focal_class.full_signature: private static PaaSNodeTemplate getHostNode(IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate)
focal_class.identifier: getHostNode
focal_class.modifiers: private static
focal_class.parameters: (IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate)
focal_class.return: PaaSNodeTemplate
focal_class.signature: PaaSNodeTemplate getHostNode(IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate)
focal_class.class_method_signature: FunctionEvaluator.getSourceNode(IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate,
              Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.full_signature: private static PaaSNodeTemplate getSourceNode(IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate,
              Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.identifier: getSourceNode
focal_class.modifiers: private static
focal_class.parameters: (IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate,
              Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.return: PaaSNodeTemplate
focal_class.signature: PaaSNodeTemplate getSourceNode(IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate,
              Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.class_method_signature: FunctionEvaluator.getTargetNode(IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate,
              Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.full_signature: private static PaaSNodeTemplate getTargetNode(IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate,
              Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.identifier: getTargetNode
focal_class.modifiers: private static
focal_class.parameters: (IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate,
              Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.return: PaaSNodeTemplate
focal_class.signature: PaaSNodeTemplate getTargetNode(IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate,
              Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_class.class_method_signature: FunctionEvaluator.getWithParentsNodes(final PaaSNodeTemplate paaSNodeTemplate)
focal_class.full_signature: private static List<PaaSNodeTemplate> getWithParentsNodes(final PaaSNodeTemplate paaSNodeTemplate)
focal_class.identifier: getWithParentsNodes
focal_class.modifiers: private static
focal_class.parameters: (final PaaSNodeTemplate paaSNodeTemplate)
focal_class.return: List<PaaSNodeTemplate>
focal_class.signature: List<PaaSNodeTemplate> getWithParentsNodes(final PaaSNodeTemplate paaSNodeTemplate)
focal_class.class_method_signature: FunctionEvaluator.getScalarValues(Map<String, AbstractPropertyValue> propertyValues)
focal_class.full_signature: public static Map<String, String> getScalarValues(Map<String, AbstractPropertyValue> propertyValues)
focal_class.identifier: getScalarValues
focal_class.modifiers: public static
focal_class.parameters: (Map<String, AbstractPropertyValue> propertyValues)
focal_class.return: Map<String, String>
focal_class.signature: Map<String, String> getScalarValues(Map<String, AbstractPropertyValue> propertyValues)
focal_class.class_method_signature: FunctionEvaluator.isGetAttribute(FunctionPropertyValue function)
focal_class.full_signature: public static boolean isGetAttribute(FunctionPropertyValue function)
focal_class.identifier: isGetAttribute
focal_class.modifiers: public static
focal_class.parameters: (FunctionPropertyValue function)
focal_class.return: boolean
focal_class.signature: boolean isGetAttribute(FunctionPropertyValue function)
focal_class.class_method_signature: FunctionEvaluator.isGetOperationOutput(FunctionPropertyValue function)
focal_class.full_signature: public static boolean isGetOperationOutput(FunctionPropertyValue function)
focal_class.identifier: isGetOperationOutput
focal_class.modifiers: public static
focal_class.parameters: (FunctionPropertyValue function)
focal_class.return: boolean
focal_class.signature: boolean isGetOperationOutput(FunctionPropertyValue function)
focal_class.class_method_signature: FunctionEvaluator.isGetInput(AbstractPropertyValue propertyValue)
focal_class.full_signature: public static boolean isGetInput(AbstractPropertyValue propertyValue)
focal_class.identifier: isGetInput
focal_class.modifiers: public static
focal_class.parameters: (AbstractPropertyValue propertyValue)
focal_class.return: boolean
focal_class.signature: boolean isGetInput(AbstractPropertyValue propertyValue)
focal_class.class_method_signature: FunctionEvaluator.isGetInput(FunctionPropertyValue function)
focal_class.full_signature: public static boolean isGetInput(FunctionPropertyValue function)
focal_class.identifier: isGetInput
focal_class.modifiers: public static
focal_class.parameters: (FunctionPropertyValue function)
focal_class.return: boolean
focal_class.signature: boolean isGetInput(FunctionPropertyValue function)
focal_class.class_method_signature: FunctionEvaluator.isGetSecret(AbstractPropertyValue propertyValue)
focal_class.full_signature: public static boolean isGetSecret(AbstractPropertyValue propertyValue)
focal_class.identifier: isGetSecret
focal_class.modifiers: public static
focal_class.parameters: (AbstractPropertyValue propertyValue)
focal_class.return: boolean
focal_class.signature: boolean isGetSecret(AbstractPropertyValue propertyValue)
focal_class.class_method_signature: FunctionEvaluator.isGetSecret(FunctionPropertyValue function)
focal_class.full_signature: public static boolean isGetSecret(FunctionPropertyValue function)
focal_class.identifier: isGetSecret
focal_class.modifiers: public static
focal_class.parameters: (FunctionPropertyValue function)
focal_class.return: boolean
focal_class.signature: boolean isGetSecret(FunctionPropertyValue function)
focal_method.body: public static String parseAttribute(String attributeId, IValue attributeValue, Topology topology,
              Map<String, Map<String, InstanceInformation>> runtimeInformations, String currentInstance,
              IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates) {
  
          if (attributeValue == null) {
              return null;
          }
  
          // handle AttributeDefinition type
          if (attributeValue instanceof AttributeDefinition) {
              String runtimeAttributeValue = extractRuntimeInformationAttribute(runtimeInformations, currentInstance, Lists.newArrayList(basePaaSTemplate),
                      attributeId);
              if (runtimeAttributeValue != null) {
                  if (!runtimeAttributeValue.contains("=Error!]") && !runtimeAttributeValue.equals("")) {
                      return runtimeAttributeValue;
                  }
              }
  
              return ((AttributeDefinition) attributeValue).getDefault();
          }
  
          // handle concat function
          if (attributeValue instanceof ConcatPropertyValue) {
              StringBuilder evaluatedAttribute = new StringBuilder();
              ConcatPropertyValue concatPropertyValue = (ConcatPropertyValue) attributeValue;
              for (IValue concatParam : concatPropertyValue.getParameters()) {
                  // scalar type
                  if (concatParam instanceof ScalarPropertyValue) {
                      // scalar case
                      evaluatedAttribute.append(((ScalarPropertyValue) concatParam).getValue());
                  } else if (concatParam instanceof PropertyDefinition) {
                      // Definition case
                      // TODO : ?? what should i do here ?? currently returns default value in the definition
                      evaluatedAttribute.append(((PropertyDefinition) concatParam).getDefault());
                  } else if (concatParam instanceof FunctionPropertyValue) {
                      // Function case
                      FunctionPropertyValue functionPropertyValue = (FunctionPropertyValue) concatParam;
                      List<? extends IPaaSTemplate> paasTemplates = getPaaSTemplatesFromKeyword(basePaaSTemplate, functionPropertyValue.getTemplateName(),
                              builtPaaSTemplates);
                      switch (functionPropertyValue.getFunction()) {
                      case ToscaFunctionConstants.GET_ATTRIBUTE:
                          evaluatedAttribute.append(extractRuntimeInformationAttribute(runtimeInformations, currentInstance, paasTemplates,
                                  functionPropertyValue.getElementNameToFetch()));
                          break;
                      case ToscaFunctionConstants.GET_PROPERTY:
                          evaluatedAttribute.append(extractRuntimeInformationProperty(topology, functionPropertyValue.getElementNameToFetch(), paasTemplates));
                          break;
                      case ToscaFunctionConstants.GET_OPERATION_OUTPUT:
                          String defaultValue = "<" + functionPropertyValue.getElementNameToFetch() + ">";
                          evaluatedAttribute.append(extractRuntimeInformationOperationOutput(runtimeInformations, currentInstance, paasTemplates,
                                  functionPropertyValue, defaultValue));
                          break;
                      default:
                          log.warn("Function [{}] is not yet handled in concat operation.", functionPropertyValue.getFunction());
                          break;
                      }
  
                  }
              }
              return evaluatedAttribute.toString();
          }
  
          // handle functions. For now, only support Get_OPERATION_OUTPUT on attributes scope
          if (attributeValue instanceof FunctionPropertyValue) {
              FunctionPropertyValue function = (FunctionPropertyValue) attributeValue;
              switch (function.getFunction()) {
              case ToscaFunctionConstants.GET_OPERATION_OUTPUT:
                  List<? extends IPaaSTemplate> paasTemplates = getPaaSTemplatesFromKeyword(basePaaSTemplate, function.getTemplateName(), builtPaaSTemplates);
                  return extractRuntimeInformationOperationOutput(runtimeInformations, currentInstance, paasTemplates, function, null);
              default:
                  return null;
              }
          }
  
          return null;
      }
focal_method.class_method_signature: FunctionEvaluator.parseAttribute(String attributeId, IValue attributeValue, Topology topology,
              Map<String, Map<String, InstanceInformation>> runtimeInformations, String currentInstance,
              IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_method.full_signature: public static String parseAttribute(String attributeId, IValue attributeValue, Topology topology,
              Map<String, Map<String, InstanceInformation>> runtimeInformations, String currentInstance,
              IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_method.identifier: parseAttribute
focal_method.invocations: extractRuntimeInformationAttribute newArrayList contains equals getDefault getParameters append getValue append getDefault getPaaSTemplatesFromKeyword getTemplateName getFunction append extractRuntimeInformationAttribute getElementNameToFetch append extractRuntimeInformationProperty getElementNameToFetch getElementNameToFetch append extractRuntimeInformationOperationOutput warn getFunction toString getFunction getPaaSTemplatesFromKeyword getTemplateName extractRuntimeInformationOperationOutput
focal_method.modifiers: public static
focal_method.parameters: (String attributeId, IValue attributeValue, Topology topology,
              Map<String, Map<String, InstanceInformation>> runtimeInformations, String currentInstance,
              IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates)
focal_method.return: String
focal_method.signature: String parseAttribute(String attributeId, IValue attributeValue, Topology topology,
              Map<String, Map<String, InstanceInformation>> runtimeInformations, String currentInstance,
              IPaaSTemplate<? extends AbstractToscaType> basePaaSTemplate, Map<String, PaaSNodeTemplate> builtPaaSTemplates)