aboutsummaryrefslogtreecommitdiffstats
path: root/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java')
-rw-r--r--openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java1106
1 files changed, 505 insertions, 601 deletions
diff --git a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java
index 76ef37327e..836b2fedef 100644
--- a/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java
+++ b/openecomp-be/lib/openecomp-sdc-translator-lib/openecomp-sdc-translator-core/src/main/java/org/openecomp/sdc/translator/datatypes/heattotosca/TranslationContext.java
@@ -13,17 +13,23 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
package org.openecomp.sdc.translator.datatypes.heattotosca;
-
-
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.ListMultimap;
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Optional;
+import java.util.Set;
import org.apache.commons.collections.MapUtils;
-
import org.onap.config.api.Configuration;
import org.onap.config.api.ConfigurationManager;
+import org.onap.sdc.tosca.datatypes.model.NodeTemplate;
+import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.core.utilities.CommonMethods;
import org.openecomp.core.utilities.file.FileContentHandler;
import org.openecomp.core.utilities.orchestration.OnboardingTypesEnum;
@@ -32,8 +38,6 @@ import org.openecomp.sdc.datatypes.configuration.ImplementationConfiguration;
import org.openecomp.sdc.heat.datatypes.manifest.FileData;
import org.openecomp.sdc.heat.datatypes.manifest.ManifestFile;
import org.openecomp.sdc.heat.datatypes.model.Resource;
-import org.onap.sdc.tosca.datatypes.model.NodeTemplate;
-import org.onap.sdc.tosca.datatypes.model.ServiceTemplate;
import org.openecomp.sdc.tosca.services.ToscaUtil;
import org.openecomp.sdc.translator.datatypes.heattotosca.to.TranslatedHeatResource;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.composition.UnifiedCompositionEntity;
@@ -41,8 +45,8 @@ import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.compositi
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ComputeConsolidationDataHandler;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationData;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.ConsolidationDataHandler;
-import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortConsolidationDataHandler;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.NestedConsolidationDataHandler;
+import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.PortConsolidationDataHandler;
import org.openecomp.sdc.translator.datatypes.heattotosca.unifiedmodel.consolidation.SubInterfaceConsolidationDataHandler;
import org.openecomp.sdc.translator.services.heattotosca.ConfigConstants;
import org.openecomp.sdc.translator.services.heattotosca.ConsolidationEntityType;
@@ -51,619 +55,519 @@ import org.openecomp.sdc.translator.services.heattotosca.NameExtractor;
import org.openecomp.sdc.translator.services.heattotosca.errors.DuplicateResourceIdsInDifferentFilesErrorBuilder;
import org.openecomp.sdc.translator.services.heattotosca.globaltypes.GlobalTypesGenerator;
-import java.io.InputStream;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Optional;
-import java.util.Set;
-
public class TranslationContext {
- private ManifestFile manifest;
-
-
- private static final Map<String, Map<String, Map<String, String>>> translationMapping;
- private static final Map<String, ServiceTemplate> globalServiceTemplates;
- private static final Map<String, ImplementationConfiguration> nameExtractorImplMap;
- private static final List<String> vfcGroupSubInterfaceExposedProperties;
- private static final List<String> enrichPortResourceProperties;
- private static final ImplementationConfiguration vfcInstanceGroupConfiguration;
-
- private static Map<String, ImplementationConfiguration> supportedConsolidationComputeResources;
- private static Map<String, ImplementationConfiguration> supportedConsolidationPortResources;
-
- private final FileContentHandler files = new FileContentHandler();
- private final Map<String, FileData.Type> manifestFiles = new HashMap<>();
- //Key - file name, value - file type
- private final Set<String> nestedHeatsFiles = new HashSet<>();
- private final FileContentHandler externalArtifacts = new FileContentHandler();
- // Key - heat file name,value - set of heat resource ids which were translated
- private final Map<String, Set<String>> translatedResources = new HashMap<>();
- // Key - heat file name, value - translated Node template id
- private final Map<String, Set<String>> heatStackGroupMembers = new HashMap<>();
- // Key - heat file name, value - Map with Key - heat resource Id, Value - tosca entity template id
- private final Map<String, Map<String, String>> translatedIds = new HashMap<>();
- // key - service template type, value - translated service templates
- private final Map<String, ServiceTemplate> translatedServiceTemplates = new HashMap<>();
- //key - heat param name, value - shared resource data
- private final Map<String, TranslatedHeatResource> heatSharedResourcesByParam = new HashMap<>();
- //key - translated substitute service template file name, value - source nested heat file name
- private final Map<String, String> nestedHeatFileName = new HashMap<>();
- //Key - heat file name,value - Map eith key - heat pseudo param name,
- // value - translated tosca parameter name
- private final Map<String, Map<String, String>> usedHeatPseudoParams = new HashMap<>();
- //Consolidation data gathered for Unified TOSCA model
- private ConsolidationData consolidationData = new ConsolidationData();
- private Map<String, UnifiedSubstitutionData> unifiedSubstitutionData = new HashMap<>();
- private final Set<String> unifiedHandledServiceTemplates = new HashSet<>();
-
- private final Map<String, Map<String, Map<String, Integer>>> requirementIdAppearanceInNodeTemplate = new HashMap<>();
-
- private final Set<String> serviceTemplatesWithoutNodeTemplateSection = new HashSet<>();
-
- private final Set<String> nodeTemplateIdsPointingToStWithoutNodeTemplates = new HashSet<>();
-
- //Key - service template name, value - Map of key: node template id, value: properties with %index%
- private final Map<String, ListMultimap<String, String>> indexVarProperties = new HashMap<>();
-
- static {
- Configuration config = ConfigurationManager.lookup();
- translationMapping =
- config.generateMap(ConfigConstants.MAPPING_NAMESPACE, ConfigConstants.RESOURCE_MAPPING_KEY);
- try {
- globalServiceTemplates =
- GlobalTypesGenerator.getGlobalTypesServiceTemplate(OnboardingTypesEnum.ZIP);
- } catch (Exception exc) {
- throw new RuntimeException("Failed to load GlobalTypes", exc);
- }
- nameExtractorImplMap = config.populateMap(ConfigConstants.TRANSLATOR_NAMESPACE,
- ConfigConstants.NAMING_CONVENTION_EXTRACTOR_IMPL_KEY, ImplementationConfiguration.class);
- supportedConsolidationComputeResources = config.populateMap(ConfigConstants.MANDATORY_UNIFIED_MODEL_NAMESPACE,
- ConfigConstants.SUPPORTED_CONSOLIDATION_COMPUTE_RESOURCES_KEY, ImplementationConfiguration.class);
- supportedConsolidationPortResources = config.populateMap(ConfigConstants.MANDATORY_UNIFIED_MODEL_NAMESPACE,
- ConfigConstants.SUPPORTED_CONSOLIDATION_PORT_RESOURCES_KEY, ImplementationConfiguration.class);
- enrichPortResourceProperties = config.getAsStringValues(ConfigConstants.MANDATORY_UNIFIED_MODEL_NAMESPACE,
- ConfigConstants.ENRICH_PORT_RESOURCE_PROP);
- vfcInstanceGroupConfiguration = getVfcInstanceGroupConfiguration(config);
- vfcGroupSubInterfaceExposedProperties = config.getAsStringValues(ConfigConstants.UNIFIED_MODEL_NAMESPACE,
- ConfigConstants.FULL_EXPOSED_PROPERTIES_KEY);
- }
-
-
- private static ImplementationConfiguration getVfcInstanceGroupConfiguration(Configuration config) {
- Map<String, ImplementationConfiguration> supportedUnifiedModelProperties =
- config.populateMap(ConfigConstants.UNIFIED_MODEL_NAMESPACE, ConfigConstants.UNIFIED_MODEL_IMPL_KEY,
- ImplementationConfiguration.class);
- return MapUtils.isEmpty(supportedUnifiedModelProperties) ? null : supportedUnifiedModelProperties.get(ConfigConstants.VFC_INSTANCE_GROUP_KEY);
- }
-
- public static boolean isVfcInstanceGroupingEnabled() {
- return Objects.nonNull(vfcInstanceGroupConfiguration) && vfcInstanceGroupConfiguration.isEnable();
- }
-
- public static List<String> getExposedVfcInstanceGroupingProperties() {
- return vfcGroupSubInterfaceExposedProperties;
- }
-
- public static List<String> getEnrichPortResourceProperties() {
- return enrichPortResourceProperties;
- }
-
- public static Map<String, ImplementationConfiguration> getSupportedConsolidationComputeResources() {
- return supportedConsolidationComputeResources;
- }
-
- public static void setSupportedConsolidationComputeResources(Map<String, ImplementationConfiguration> supportedConsolidationComputeResources) {
- TranslationContext.supportedConsolidationComputeResources = supportedConsolidationComputeResources;
- }
-
- public static Map<String, ImplementationConfiguration> getSupportedConsolidationPortResources() {
- return supportedConsolidationPortResources;
- }
-
- public static void setSupportedConsolidationPortResources(Map<String, ImplementationConfiguration> supportedConsolidationPortResources) {
- TranslationContext.supportedConsolidationPortResources = supportedConsolidationPortResources;
- }
-
- /**
- * Get nameExtractor implemetation class instance.
- *
- * @param extractorImplKey configuration key for the implementation class
- * @return implemetation class instance
- */
- public static NameExtractor getNameExtractorImpl(String extractorImplKey) {
- String nameExtractorImplClassName = nameExtractorImplMap.get(extractorImplKey).getImplementationClass();
-
- return CommonMethods.newInstance(nameExtractorImplClassName, NameExtractor.class);
- }
-
- public Map<String, UnifiedSubstitutionData> getUnifiedSubstitutionData() {
- return unifiedSubstitutionData;
- }
-
- public void setUnifiedSubstitutionData(Map<String, UnifiedSubstitutionData> unifiedSubstitutionData) {
- this.unifiedSubstitutionData = unifiedSubstitutionData;
- }
-
- public void addCleanedNodeTemplate(String serviceTemplateName, String nodeTemplateId, UnifiedCompositionEntity unifiedCompositionEntity,
- NodeTemplate nodeTemplate) {
- this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
- this.unifiedSubstitutionData.get(serviceTemplateName)
- .addCleanedNodeTemplate(nodeTemplateId, unifiedCompositionEntity, nodeTemplate);
- }
-
- public Optional<List<String>> getIndexVarProperties(String serviceTemplateName, String nodeTemplateId) {
- ListMultimap<String, String> serviceTemplateIndexVarProperties = this.indexVarProperties.get(serviceTemplateName);
- if (Objects.nonNull(serviceTemplateIndexVarProperties)) {
- return Optional.of(this.indexVarProperties.get(serviceTemplateName).get(nodeTemplateId));
- }
- return Optional.empty();
- }
-
- public void addIndexVarProperties(String serviceTemplateName, String nodeTemplateId, List<String> indexVarProperties) {
- this.indexVarProperties.putIfAbsent(serviceTemplateName, ArrayListMultimap.create());
- this.indexVarProperties.get(serviceTemplateName).putAll(nodeTemplateId, indexVarProperties);
- }
-
- public NodeTemplate getCleanedNodeTemplate(String serviceTemplateName, String nodeTemplateId) {
- return this.unifiedSubstitutionData.get(serviceTemplateName).getCleanedNodeTemplate(nodeTemplateId);
- }
-
- public void addUnifiedNestedNodeTemplateId(String serviceTemplateName, String nestedNodeTemplateId, String unifiedNestedNodeTemplateId) {
- this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
- this.unifiedSubstitutionData.get(serviceTemplateName)
- .addUnifiedNestedNodeTemplateId(nestedNodeTemplateId, unifiedNestedNodeTemplateId);
- }
-
- public Optional<String> getUnifiedNestedNodeTemplateId(String serviceTemplateName, String nestedNodeTemplateId) {
- return this.unifiedSubstitutionData.get(serviceTemplateName) == null ? Optional.empty() :
- this.unifiedSubstitutionData.get(serviceTemplateName).getUnifiedNestedNodeTemplateId(nestedNodeTemplateId);
- }
-
- public void addUnifiedNestedNodeTypeId(String serviceTemplateName, String nestedNodeTypeId, String unifiedNestedNodeTypeId) {
- this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
- this.unifiedSubstitutionData.get(serviceTemplateName)
- .addUnifiedNestedNodeTypeId(nestedNodeTypeId, unifiedNestedNodeTypeId);
- }
-
- public Optional<String> getUnifiedNestedNodeTypeId(String serviceTemplateName, String nestedNodeTemplateId) {
- UnifiedSubstitutionData substitutionData = this.unifiedSubstitutionData.get(serviceTemplateName);
- return substitutionData == null ? Optional.empty() :
- substitutionData.getUnifiedNestedNodeTypeId(nestedNodeTemplateId);
- }
-
- public ConsolidationData getConsolidationData() {
- return consolidationData;
- }
-
- public void setConsolidationData(ConsolidationData consolidationData) {
- this.consolidationData = consolidationData;
- }
-
- public Optional<ConsolidationDataHandler> getConsolidationDataHandler(ConsolidationEntityType type) {
- return consolidationData.getConsolidationDataHandler(type);
- }
-
- public ComputeConsolidationDataHandler getComputeConsolidationDataHandler() {
- return consolidationData.getComputeConsolidationDataHandler();
- }
-
- public PortConsolidationDataHandler getPortConsolidationDataHandler() {
- return consolidationData.getPortConsolidationDataHandler();
- }
-
- public NestedConsolidationDataHandler getNestedConsolidationDataHandler() {
- return consolidationData.getNestedConsolidationDataHandler();
- }
-
- public SubInterfaceConsolidationDataHandler getSubInterfaceConsolidationDataHandler() {
- return consolidationData.getSubInterfaceConsolidationDataHandler();
- }
-
- public void addManifestFile(String fileName, FileData.Type fileType) {
- this.manifestFiles.put(fileName, fileType);
- }
-
- public Set<String> getNestedHeatsFiles() {
- return nestedHeatsFiles;
- }
-
- public Map<String, Set<String>> getHeatStackGroupMembers() {
- return heatStackGroupMembers;
- }
-
- public FileContentHandler getFiles() {
- return files;
- }
-
- public void setFiles(Map<String, byte[]> files) {
- this.files.setFiles(files);
- }
-
- public InputStream getFileContentAsStream(final String fileName) {
- return files.getFileContentAsStream(fileName);
- }
-
- public void addFile(String name, byte[] content) {
- files.addFile(name, content);
- }
-
- public ManifestFile getManifest() {
- return manifest;
- }
-
- public void setManifest(ManifestFile manifest) {
- this.manifest = manifest;
- }
-
- public Map<String, Set<String>> getTranslatedResources() {
- return translatedResources;
- }
-
- public Map<String, Map<String, String>> getTranslatedIds() {
- return translatedIds;
- }
-
- public Set<String> getAllTranslatedResourceIdsFromDiffNestedFiles(String
- nestedHeatFileNameToSkip) {
- Set<String> allTranslatedResourceIds = new HashSet<>();
-
- this.translatedIds.entrySet().stream().filter(
- heatFileNameToTranslatedIdsEntry -> !heatFileNameToTranslatedIdsEntry.getKey()
- .equals(nestedHeatFileNameToSkip)).forEach(heatFileNameToTranslatedIdsEntry ->
- allTranslatedResourceIds.addAll(heatFileNameToTranslatedIdsEntry.getValue().keySet())
- );
+ private ManifestFile manifest;
+ private static final Map<String, Map<String, Map<String, String>>> translationMapping;
+ private static final Map<String, ServiceTemplate> globalServiceTemplates;
+ private static final Map<String, ImplementationConfiguration> nameExtractorImplMap;
+ private static final List<String> vfcGroupSubInterfaceExposedProperties;
+ private static final List<String> enrichPortResourceProperties;
+ private static final ImplementationConfiguration vfcInstanceGroupConfiguration;
+ private static Map<String, ImplementationConfiguration> supportedConsolidationComputeResources;
+ private static Map<String, ImplementationConfiguration> supportedConsolidationPortResources;
+ private final FileContentHandler files = new FileContentHandler();
+ private final Map<String, FileData.Type> manifestFiles = new HashMap<>();
+ //Key - file name, value - file type
+ private final Set<String> nestedHeatsFiles = new HashSet<>();
+ private final FileContentHandler externalArtifacts = new FileContentHandler();
+ // Key - heat file name,value - set of heat resource ids which were translated
+ private final Map<String, Set<String>> translatedResources = new HashMap<>();
+ // Key - heat file name, value - translated Node template id
+ private final Map<String, Set<String>> heatStackGroupMembers = new HashMap<>();
+ // Key - heat file name, value - Map with Key - heat resource Id, Value - tosca entity template id
+ private final Map<String, Map<String, String>> translatedIds = new HashMap<>();
+ // key - service template type, value - translated service templates
+ private final Map<String, ServiceTemplate> translatedServiceTemplates = new HashMap<>();
+ //key - heat param name, value - shared resource data
+ private final Map<String, TranslatedHeatResource> heatSharedResourcesByParam = new HashMap<>();
+ //key - translated substitute service template file name, value - source nested heat file name
+ private final Map<String, String> nestedHeatFileName = new HashMap<>();
+ //Key - heat file name,value - Map eith key - heat pseudo param name,
+
+ // value - translated tosca parameter name
+ private final Map<String, Map<String, String>> usedHeatPseudoParams = new HashMap<>();
+ //Consolidation data gathered for Unified TOSCA model
+ private ConsolidationData consolidationData = new ConsolidationData();
+ private Map<String, UnifiedSubstitutionData> unifiedSubstitutionData = new HashMap<>();
+ private final Set<String> unifiedHandledServiceTemplates = new HashSet<>();
+ private final Map<String, Map<String, Map<String, Integer>>> requirementIdAppearanceInNodeTemplate = new HashMap<>();
+ private final Set<String> serviceTemplatesWithoutNodeTemplateSection = new HashSet<>();
+ private final Set<String> nodeTemplateIdsPointingToStWithoutNodeTemplates = new HashSet<>();
+ //Key - service template name, value - Map of key: node template id, value: properties with %index%
+ private final Map<String, ListMultimap<String, String>> indexVarProperties = new HashMap<>();
+
+ static {
+ Configuration config = ConfigurationManager.lookup();
+ translationMapping = config.generateMap(ConfigConstants.MAPPING_NAMESPACE, ConfigConstants.RESOURCE_MAPPING_KEY);
+ try {
+ globalServiceTemplates = GlobalTypesGenerator.getGlobalTypesServiceTemplate(OnboardingTypesEnum.ZIP);
+ } catch (Exception exc) {
+ throw new RuntimeException("Failed to load GlobalTypes", exc);
+ }
+ nameExtractorImplMap = config.populateMap(ConfigConstants.TRANSLATOR_NAMESPACE, ConfigConstants.NAMING_CONVENTION_EXTRACTOR_IMPL_KEY,
+ ImplementationConfiguration.class);
+ supportedConsolidationComputeResources = config
+ .populateMap(ConfigConstants.MANDATORY_UNIFIED_MODEL_NAMESPACE, ConfigConstants.SUPPORTED_CONSOLIDATION_COMPUTE_RESOURCES_KEY,
+ ImplementationConfiguration.class);
+ supportedConsolidationPortResources = config
+ .populateMap(ConfigConstants.MANDATORY_UNIFIED_MODEL_NAMESPACE, ConfigConstants.SUPPORTED_CONSOLIDATION_PORT_RESOURCES_KEY,
+ ImplementationConfiguration.class);
+ enrichPortResourceProperties = config
+ .getAsStringValues(ConfigConstants.MANDATORY_UNIFIED_MODEL_NAMESPACE, ConfigConstants.ENRICH_PORT_RESOURCE_PROP);
+ vfcInstanceGroupConfiguration = getVfcInstanceGroupConfiguration(config);
+ vfcGroupSubInterfaceExposedProperties = config
+ .getAsStringValues(ConfigConstants.UNIFIED_MODEL_NAMESPACE, ConfigConstants.FULL_EXPOSED_PROPERTIES_KEY);
+ }
+
+ private static ImplementationConfiguration getVfcInstanceGroupConfiguration(Configuration config) {
+ Map<String, ImplementationConfiguration> supportedUnifiedModelProperties = config
+ .populateMap(ConfigConstants.UNIFIED_MODEL_NAMESPACE, ConfigConstants.UNIFIED_MODEL_IMPL_KEY, ImplementationConfiguration.class);
+ return MapUtils.isEmpty(supportedUnifiedModelProperties) ? null : supportedUnifiedModelProperties.get(ConfigConstants.VFC_INSTANCE_GROUP_KEY);
+ }
+
+ public static boolean isVfcInstanceGroupingEnabled() {
+ return Objects.nonNull(vfcInstanceGroupConfiguration) && vfcInstanceGroupConfiguration.isEnable();
+ }
+
+ public static List<String> getExposedVfcInstanceGroupingProperties() {
+ return vfcGroupSubInterfaceExposedProperties;
+ }
+
+ public static List<String> getEnrichPortResourceProperties() {
+ return enrichPortResourceProperties;
+ }
+
+ public static Map<String, ImplementationConfiguration> getSupportedConsolidationComputeResources() {
+ return supportedConsolidationComputeResources;
+ }
+
+ public static void setSupportedConsolidationComputeResources(Map<String, ImplementationConfiguration> supportedConsolidationComputeResources) {
+ TranslationContext.supportedConsolidationComputeResources = supportedConsolidationComputeResources;
+ }
+
+ public static Map<String, ImplementationConfiguration> getSupportedConsolidationPortResources() {
+ return supportedConsolidationPortResources;
+ }
+
+ public static void setSupportedConsolidationPortResources(Map<String, ImplementationConfiguration> supportedConsolidationPortResources) {
+ TranslationContext.supportedConsolidationPortResources = supportedConsolidationPortResources;
+ }
+
+ /**
+ * Get nameExtractor implemetation class instance.
+ *
+ * @param extractorImplKey configuration key for the implementation class
+ * @return implemetation class instance
+ */
+ public static NameExtractor getNameExtractorImpl(String extractorImplKey) {
+ String nameExtractorImplClassName = nameExtractorImplMap.get(extractorImplKey).getImplementationClass();
+ return CommonMethods.newInstance(nameExtractorImplClassName, NameExtractor.class);
+ }
+
+ public Map<String, UnifiedSubstitutionData> getUnifiedSubstitutionData() {
+ return unifiedSubstitutionData;
+ }
+
+ public void setUnifiedSubstitutionData(Map<String, UnifiedSubstitutionData> unifiedSubstitutionData) {
+ this.unifiedSubstitutionData = unifiedSubstitutionData;
+ }
+
+ public void addCleanedNodeTemplate(String serviceTemplateName, String nodeTemplateId, UnifiedCompositionEntity unifiedCompositionEntity,
+ NodeTemplate nodeTemplate) {
+ this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
+ this.unifiedSubstitutionData.get(serviceTemplateName).addCleanedNodeTemplate(nodeTemplateId, unifiedCompositionEntity, nodeTemplate);
+ }
+
+ public Optional<List<String>> getIndexVarProperties(String serviceTemplateName, String nodeTemplateId) {
+ ListMultimap<String, String> serviceTemplateIndexVarProperties = this.indexVarProperties.get(serviceTemplateName);
+ if (Objects.nonNull(serviceTemplateIndexVarProperties)) {
+ return Optional.of(this.indexVarProperties.get(serviceTemplateName).get(nodeTemplateId));
+ }
+ return Optional.empty();
+ }
+
+ public void addIndexVarProperties(String serviceTemplateName, String nodeTemplateId, List<String> indexVarProperties) {
+ this.indexVarProperties.putIfAbsent(serviceTemplateName, ArrayListMultimap.create());
+ this.indexVarProperties.get(serviceTemplateName).putAll(nodeTemplateId, indexVarProperties);
+ }
+
+ public NodeTemplate getCleanedNodeTemplate(String serviceTemplateName, String nodeTemplateId) {
+ return this.unifiedSubstitutionData.get(serviceTemplateName).getCleanedNodeTemplate(nodeTemplateId);
+ }
+
+ public void addUnifiedNestedNodeTemplateId(String serviceTemplateName, String nestedNodeTemplateId, String unifiedNestedNodeTemplateId) {
+ this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
+ this.unifiedSubstitutionData.get(serviceTemplateName).addUnifiedNestedNodeTemplateId(nestedNodeTemplateId, unifiedNestedNodeTemplateId);
+ }
+
+ public Optional<String> getUnifiedNestedNodeTemplateId(String serviceTemplateName, String nestedNodeTemplateId) {
+ return this.unifiedSubstitutionData.get(serviceTemplateName) == null ? Optional.empty()
+ : this.unifiedSubstitutionData.get(serviceTemplateName).getUnifiedNestedNodeTemplateId(nestedNodeTemplateId);
+ }
+
+ public void addUnifiedNestedNodeTypeId(String serviceTemplateName, String nestedNodeTypeId, String unifiedNestedNodeTypeId) {
+ this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
+ this.unifiedSubstitutionData.get(serviceTemplateName).addUnifiedNestedNodeTypeId(nestedNodeTypeId, unifiedNestedNodeTypeId);
+ }
- return allTranslatedResourceIds;
- }
+ public Optional<String> getUnifiedNestedNodeTypeId(String serviceTemplateName, String nestedNodeTemplateId) {
+ UnifiedSubstitutionData substitutionData = this.unifiedSubstitutionData.get(serviceTemplateName);
+ return substitutionData == null ? Optional.empty() : substitutionData.getUnifiedNestedNodeTypeId(nestedNodeTemplateId);
+ }
- // get tosca name from mapping configuration file
- //element type - parameter/attribute
- // element name - heat parameter/attribute name
- //return value - tosca parameter/attribute name
- public String getElementMapping(String resourceType, String elementType, String elementName) {
- if (Objects.isNull(translationMapping.get(resourceType))) {
- return null;
- }
- if (Objects.isNull(translationMapping.get(resourceType).get(elementType))) {
- return null;
- }
- return translationMapping.get(resourceType).get(elementType).get(elementName);
- }
-
- public Map<String, String> getElementMapping(String resourceType, String elementType) {
- if (Objects.isNull(translationMapping.get(resourceType))) {
- return null;
- }
- return translationMapping.get(resourceType).get(elementType);
- }
+ public ConsolidationData getConsolidationData() {
+ return consolidationData;
+ }
- public Set<String> getElementSet(String resourceType, String elementType) {
- if (Objects.isNull(translationMapping.get(resourceType))) {
- return new HashSet<>();
+ public void setConsolidationData(ConsolidationData consolidationData) {
+ this.consolidationData = consolidationData;
}
- if (Objects.isNull(translationMapping.get(resourceType).get(elementType))) {
- return new HashSet<>();
+
+ public Optional<ConsolidationDataHandler> getConsolidationDataHandler(ConsolidationEntityType type) {
+ return consolidationData.getConsolidationDataHandler(type);
}
- return translationMapping.get(resourceType).get(elementType).keySet();
- }
- public Map<String, ServiceTemplate> getTranslatedServiceTemplates() {
- return translatedServiceTemplates;
- }
-
- public ServiceTemplate getGlobalSubstitutionServiceTemplate() {
- return getTranslatedServiceTemplates().get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
- }
-
- public FileContentHandler getExternalArtifacts() {
- return externalArtifacts;
- }
-
- public void addExternalArtifacts(String name, byte[] content) {
- this.externalArtifacts.addFile(name, content);
- }
-
- public Map<String, TranslatedHeatResource> getHeatSharedResourcesByParam() {
- return heatSharedResourcesByParam;
- }
-
- public void addHeatSharedResourcesByParam(String parameterName, String resourceId,
- Resource resource) {
- this.addHeatSharedResourcesByParam(parameterName,
- new TranslatedHeatResource(resourceId, resource));
- }
-
- private void addHeatSharedResourcesByParam(String parameterName,
- TranslatedHeatResource translatedHeatResource) {
- this.heatSharedResourcesByParam.put(parameterName, translatedHeatResource);
- }
-
- public Map<String, ServiceTemplate> getGlobalServiceTemplates() {
- return globalServiceTemplates;
- }
-
- public Map<String, String> getNestedHeatFileName() {
- return nestedHeatFileName;
- }
-
- public void addNestedHeatFileName(String substituteServiceTempalteName,
- String nestedHeatFileName) {
- this.nestedHeatFileName.put(substituteServiceTempalteName, nestedHeatFileName);
- }
-
- public Map<String, Map<String, String>> getUsedHeatPseudoParams() {
- return usedHeatPseudoParams;
- }
-
- public void addUsedHeatPseudoParams(String heatFileName, String heatPseudoParam, String
- translatedToscaParam) {
- if (Objects.isNull(this.usedHeatPseudoParams.get(heatFileName))) {
- this.usedHeatPseudoParams.put(heatFileName, new HashMap<>());
- }
- this.usedHeatPseudoParams.get(heatFileName).put(heatPseudoParam, translatedToscaParam);
- }
-
- public Set<String> getTranslatedResourceIdsFromOtherFiles(String fileNameToIgnore){
- if(MapUtils.isEmpty(this.translatedResources)){
- return new HashSet<>();
- }
-
- Set<String> translatedResourceIds = new HashSet<>();
-
- this.translatedResources.entrySet().stream().filter(entry -> !entry.getKey().equals(fileNameToIgnore))
- .forEach(entry -> translatedResourceIds.addAll(entry.getValue()));
-
- return translatedResourceIds;
- }
-
- /**
- * Add the unified substitution data info in context. Contains a mapping of original node
- * template id and the new node template id in the abstract substitute
- *
- * @param serviceTemplateFileName the service template file name
- * @param originalNodeTemplateId the original node template id
- * @param abstractNodeTemplateId the node template id in the abstract substitute
- */
- public void addUnifiedSubstitutionData(String serviceTemplateFileName,
- String originalNodeTemplateId,
- String abstractNodeTemplateId) {
-
- Map<String, String> nodeAbstractNodeTemplateIdMap = this.getUnifiedSubstitutionData()
- .computeIfAbsent(serviceTemplateFileName, k -> new UnifiedSubstitutionData())
- .getNodesRelatedAbstractNode();
-
- if (nodeAbstractNodeTemplateIdMap == null) {
- nodeAbstractNodeTemplateIdMap = new HashMap<>();
- }
-
- if(nodeAbstractNodeTemplateIdMap.containsKey(originalNodeTemplateId)){
- throw new CoreException(new DuplicateResourceIdsInDifferentFilesErrorBuilder(originalNodeTemplateId).build());
- }
- nodeAbstractNodeTemplateIdMap.put(originalNodeTemplateId, abstractNodeTemplateId);
- this.getUnifiedSubstitutionData().get(serviceTemplateFileName).setNodesRelatedAbstractNode(
- nodeAbstractNodeTemplateIdMap);
- }
-
- /**
- * Add the unified substitution data info in context. Contains a mapping of original node
- * template id and the new node template id in the abstract substitute
- *
- * @param serviceTemplateFileName the service template file name
- * @param originalNodeTemplateId the original node template id
- * @param substitutionServiceTemplateNodeTemplateId the node template id in the substitution
- * service template
- */
- public void addSubstitutionServiceTemplateUnifiedSubstitutionData(
- String serviceTemplateFileName,
- String originalNodeTemplateId,
- String substitutionServiceTemplateNodeTemplateId) {
-
- Map<String, String> nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap = this
- .getUnifiedSubstitutionData()
- .computeIfAbsent(serviceTemplateFileName, k -> new UnifiedSubstitutionData())
- .getNodesRelatedSubstitutionServiceTemplateNode();
-
- if (nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap == null) {
- nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap = new HashMap<>();
- }
- nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap.put(originalNodeTemplateId,
- substitutionServiceTemplateNodeTemplateId);
- this.getUnifiedSubstitutionData().get(serviceTemplateFileName)
- .setNodesRelatedSubstitutionServiceTemplateNode(
- nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap);
- }
-
- /**
- * Get unified abstract node template which is mapped to the input node template id.
- *
- * @param serviceTemplate the service template
- * @param nodeTemplateId the node template id
- */
- public String getUnifiedAbstractNodeTemplateId(ServiceTemplate serviceTemplate,
- String nodeTemplateId) {
- UnifiedSubstitutionData unifiedSubsData =
- this.unifiedSubstitutionData.get(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
- return unifiedSubsData.getNodesRelatedAbstractNode().get(nodeTemplateId);
- }
-
- /**
- * Get unified node template in the substitution service template which is mapped to the
- * original input node template id.
- *
- * @param serviceTemplate the service template
- * @param nodeTemplateId the node template id
- */
- public String getUnifiedSubstitutionNodeTemplateId(ServiceTemplate serviceTemplate,
- String nodeTemplateId) {
- UnifiedSubstitutionData unifiedSubsData =
- this.unifiedSubstitutionData.get(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
- return unifiedSubsData.getNodesRelatedSubstitutionServiceTemplateNode()
- .get(nodeTemplateId);
- }
-
- public int getHandledNestedComputeNodeTemplateIndex(String serviceTemplateName,
- String computeType) {
- return this.unifiedSubstitutionData.get(serviceTemplateName)
- .getHandledNestedComputeNodeTemplateIndex(computeType);
- }
-
- public void updateHandledComputeType(String serviceTemplateName,
- String handledComputeType,
- String nestedServiceTemplateFileName) {
- String globalSTName =
- ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
- this.unifiedSubstitutionData.putIfAbsent(
- globalSTName, new UnifiedSubstitutionData());
- this.unifiedSubstitutionData.get(globalSTName)
- .addHandledComputeType(handledComputeType);
- this.unifiedSubstitutionData.get(globalSTName).addHandlesNestedServiceTemplate(nestedServiceTemplateFileName);
-
- this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
- this.unifiedSubstitutionData.get(serviceTemplateName).addHandlesNestedServiceTemplate(nestedServiceTemplateFileName);
- }
-
- public void addHandledComputeTypeInServiceTemplate(String serviceTemplateName,
- String handledComputeType){
- this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
- this.unifiedSubstitutionData.get(serviceTemplateName).addHandledComputeType(handledComputeType);
- }
-
- public boolean isComputeTypeHandledInServiceTemplate(String serviceTemplateName,
- String computeType) {
- return !Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))
- && this.unifiedSubstitutionData.get(serviceTemplateName)
- .isComputeTypeHandledInServiceTemplate(computeType);
- }
-
- public boolean isNestedServiceTemplateWasHandled(String serviceTemplateName,
- String nestedServiceTemplateFileName) {
- if (Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))) {
- return false;
- }
- return this.unifiedSubstitutionData.get(serviceTemplateName)
- .isNestedServiceTemplateWasHandled(nestedServiceTemplateFileName);
- }
-
- public Set<String> getAllRelatedNestedNodeTypeIds() {
- String globalName = "GlobalSubstitutionTypes";
- if (Objects.isNull(this.unifiedSubstitutionData)
- || Objects.isNull(this.unifiedSubstitutionData.get(globalName))) {
- return new HashSet<>();
- }
-
- return this.unifiedSubstitutionData.get(globalName).getAllRelatedNestedNodeTypeIds();
- }
-
- public boolean isUnifiedHandledServiceTemplate(ServiceTemplate serviceTemplate) {
- String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
- return unifiedHandledServiceTemplates.contains(serviceTemplateFileName);
- }
-
-
-
- public void addUnifiedHandledServiceTeamplte(ServiceTemplate serviceTemplate) {
- String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
- this.unifiedHandledServiceTemplates.add(serviceTemplateFileName);
- }
-
- public boolean isNestedNodeWasHandled(String serviceTemplateName,
- String nestedNodeTemplateId) {
- if (Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))) {
- return false;
- }
- return this.unifiedSubstitutionData.get(serviceTemplateName)
- .isNestedNodeWasHandled(nestedNodeTemplateId);
- }
-
- public void addNestedNodeAsHandled(String serviceTemplateName,
- String nestedNodeTemplateId) {
- this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
- this.unifiedSubstitutionData.get(serviceTemplateName)
- .addHandledNestedNodes(nestedNodeTemplateId);
- }
-
- public void updateUsedTimesForNestedComputeNodeType(String serviceTemplateName,
- String computeType) {
- this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
-
- this.unifiedSubstitutionData.get(serviceTemplateName)
- .updateUsedTimesForNestedComputeNodeType(computeType);
- }
-
- public int getGlobalNodeTypeIndex(String serviceTemplateName,
- String computeType) {
- if (Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))) {
- return 0;
- }
- return this.unifiedSubstitutionData.get(serviceTemplateName).getGlobalNodeTypeIndex
- (computeType);
- }
-
- public void addNewPropertyIdToNodeTemplate(String serviceTemplateName,
- String newPropertyId,
- Object origPropertyValue){
- this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
- this.unifiedSubstitutionData.get(serviceTemplateName).addNewPropertyIdToNodeTemplate(
- newPropertyId, origPropertyValue);
- }
-
- public Optional<Object> getNewPropertyInputParamId(String serviceTemplateName,
- String newPropertyId){
- if(Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))){
- return Optional.empty();
- }
-
- return this.unifiedSubstitutionData.get(serviceTemplateName).getNewPropertyInputParam
- (newPropertyId);
- }
+ public ComputeConsolidationDataHandler getComputeConsolidationDataHandler() {
+ return consolidationData.getComputeConsolidationDataHandler();
+ }
- public Map<String, Object> getAllNewPropertyInputParamIdsPerNodeTenplateId(String serviceTemplateName){
- if(Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))){
- return new HashMap<>();
+ public PortConsolidationDataHandler getPortConsolidationDataHandler() {
+ return consolidationData.getPortConsolidationDataHandler();
}
- return this.unifiedSubstitutionData.get(serviceTemplateName).getAllNewPropertyInputParamIds();
+ public NestedConsolidationDataHandler getNestedConsolidationDataHandler() {
+ return consolidationData.getNestedConsolidationDataHandler();
+ }
- }
+ public SubInterfaceConsolidationDataHandler getSubInterfaceConsolidationDataHandler() {
+ return consolidationData.getSubInterfaceConsolidationDataHandler();
+ }
- public boolean isServiceTemplateWithoutNodeTemplatesSection(String serviceTemplateName){
- return Objects.nonNull(serviceTemplateName)
- && serviceTemplatesWithoutNodeTemplateSection.contains(serviceTemplateName);
- }
+ public void addManifestFile(String fileName, FileData.Type fileType) {
+ this.manifestFiles.put(fileName, fileType);
+ }
- public void addServiceTemplateWithoutNodeTemplates(String serviceTemplateName){
- this.serviceTemplatesWithoutNodeTemplateSection.add(serviceTemplateName);
- }
+ public Set<String> getNestedHeatsFiles() {
+ return nestedHeatsFiles;
+ }
- public void addNestedNodeTemplateIdPointsToStWithoutNodeTemplates(String nodeTemplateId){
- this.nodeTemplateIdsPointingToStWithoutNodeTemplates.add(nodeTemplateId);
- }
+ public Map<String, Set<String>> getHeatStackGroupMembers() {
+ return heatStackGroupMembers;
+ }
- public boolean isNodeTemplateIdPointsToStWithoutNodeTemplates(String nodeTemplateId){
- return Objects.nonNull(nodeTemplateId)
- && nodeTemplateIdsPointingToStWithoutNodeTemplates.contains(nodeTemplateId);
- }
+ public FileContentHandler getFiles() {
+ return files;
+ }
- public void updateRequirementAssignmentIdIndex(String serviceTemplateName,
- String nodeTemplateId,
- String requirementId){
- requirementIdAppearanceInNodeTemplate.putIfAbsent(serviceTemplateName, new HashMap<>());
- requirementIdAppearanceInNodeTemplate
- .get(serviceTemplateName).putIfAbsent(nodeTemplateId, new HashMap<>());
+ public void setFiles(Map<String, byte[]> files) {
+ this.files.setFiles(files);
+ }
+
+ public InputStream getFileContentAsStream(final String fileName) {
+ return files.getFileContentAsStream(fileName);
+ }
+
+ public void addFile(String name, byte[] content) {
+ files.addFile(name, content);
+ }
- Map<String, Integer> requirementIdToAppearance =
- requirementIdAppearanceInNodeTemplate.get(serviceTemplateName).get(nodeTemplateId);
+ public ManifestFile getManifest() {
+ return manifest;
+ }
+
+ public void setManifest(ManifestFile manifest) {
+ this.manifest = manifest;
+ }
+
+ public Map<String, Set<String>> getTranslatedResources() {
+ return translatedResources;
+ }
- if(requirementIdToAppearance.containsKey(requirementId)){
- requirementIdToAppearance
- .put(requirementId, requirementIdToAppearance.get(requirementId) + 1);
- } else {
- requirementIdToAppearance.put(requirementId, 0);
+ public Map<String, Map<String, String>> getTranslatedIds() {
+ return translatedIds;
}
- }
+ public Set<String> getAllTranslatedResourceIdsFromDiffNestedFiles(String nestedHeatFileNameToSkip) {
+ Set<String> allTranslatedResourceIds = new HashSet<>();
+ this.translatedIds.entrySet().stream()
+ .filter(heatFileNameToTranslatedIdsEntry -> !heatFileNameToTranslatedIdsEntry.getKey().equals(nestedHeatFileNameToSkip))
+ .forEach(heatFileNameToTranslatedIdsEntry -> allTranslatedResourceIds.addAll(heatFileNameToTranslatedIdsEntry.getValue().keySet()));
+ return allTranslatedResourceIds;
+ }
+ // get tosca name from mapping configuration file
+
+ //element type - parameter/attribute
+
+ // element name - heat parameter/attribute name
+
+ //return value - tosca parameter/attribute name
+ public String getElementMapping(String resourceType, String elementType, String elementName) {
+ if (Objects.isNull(translationMapping.get(resourceType))) {
+ return null;
+ }
+ if (Objects.isNull(translationMapping.get(resourceType).get(elementType))) {
+ return null;
+ }
+ return translationMapping.get(resourceType).get(elementType).get(elementName);
+ }
+
+ public Map<String, String> getElementMapping(String resourceType, String elementType) {
+ if (Objects.isNull(translationMapping.get(resourceType))) {
+ return null;
+ }
+ return translationMapping.get(resourceType).get(elementType);
+ }
+
+ public Set<String> getElementSet(String resourceType, String elementType) {
+ if (Objects.isNull(translationMapping.get(resourceType))) {
+ return new HashSet<>();
+ }
+ if (Objects.isNull(translationMapping.get(resourceType).get(elementType))) {
+ return new HashSet<>();
+ }
+ return translationMapping.get(resourceType).get(elementType).keySet();
+ }
+
+ public Map<String, ServiceTemplate> getTranslatedServiceTemplates() {
+ return translatedServiceTemplates;
+ }
+
+ public ServiceTemplate getGlobalSubstitutionServiceTemplate() {
+ return getTranslatedServiceTemplates().get(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
+ }
+
+ public FileContentHandler getExternalArtifacts() {
+ return externalArtifacts;
+ }
+
+ public void addExternalArtifacts(String name, byte[] content) {
+ this.externalArtifacts.addFile(name, content);
+ }
+
+ public Map<String, TranslatedHeatResource> getHeatSharedResourcesByParam() {
+ return heatSharedResourcesByParam;
+ }
+
+ public void addHeatSharedResourcesByParam(String parameterName, String resourceId, Resource resource) {
+ this.addHeatSharedResourcesByParam(parameterName, new TranslatedHeatResource(resourceId, resource));
+ }
+
+ private void addHeatSharedResourcesByParam(String parameterName, TranslatedHeatResource translatedHeatResource) {
+ this.heatSharedResourcesByParam.put(parameterName, translatedHeatResource);
+ }
+
+ public Map<String, ServiceTemplate> getGlobalServiceTemplates() {
+ return globalServiceTemplates;
+ }
+
+ public Map<String, String> getNestedHeatFileName() {
+ return nestedHeatFileName;
+ }
+
+ public void addNestedHeatFileName(String substituteServiceTempalteName, String nestedHeatFileName) {
+ this.nestedHeatFileName.put(substituteServiceTempalteName, nestedHeatFileName);
+ }
+
+ public Map<String, Map<String, String>> getUsedHeatPseudoParams() {
+ return usedHeatPseudoParams;
+ }
+
+ public void addUsedHeatPseudoParams(String heatFileName, String heatPseudoParam, String translatedToscaParam) {
+ if (Objects.isNull(this.usedHeatPseudoParams.get(heatFileName))) {
+ this.usedHeatPseudoParams.put(heatFileName, new HashMap<>());
+ }
+ this.usedHeatPseudoParams.get(heatFileName).put(heatPseudoParam, translatedToscaParam);
+ }
+
+ public Set<String> getTranslatedResourceIdsFromOtherFiles(String fileNameToIgnore) {
+ if (MapUtils.isEmpty(this.translatedResources)) {
+ return new HashSet<>();
+ }
+ Set<String> translatedResourceIds = new HashSet<>();
+ this.translatedResources.entrySet().stream().filter(entry -> !entry.getKey().equals(fileNameToIgnore))
+ .forEach(entry -> translatedResourceIds.addAll(entry.getValue()));
+ return translatedResourceIds;
+ }
+
+ /**
+ * Add the unified substitution data info in context. Contains a mapping of original node template id and the new node template id in the abstract
+ * substitute
+ *
+ * @param serviceTemplateFileName the service template file name
+ * @param originalNodeTemplateId the original node template id
+ * @param abstractNodeTemplateId the node template id in the abstract substitute
+ */
+ public void addUnifiedSubstitutionData(String serviceTemplateFileName, String originalNodeTemplateId, String abstractNodeTemplateId) {
+ Map<String, String> nodeAbstractNodeTemplateIdMap = this.getUnifiedSubstitutionData()
+ .computeIfAbsent(serviceTemplateFileName, k -> new UnifiedSubstitutionData()).getNodesRelatedAbstractNode();
+ if (nodeAbstractNodeTemplateIdMap == null) {
+ nodeAbstractNodeTemplateIdMap = new HashMap<>();
+ }
+ if (nodeAbstractNodeTemplateIdMap.containsKey(originalNodeTemplateId)) {
+ throw new CoreException(new DuplicateResourceIdsInDifferentFilesErrorBuilder(originalNodeTemplateId).build());
+ }
+ nodeAbstractNodeTemplateIdMap.put(originalNodeTemplateId, abstractNodeTemplateId);
+ this.getUnifiedSubstitutionData().get(serviceTemplateFileName).setNodesRelatedAbstractNode(nodeAbstractNodeTemplateIdMap);
+ }
+
+ /**
+ * Add the unified substitution data info in context. Contains a mapping of original node template id and the new node template id in the abstract
+ * substitute
+ *
+ * @param serviceTemplateFileName the service template file name
+ * @param originalNodeTemplateId the original node template id
+ * @param substitutionServiceTemplateNodeTemplateId the node template id in the substitution service template
+ */
+ public void addSubstitutionServiceTemplateUnifiedSubstitutionData(String serviceTemplateFileName, String originalNodeTemplateId,
+ String substitutionServiceTemplateNodeTemplateId) {
+ Map<String, String> nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap = this.getUnifiedSubstitutionData()
+ .computeIfAbsent(serviceTemplateFileName, k -> new UnifiedSubstitutionData()).getNodesRelatedSubstitutionServiceTemplateNode();
+ if (nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap == null) {
+ nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap = new HashMap<>();
+ }
+ nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap.put(originalNodeTemplateId, substitutionServiceTemplateNodeTemplateId);
+ this.getUnifiedSubstitutionData().get(serviceTemplateFileName)
+ .setNodesRelatedSubstitutionServiceTemplateNode(nodesRelatedSubstitutionServiceTemplateNodeTemplateIdMap);
+ }
+
+ /**
+ * Get unified abstract node template which is mapped to the input node template id.
+ *
+ * @param serviceTemplate the service template
+ * @param nodeTemplateId the node template id
+ */
+ public String getUnifiedAbstractNodeTemplateId(ServiceTemplate serviceTemplate, String nodeTemplateId) {
+ UnifiedSubstitutionData unifiedSubsData = this.unifiedSubstitutionData.get(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
+ return unifiedSubsData.getNodesRelatedAbstractNode().get(nodeTemplateId);
+ }
+
+ /**
+ * Get unified node template in the substitution service template which is mapped to the original input node template id.
+ *
+ * @param serviceTemplate the service template
+ * @param nodeTemplateId the node template id
+ */
+ public String getUnifiedSubstitutionNodeTemplateId(ServiceTemplate serviceTemplate, String nodeTemplateId) {
+ UnifiedSubstitutionData unifiedSubsData = this.unifiedSubstitutionData.get(ToscaUtil.getServiceTemplateFileName(serviceTemplate));
+ return unifiedSubsData.getNodesRelatedSubstitutionServiceTemplateNode().get(nodeTemplateId);
+ }
+
+ public int getHandledNestedComputeNodeTemplateIndex(String serviceTemplateName, String computeType) {
+ return this.unifiedSubstitutionData.get(serviceTemplateName).getHandledNestedComputeNodeTemplateIndex(computeType);
+ }
+
+ public void updateHandledComputeType(String serviceTemplateName, String handledComputeType, String nestedServiceTemplateFileName) {
+ String globalSTName = ToscaUtil.getServiceTemplateFileName(Constants.GLOBAL_SUBSTITUTION_TYPES_TEMPLATE_NAME);
+ this.unifiedSubstitutionData.putIfAbsent(globalSTName, new UnifiedSubstitutionData());
+ this.unifiedSubstitutionData.get(globalSTName).addHandledComputeType(handledComputeType);
+ this.unifiedSubstitutionData.get(globalSTName).addHandlesNestedServiceTemplate(nestedServiceTemplateFileName);
+ this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
+ this.unifiedSubstitutionData.get(serviceTemplateName).addHandlesNestedServiceTemplate(nestedServiceTemplateFileName);
+ }
+
+ public void addHandledComputeTypeInServiceTemplate(String serviceTemplateName, String handledComputeType) {
+ this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
+ this.unifiedSubstitutionData.get(serviceTemplateName).addHandledComputeType(handledComputeType);
+ }
+
+ public boolean isComputeTypeHandledInServiceTemplate(String serviceTemplateName, String computeType) {
+ return !Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName)) && this.unifiedSubstitutionData.get(serviceTemplateName)
+ .isComputeTypeHandledInServiceTemplate(computeType);
+ }
+
+ public boolean isNestedServiceTemplateWasHandled(String serviceTemplateName, String nestedServiceTemplateFileName) {
+ if (Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))) {
+ return false;
+ }
+ return this.unifiedSubstitutionData.get(serviceTemplateName).isNestedServiceTemplateWasHandled(nestedServiceTemplateFileName);
+ }
+
+ public Set<String> getAllRelatedNestedNodeTypeIds() {
+ String globalName = "GlobalSubstitutionTypes";
+ if (Objects.isNull(this.unifiedSubstitutionData) || Objects.isNull(this.unifiedSubstitutionData.get(globalName))) {
+ return new HashSet<>();
+ }
+ return this.unifiedSubstitutionData.get(globalName).getAllRelatedNestedNodeTypeIds();
+ }
+
+ public boolean isUnifiedHandledServiceTemplate(ServiceTemplate serviceTemplate) {
+ String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
+ return unifiedHandledServiceTemplates.contains(serviceTemplateFileName);
+ }
+
+ public void addUnifiedHandledServiceTeamplte(ServiceTemplate serviceTemplate) {
+ String serviceTemplateFileName = ToscaUtil.getServiceTemplateFileName(serviceTemplate);
+ this.unifiedHandledServiceTemplates.add(serviceTemplateFileName);
+ }
+
+ public boolean isNestedNodeWasHandled(String serviceTemplateName, String nestedNodeTemplateId) {
+ if (Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))) {
+ return false;
+ }
+ return this.unifiedSubstitutionData.get(serviceTemplateName).isNestedNodeWasHandled(nestedNodeTemplateId);
+ }
+
+ public void addNestedNodeAsHandled(String serviceTemplateName, String nestedNodeTemplateId) {
+ this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
+ this.unifiedSubstitutionData.get(serviceTemplateName).addHandledNestedNodes(nestedNodeTemplateId);
+ }
+
+ public void updateUsedTimesForNestedComputeNodeType(String serviceTemplateName, String computeType) {
+ this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
+ this.unifiedSubstitutionData.get(serviceTemplateName).updateUsedTimesForNestedComputeNodeType(computeType);
+ }
+
+ public int getGlobalNodeTypeIndex(String serviceTemplateName, String computeType) {
+ if (Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))) {
+ return 0;
+ }
+ return this.unifiedSubstitutionData.get(serviceTemplateName).getGlobalNodeTypeIndex(computeType);
+ }
+
+ public void addNewPropertyIdToNodeTemplate(String serviceTemplateName, String newPropertyId, Object origPropertyValue) {
+ this.unifiedSubstitutionData.putIfAbsent(serviceTemplateName, new UnifiedSubstitutionData());
+ this.unifiedSubstitutionData.get(serviceTemplateName).addNewPropertyIdToNodeTemplate(newPropertyId, origPropertyValue);
+ }
+
+ public Optional<Object> getNewPropertyInputParamId(String serviceTemplateName, String newPropertyId) {
+ if (Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))) {
+ return Optional.empty();
+ }
+ return this.unifiedSubstitutionData.get(serviceTemplateName).getNewPropertyInputParam(newPropertyId);
+ }
+
+ public Map<String, Object> getAllNewPropertyInputParamIdsPerNodeTenplateId(String serviceTemplateName) {
+ if (Objects.isNull(this.unifiedSubstitutionData.get(serviceTemplateName))) {
+ return new HashMap<>();
+ }
+ return this.unifiedSubstitutionData.get(serviceTemplateName).getAllNewPropertyInputParamIds();
+ }
+
+ public boolean isServiceTemplateWithoutNodeTemplatesSection(String serviceTemplateName) {
+ return Objects.nonNull(serviceTemplateName) && serviceTemplatesWithoutNodeTemplateSection.contains(serviceTemplateName);
+ }
+
+ public void addServiceTemplateWithoutNodeTemplates(String serviceTemplateName) {
+ this.serviceTemplatesWithoutNodeTemplateSection.add(serviceTemplateName);
+ }
+
+ public void addNestedNodeTemplateIdPointsToStWithoutNodeTemplates(String nodeTemplateId) {
+ this.nodeTemplateIdsPointingToStWithoutNodeTemplates.add(nodeTemplateId);
+ }
+
+ public boolean isNodeTemplateIdPointsToStWithoutNodeTemplates(String nodeTemplateId) {
+ return Objects.nonNull(nodeTemplateId) && nodeTemplateIdsPointingToStWithoutNodeTemplates.contains(nodeTemplateId);
+ }
+
+ public void updateRequirementAssignmentIdIndex(String serviceTemplateName, String nodeTemplateId, String requirementId) {
+ requirementIdAppearanceInNodeTemplate.putIfAbsent(serviceTemplateName, new HashMap<>());
+ requirementIdAppearanceInNodeTemplate.get(serviceTemplateName).putIfAbsent(nodeTemplateId, new HashMap<>());
+ Map<String, Integer> requirementIdToAppearance = requirementIdAppearanceInNodeTemplate.get(serviceTemplateName).get(nodeTemplateId);
+ if (requirementIdToAppearance.containsKey(requirementId)) {
+ requirementIdToAppearance.put(requirementId, requirementIdToAppearance.get(requirementId) + 1);
+ } else {
+ requirementIdToAppearance.put(requirementId, 0);
+ }
+ }
}