Source:
private static Topology getApplicationTopologyRecursive(String elementName, Map<String, Object> element, Topology topology, Map<String, Object> modules, Map<String, Object> groups, SuitableOptions appInfoSuitableOptions) { if (topology.contains(elementName)) { return topology; } TopologyElement newelement = new TopologyElement(elementName); double hostPerformance = appInfoSuitableOptions.getCloudCharacteristics(elementName, YAMLmodulesOptimizerParser.getMeasuredPerformanceHost(elementName, groups)).getPerformance(); boolean elementCanScale = YAMLmodulesOptimizerParser.getScalabilityCapabilitiesOfModule(modules, elementName); newelement.setExecTimeMillis( YAMLmodulesOptimizerParser.getMeasuredExecTimeMillis(elementName, groups) * hostPerformance); if (!YAMLmodulesOptimizerParser.moduleHasModuleRequirements(elementName, groups)) { topology.addModule(newelement); return topology; } for (String moduleReqName : YAMLmodulesOptimizerParser.moduleRequirementsOfAModule(elementName, groups)) { if (topology.contains(moduleReqName)) { double opProfileBetweenModules = YAMLgroupsOptimizerParser.getOpProfileWithModule(elementName, moduleReqName, groups); newelement.addElementCalled( new TopologyElementCalled(topology.getModule(moduleReqName), opProfileBetweenModules)); } else { topology = getApplicationTopologyRecursive(moduleReqName, (Map<String, Object>) modules.get(moduleReqName), topology, modules, groups, appInfoSuitableOptions); double opProfileBetweenModules = YAMLgroupsOptimizerParser.getOpProfileWithModule(elementName, moduleReqName, groups); newelement.addElementCalled( new TopologyElementCalled(topology.getModule(moduleReqName), opProfileBetweenModules)); } } topology.addModule(newelement); return topology; }

Target:
private static Topology getApplicationTopologyRecursive(String elementName, Map<String, Object> element, Topology topology, Map<String, Object> modules, Map<String, Object> groups, SuitableOptions appInfoSuitableOptions) { if (topology.contains(elementName)) { return topology; } TopologyElement newelement = new TopologyElement(elementName); double hostPerformance = appInfoSuitableOptions.getCloudCharacteristics(elementName, YAMLmodulesOptimizerParser.getMeasuredPerformanceHost(elementName, groups)).getPerformance(); boolean elementCanScale = YAMLmodulesOptimizerParser.getScalabilityCapabilitiesOfModule(modules, elementName); newelement.setExecTimeMillis( YAMLmodulesOptimizerParser.getMeasuredExecTimeMillis(elementName, groups) * hostPerformance); newelement.setCanScale(elementCanScale); if (!YAMLmodulesOptimizerParser.moduleHasModuleRequirements(elementName, groups)) { topology.addModule(newelement); return topology; } for (String moduleReqName : YAMLmodulesOptimizerParser.moduleRequirementsOfAModule(elementName, groups)) { if (!topology.contains(moduleReqName)) { topology = getApplicationTopologyRecursive(moduleReqName, (Map<String, Object>) modules.get(moduleReqName), topology, modules, groups, appInfoSuitableOptions); } double opProfileBetweenModules = YAMLgroupsOptimizerParser.getOpProfileWithModule(elementName, moduleReqName, groups); newelement .addElementCalled(new TopologyElementCalled(topology.getModule(moduleReqName), opProfileBetweenModules)); } topology.addModule(newelement); return topology; }