diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CapabiltyRequirementConvertor.java')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CapabiltyRequirementConvertor.java | 37 |
1 files changed, 32 insertions, 5 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CapabiltyRequirementConvertor.java b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CapabiltyRequirementConvertor.java index 3fd5297439..6c4c5fafe1 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CapabiltyRequirementConvertor.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CapabiltyRequirementConvertor.java @@ -122,7 +122,7 @@ public class CapabiltyRequirementConvertor { if (prop.getSchema() != null && prop.getSchema().getProperty() != null) { innerType = prop.getSchema().getProperty().getType(); } - Object convertedValue = PropertyConvertor.getInstance().convertToToscaObject(propertyType, prop.getName(), prop.getValue(), innerType, dataTypes); + Object convertedValue = PropertyConvertor.getInstance().convertToToscaObject(propertyType, prop.getValue(), innerType, dataTypes); return convertedValue; } @@ -183,9 +183,19 @@ public class CapabiltyRequirementConvertor { if (requirements != null) { for (Map.Entry<String, List<RequirementDefinition>> entry : requirements.entrySet()) { entry.getValue().stream().forEach(r -> { - String fullReqName = getRequirementPath(r); + String fullReqName; + String sourceCapName; + if(ToscaUtils.isComplexVfc(component)){ + fullReqName = r.getName(); + sourceCapName = getSourceCvfcDataTypeName(r.getName(), r.getOwnerName()); + } else { + fullReqName = getRequirementPath(r); + sourceCapName = getSubPathByFirstDelimiterAppearance(fullReqName); + } log.debug("the requirement {} belongs to resource {} ", fullReqName, component.getUniqueId()); - toscaRequirements.put(fullReqName, new String[]{r.getOwnerName(), getSubPathByFirstDelimiterAppearance(fullReqName)}); + if(sourceCapName!= null){ + toscaRequirements.put(fullReqName, new String[]{r.getOwnerName(), sourceCapName}); + } }); log.debug("Finish convert Requirements for node type"); } @@ -195,6 +205,13 @@ public class CapabiltyRequirementConvertor { return toscaRequirements; } + private String getSourceCvfcDataTypeName(String name, String ownerName) { + if(name.contains(ownerName)){ + return name.substring(0, name.length() - ownerName.length() - 1); + } + return null; + } + private String getRequirementPath(RequirementDefinition r) { List<String> pathArray = Lists.reverse(r.getPath().stream() .map(path -> ValidationUtils.normalizeComponentInstanceName(getSubPathByLastDelimiterAppearance(path))) @@ -254,9 +271,19 @@ public class CapabiltyRequirementConvertor { if (capabilities != null) { for (Map.Entry<String, List<CapabilityDefinition>> entry : capabilities.entrySet()) { entry.getValue().stream().forEach(c -> { - String fullCapName = getCapabilityPath(c); + String fullCapName; + String sourceReqName; + if(ToscaUtils.isComplexVfc(component)){ + fullCapName = c.getName(); + sourceReqName = getSourceCvfcDataTypeName(c.getName(), c.getOwnerName()); + } else { + fullCapName = getCapabilityPath(c); + sourceReqName = getSubPathByFirstDelimiterAppearance(fullCapName); + } log.debug("the capabilty {} belongs to resource {} ", fullCapName, component.getUniqueId()); - toscaCapabilities.put(fullCapName, new String[]{c.getOwnerName(), getSubPathByFirstDelimiterAppearance(fullCapName)}); + if(sourceReqName!= null){ + toscaCapabilities.put(fullCapName, new String[]{c.getOwnerName(), sourceReqName}); + } }); } } else { |