+ private void addPropertyToList(final String resourceName,
+ final List<PropertyDefinition> propertiesList,
+ final Entry<String, PropertyDefinition> entry) {
+ final String propertyName = entry.getKey();
+ if (!PROPERTY_NAME_PATTERN_IGNORE_LENGTH.matcher(propertyName).matches()) {
+ log.debug("The property with invalid name {} occured upon import resource {}. ", propertyName, resourceName);
+ throw new ByActionStatusComponentException(
+ componentsUtils.convertFromResultStatusEnum(ResultStatusEnum.INVALID_PROPERTY_NAME, JsonPresentationFields.PROPERTY));
+ }
+ final PropertyDefinition propertyDefinition = entry.getValue();
+ propertyDefinition.setName(propertyName);
+ propertiesList.add(propertyDefinition);
+ }
+
+ private void setAttributes(final Map<String, Object> originalToscaJsonMap, final Resource resource) {
+ final Map<String, Object> toscaJsonMap = new HashMap<>(originalToscaJsonMap);
+ ImportUtils.removeElementFromJsonMap(toscaJsonMap, "capabilities");
+ final Either<Map<String, AttributeDefinition>, ResultStatusEnum> getAttributeEither = ImportUtils.getAttributes(toscaJsonMap);
+ if (getAttributeEither.isRight()) {
+ final ResultStatusEnum resultStatus = getAttributeEither.right().value();
+ if (resultStatus == ResultStatusEnum.ELEMENT_NOT_FOUND) {
+ return;
+ }
+ throw new ByActionStatusComponentException(componentsUtils.convertFromResultStatusEnum(resultStatus, JsonPresentationFields.ATTRIBUTES));
+ }
+ final List<AttributeDefinition> attributeDefinitionList = new ArrayList<>();
+ final Map<String, AttributeDefinition> attributeMap = getAttributeEither.left().value();
+ if (MapUtils.isEmpty(attributeMap)) {
+ return;
+ }
+ for (final Entry<String, AttributeDefinition> entry : attributeMap.entrySet()) {
+ final String name = entry.getKey();
+ if (!PROPERTY_NAME_PATTERN_IGNORE_LENGTH.matcher(name).matches()) {
+ log.debug("Detected attribute with invalid name '{}' during resource '{}' import. ", name, resource.getName());
+ throw new ByActionStatusComponentException(
+ componentsUtils.convertFromResultStatusEnum(ResultStatusEnum.INVALID_ATTRIBUTE_NAME, JsonPresentationFields.ATTRIBUTES));
+ }
+ final AttributeDefinition attributeDefinition = entry.getValue();
+ attributeDefinition.setName(name);
+ if (attributeDefinition.getEntry_schema() != null && attributeDefinition.getEntry_schema().getType() != null) {
+ attributeDefinition.setSchema(new SchemaDefinition());
+ attributeDefinition.getSchema().setProperty(new PropertyDataDefinition());
+ attributeDefinition.getSchema().getProperty().setType(entry.getValue().getEntry_schema().getType());
+ }
+ attributeDefinitionList.add(attributeDefinition);
+ }
+ resource.setAttributes(attributeDefinitionList);
+ }
+