diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CommonImportManager.java')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CommonImportManager.java | 541 |
1 files changed, 273 insertions, 268 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CommonImportManager.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CommonImportManager.java index 31c665686e..055e479d0d 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CommonImportManager.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CommonImportManager.java @@ -20,27 +20,13 @@ package org.openecomp.sdc.be.components.impl; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.function.BiFunction; -import java.util.function.Consumer; -import java.util.stream.Collectors; - -import javax.annotation.Resource; - +import fj.data.Either; import org.apache.commons.lang3.tuple.ImmutablePair; import org.openecomp.sdc.be.components.impl.ImportUtils.ResultStatusEnum; import org.openecomp.sdc.be.config.BeEcompErrorManager; import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.CapabilityTypeDefinition; -import org.openecomp.sdc.be.model.DataTypeDefinition; -import org.openecomp.sdc.be.model.GroupTypeDefinition; -import org.openecomp.sdc.be.model.PolicyTypeDefinition; -import org.openecomp.sdc.be.model.PropertyDefinition; +import org.openecomp.sdc.be.model.*; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.PropertyOperation; import org.openecomp.sdc.exception.ResponseFormat; @@ -49,260 +35,279 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; import org.yaml.snakeyaml.Yaml; -import fj.data.Either; -import jersey.repackaged.com.google.common.base.Function; +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.function.BiFunction; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.stream.Collectors; @Component("commonImportManager") public class CommonImportManager { - private static Logger log = LoggerFactory.getLogger(CommonImportManager.class.getName()); - - @Resource - private ComponentsUtils componentsUtils; - @Resource - private PropertyOperation propertyOperation; - - protected void setProperties(Map<String, Object> toscaJson, Consumer<List<PropertyDefinition>> consumer) { - consumer.accept(getProperties(toscaJson)); - } - - private List<PropertyDefinition> getProperties(Map<String, Object> toscaJson) { - List<PropertyDefinition> values = null; - Either<Map<String, PropertyDefinition>, ResultStatusEnum> properties = ImportUtils.getProperties(toscaJson); - - if (properties.isLeft()) { - values = new ArrayList<>(); - Map<String, PropertyDefinition> propertiesMap = properties.left().value(); - if (propertiesMap != null && propertiesMap.isEmpty() == false) { - - for (Entry<String, PropertyDefinition> entry : propertiesMap.entrySet()) { - String propName = entry.getKey(); - PropertyDefinition propertyDefinition = entry.getValue(); - PropertyDefinition newPropertyDefinition = new PropertyDefinition(propertyDefinition); - newPropertyDefinition.setName(propName); - values.add(newPropertyDefinition); - } - } - } - - return values; - } - - protected void setPropertiesMap(Map<String, Object> toscaJson, Consumer<Map<String, PropertyDefinition>> consumer) { - final List<PropertyDefinition> properties = getProperties(toscaJson); - if (properties != null) { - Map<String, PropertyDefinition> collect = properties.stream().collect(Collectors.toMap(e -> e.getName(), e -> e)); - consumer.accept(collect); - } - - } - - interface ICreateElementType<T1, T2, ElementType> { - ElementType createElement(T1 firstArg, T2 secondArg); - } - - protected <ElementDefinition> Either<List<ElementDefinition>, ActionStatus> createElementTypesFromYml(String elementTypesYml, ICreateElementType<String, Map<String, Object>, ElementDefinition> createApi) { - - List<ElementDefinition> elementTypes = new ArrayList<>(); - try { - Map<String, Object> toscaJson = (Map<String, Object>) new Yaml().load(elementTypesYml); - - Iterator<Entry<String, Object>> elementTypesEntryItr = toscaJson.entrySet().iterator(); - while (elementTypesEntryItr.hasNext()) { - Entry<String, Object> elementTypeNameDataEntry = elementTypesEntryItr.next(); - String elementTypeName = elementTypeNameDataEntry.getKey(); - Map<String, Object> elementTypeJsonData = (Map<String, Object>) elementTypeNameDataEntry.getValue(); - ElementDefinition elementDefinition = createApi.createElement(elementTypeName, elementTypeJsonData); - elementTypes.add(elementDefinition); - - } - - } catch (Exception e) { - log.debug("Failed to yaml file {}", elementTypesYml, e); - return Either.right(ActionStatus.INVALID_YAML_FILE); - } - return Either.left(elementTypes); - } - - protected <FieldType> void setField(Map<String, Object> toscaJson, String fieldName, Consumer<FieldType> setter) { - if (toscaJson.containsKey(fieldName)) { - FieldType fieldValue = (FieldType) toscaJson.get(fieldName); - setter.accept(fieldValue); - } - - } - - public enum ElementTypeEnum { - PolicyType, GroupType, DataType, CapabilityType, InterfaceLifecycleType - }; - - private ActionStatus convertFromStorageResponseForElementType(StorageOperationStatus status, ElementTypeEnum elementTypeEnum) { - ActionStatus ret; - switch (elementTypeEnum) { - case GroupType: - ret = componentsUtils.convertFromStorageResponseForGroupType(status); - break; - case DataType: - ret = componentsUtils.convertFromStorageResponseForDataType(status); - break; - case CapabilityType: - ret = componentsUtils.convertFromStorageResponseForCapabilityType(status); - break; - case InterfaceLifecycleType: - ret = componentsUtils.convertFromStorageResponseForLifecycleType(status); - break; - default: - ret = componentsUtils.convertFromStorageResponse(status); - break; - } - return ret; - } - - private <ElementTypeDefinition> ResponseFormat getResponseFormatForElementType(ActionStatus actionStatus, ElementTypeEnum elementTypeEnum, ElementTypeDefinition elementTypeDefinition) { - ResponseFormat ret; - switch (elementTypeEnum) { - case GroupType: - ret = componentsUtils.getResponseFormatByGroupType(actionStatus, (GroupTypeDefinition) elementTypeDefinition); - break; - case PolicyType: - ret = componentsUtils.getResponseFormatByPolicyType(actionStatus, (PolicyTypeDefinition) elementTypeDefinition); - break; - case DataType: - ret = componentsUtils.getResponseFormatByDataType(actionStatus, (DataTypeDefinition) elementTypeDefinition, null); - break; - case CapabilityType: - ret = componentsUtils.getResponseFormatByCapabilityType(actionStatus, (CapabilityTypeDefinition) elementTypeDefinition); - break; - - default: - ret = componentsUtils.getResponseFormat(actionStatus); - break; - } - return ret; - } - - protected <ElementTypeDefinition> Either<List<ImmutablePair<ElementTypeDefinition, Boolean>>, ResponseFormat> createElementTypesByDao(List<ElementTypeDefinition> elementTypesToCreate, - Function<ElementTypeDefinition, Either<ActionStatus, ResponseFormat>> validator, Function<ElementTypeDefinition, ImmutablePair<ElementTypeEnum, String>> elementInfoGetter, - Function<String, Either<ElementTypeDefinition, StorageOperationStatus>> elementFetcher, Function<ElementTypeDefinition, Either<ElementTypeDefinition, StorageOperationStatus>> elementAdder, - BiFunction<ElementTypeDefinition, ElementTypeDefinition, Either<ElementTypeDefinition, StorageOperationStatus>> elementUpgrader) { - - List<ImmutablePair<ElementTypeDefinition, Boolean>> createdElementTypes = new ArrayList<>(); - - Either<List<ImmutablePair<ElementTypeDefinition, Boolean>>, ResponseFormat> eitherResult = Either.left(createdElementTypes); - - Iterator<ElementTypeDefinition> elementTypeItr = elementTypesToCreate.iterator(); - - try { - - while (elementTypeItr.hasNext()) { - ElementTypeDefinition elementType = elementTypeItr.next(); - final ImmutablePair<ElementTypeEnum, String> elementInfo = elementInfoGetter.apply(elementType); - ElementTypeEnum elementTypeEnum = elementInfo.left; - String elementName = elementInfo.right; - - Either<ActionStatus, ResponseFormat> validateElementType = validator.apply(elementType); - if (validateElementType.isRight()) { - ResponseFormat responseFormat = validateElementType.right().value(); - log.debug("Failed in validation of element type: {}. Response is {}", elementType, responseFormat.getFormattedMessage()); - eitherResult = Either.right(responseFormat); - break; - } - - log.info("send {} : {} to dao for create", elementTypeEnum.name(), elementName); - - Either<ElementTypeDefinition, StorageOperationStatus> findElementType = elementFetcher.apply(elementName); - if (findElementType.isRight()) { - StorageOperationStatus status = findElementType.right().value(); - log.debug("searched {} finished with result:{}", elementTypeEnum.name(), status.name()); - if (status != StorageOperationStatus.NOT_FOUND) { - ResponseFormat responseFormat = getResponseFormatForElementType(convertFromStorageResponseForElementType(status, elementTypeEnum), elementTypeEnum, elementType); - eitherResult = Either.right(responseFormat); - break; - } else { - Either<ElementTypeDefinition, StorageOperationStatus> dataModelResponse = elementAdder.apply(elementType); - - if (dataModelResponse.isRight()) { - try { - BeEcompErrorManager.getInstance().logBeFailedAddingNodeTypeError("Create {}", elementTypeEnum.name()); - log.debug("failed to create {}: {}", elementTypeEnum.name(), elementName); - if (dataModelResponse.right().value() != StorageOperationStatus.SCHEMA_VIOLATION) { - ResponseFormat responseFormat = getResponseFormatForElementType(convertFromStorageResponseForElementType(dataModelResponse.right().value(), elementTypeEnum), elementTypeEnum, elementType); - - eitherResult = Either.right(responseFormat); - break; - } else { - createdElementTypes.add(new ImmutablePair<ElementTypeDefinition, Boolean>(elementType, false)); - } - } finally { - propertyOperation.getTitanGenericDao().rollback(); - } - } else { - propertyOperation.getTitanGenericDao().commit(); - createdElementTypes.add(new ImmutablePair<ElementTypeDefinition, Boolean>(elementType, true)); - log.debug("{} : {} was created successfully.", elementTypeEnum.name(), elementName); - } - if (!elementTypeItr.hasNext()) { - log.info("all {} were created successfully!!!", elementTypeEnum.name()); - } - - } - } else { - - if (elementUpgrader != null) { - Either<ElementTypeDefinition, StorageOperationStatus> upgradeResponse = null; - try { - upgradeResponse = elementUpgrader.apply(elementType, findElementType.left().value()); - if (upgradeResponse.isRight()) { - StorageOperationStatus status = upgradeResponse.right().value(); - if (status == StorageOperationStatus.OK) { - createdElementTypes.add(new ImmutablePair<ElementTypeDefinition, Boolean>(elementType, false)); - } else { - ResponseFormat responseFormat = getResponseFormatForElementType(convertFromStorageResponseForElementType(upgradeResponse.right().value(), elementTypeEnum), elementTypeEnum, elementType); - eitherResult = Either.right(responseFormat); - break; - } - } else { - log.debug("{} : {} was upgraded successfully.", elementTypeEnum.name(), elementName); - createdElementTypes.add(new ImmutablePair<ElementTypeDefinition, Boolean>(elementType, true)); - } - } finally { - if (upgradeResponse == null || upgradeResponse.isRight()) { - propertyOperation.getTitanGenericDao().rollback(); - } else { - propertyOperation.getTitanGenericDao().commit(); - } - } - - } else { - // mshitrit Once GroupType Versions are supported add - // code here - createdElementTypes.add(new ImmutablePair<ElementTypeDefinition, Boolean>(elementType, false)); - log.debug("{} : {} already exists.", elementTypeEnum.name(), elementName); - } - - } - - } - } finally { - if (eitherResult.isRight()) { - propertyOperation.getTitanGenericDao().rollback(); - } - } - - return eitherResult; - - } - - public <ElementTypeDefinition> Either<List<ImmutablePair<ElementTypeDefinition, Boolean>>, ResponseFormat> createElementTypes(String elementTypesYml, Function<String, Either<List<ElementTypeDefinition>, ActionStatus>> elementTypeFromYmlCreater, - Function<List<ElementTypeDefinition>, Either<List<ImmutablePair<ElementTypeDefinition, Boolean>>, ResponseFormat>> elementTypeDaoCreater, ElementTypeEnum elementTypeEnum) { - - Either<List<ElementTypeDefinition>, ActionStatus> elementTypes = elementTypeFromYmlCreater.apply(elementTypesYml); - if (elementTypes.isRight()) { - ActionStatus status = elementTypes.right().value(); - ResponseFormat responseFormat = getResponseFormatForElementType(status, elementTypeEnum, null); - return Either.right(responseFormat); - } - return elementTypeDaoCreater.apply(elementTypes.left().value()); - - } + private static final Logger log = LoggerFactory.getLogger(CommonImportManager.class); + + @Resource + private ComponentsUtils componentsUtils; + @Resource + private PropertyOperation propertyOperation; + + protected void setProperties(Map<String, Object> toscaJson, Consumer<List<PropertyDefinition>> consumer) { + consumer.accept(getProperties(toscaJson)); + } + + private List<PropertyDefinition> getProperties(Map<String, Object> toscaJson) { + List<PropertyDefinition> values = null; + Either<Map<String, PropertyDefinition>, ResultStatusEnum> properties = ImportUtils.getProperties(toscaJson); + + if (properties.isLeft()) { + values = new ArrayList<>(); + Map<String, PropertyDefinition> propertiesMap = properties.left().value(); + if (propertiesMap != null && propertiesMap.isEmpty() == false) { + + for (Entry<String, PropertyDefinition> entry : propertiesMap.entrySet()) { + String propName = entry.getKey(); + PropertyDefinition propertyDefinition = entry.getValue(); + PropertyDefinition newPropertyDefinition = new PropertyDefinition(propertyDefinition); + newPropertyDefinition.setName(propName); + values.add(newPropertyDefinition); + } + } + } + + return values; + } + + protected void setPropertiesMap(Map<String, Object> toscaJson, Consumer<Map<String, PropertyDefinition>> consumer) { + final List<PropertyDefinition> properties = getProperties(toscaJson); + if (properties != null) { + Map<String, PropertyDefinition> collect = properties.stream().collect(Collectors.toMap(e -> e.getName(), e -> e)); + consumer.accept(collect); + } + + } + + interface ICreateElementType<T1, T2, ElementType> { + ElementType createElement(T1 firstArg, T2 secondArg); + } + + protected <ElementDefinition> Either<List<ElementDefinition>, ActionStatus> createElementTypesFromYml(String elementTypesYml, ICreateElementType<String, Map<String, Object>, ElementDefinition> createApi) { + + List<ElementDefinition> elementTypes = new ArrayList<>(); + try { + Map<String, Object> toscaJson = (Map<String, Object>) new Yaml().load(elementTypesYml); + + elementTypes = createElementTypesFromToscaJsonMap(createApi, toscaJson); + } catch (Exception e) { + log.debug("Failed to yaml file {}", elementTypesYml, e); + return Either.right(ActionStatus.INVALID_YAML_FILE); + } + return Either.left(elementTypes); + } + + /** + * @param createApi * @param createApi + * @param elementTypes + * @param toscaJson + */ + protected <ElementDefinition> List<ElementDefinition> createElementTypesFromToscaJsonMap( + ICreateElementType<String, Map<String, Object>, ElementDefinition> createApi, Map<String, Object> toscaJson) { + List<ElementDefinition> elementTypes = new ArrayList<>(); + + Iterator<Entry<String, Object>> elementTypesEntryItr = toscaJson.entrySet().iterator(); + while (elementTypesEntryItr.hasNext()) { + Entry<String, Object> elementTypeNameDataEntry = elementTypesEntryItr.next(); + String elementTypeName = elementTypeNameDataEntry.getKey(); + Map<String, Object> elementTypeJsonData = (Map<String, Object>) elementTypeNameDataEntry.getValue(); + ElementDefinition elementDefinition = createApi.createElement(elementTypeName, elementTypeJsonData); + elementTypes.add(elementDefinition); + } + return elementTypes; + } + + protected <FieldType> void setField(Map<String, Object> toscaJson, String fieldName, Consumer<FieldType> setter) { + if (toscaJson.containsKey(fieldName)) { + FieldType fieldValue = (FieldType) toscaJson.get(fieldName); + setter.accept(fieldValue); + } + + } + + public enum ElementTypeEnum { + PolicyType, GroupType, DataType, CapabilityType, InterfaceLifecycleType + }; + + private ActionStatus convertFromStorageResponseForElementType(StorageOperationStatus status, ElementTypeEnum elementTypeEnum) { + ActionStatus ret; + switch (elementTypeEnum) { + case GroupType: + ret = componentsUtils.convertFromStorageResponseForGroupType(status); + break; + case DataType: + ret = componentsUtils.convertFromStorageResponseForDataType(status); + break; + case CapabilityType: + ret = componentsUtils.convertFromStorageResponseForCapabilityType(status); + break; + case InterfaceLifecycleType: + ret = componentsUtils.convertFromStorageResponseForLifecycleType(status); + break; + default: + ret = componentsUtils.convertFromStorageResponse(status); + break; + } + return ret; + } + + private <ElementTypeDefinition> ResponseFormat getResponseFormatForElementType(ActionStatus actionStatus, ElementTypeEnum elementTypeEnum, ElementTypeDefinition elementTypeDefinition) { + ResponseFormat ret; + switch (elementTypeEnum) { + case GroupType: + ret = componentsUtils.getResponseFormatByGroupType(actionStatus, (GroupTypeDefinition) elementTypeDefinition); + break; + case PolicyType: + ret = componentsUtils.getResponseFormatByPolicyType(actionStatus, (PolicyTypeDefinition) elementTypeDefinition); + break; + case DataType: + ret = componentsUtils.getResponseFormatByDataType(actionStatus, (DataTypeDefinition) elementTypeDefinition, null); + break; + case CapabilityType: + ret = componentsUtils.getResponseFormatByCapabilityType(actionStatus, (CapabilityTypeDefinition) elementTypeDefinition); + break; + + default: + ret = componentsUtils.getResponseFormat(actionStatus); + break; + } + return ret; + } + + protected <ElementTypeDefinition> Either<List<ImmutablePair<ElementTypeDefinition, Boolean>>, ResponseFormat> createElementTypesByDao(List<ElementTypeDefinition> elementTypesToCreate, + Function<ElementTypeDefinition, Either<ActionStatus, ResponseFormat>> validator, Function<ElementTypeDefinition, ImmutablePair<ElementTypeEnum, String>> elementInfoGetter, + Function<String, Either<ElementTypeDefinition, StorageOperationStatus>> elementFetcher, Function<ElementTypeDefinition, Either<ElementTypeDefinition, StorageOperationStatus>> elementAdder, + BiFunction<ElementTypeDefinition, ElementTypeDefinition, Either<ElementTypeDefinition, StorageOperationStatus>> elementUpgrader) { + + List<ImmutablePair<ElementTypeDefinition, Boolean>> createdElementTypes = new ArrayList<>(); + + Either<List<ImmutablePair<ElementTypeDefinition, Boolean>>, ResponseFormat> eitherResult = Either.left(createdElementTypes); + + Iterator<ElementTypeDefinition> elementTypeItr = elementTypesToCreate.iterator(); + + try { + + while (elementTypeItr.hasNext()) { + ElementTypeDefinition elementType = elementTypeItr.next(); + final ImmutablePair<ElementTypeEnum, String> elementInfo = elementInfoGetter.apply(elementType); + ElementTypeEnum elementTypeEnum = elementInfo.left; + String elementName = elementInfo.right; + + Either<ActionStatus, ResponseFormat> validateElementType = validator.apply(elementType); + if (validateElementType.isRight()) { + ResponseFormat responseFormat = validateElementType.right().value(); + log.debug("Failed in validation of element type: {}. Response is {}", elementType, responseFormat.getFormattedMessage()); + eitherResult = Either.right(responseFormat); + break; + } + + log.info("send {} : {} to dao for create", elementTypeEnum, elementName); + + Either<ElementTypeDefinition, StorageOperationStatus> findElementType = elementFetcher.apply(elementName); + if (findElementType.isRight()) { + StorageOperationStatus status = findElementType.right().value(); + log.debug("searched {} finished with result:{}", elementTypeEnum, status.name()); + if (status != StorageOperationStatus.NOT_FOUND) { + ResponseFormat responseFormat = getResponseFormatForElementType(convertFromStorageResponseForElementType(status, elementTypeEnum), elementTypeEnum, elementType); + eitherResult = Either.right(responseFormat); + break; + } else { + Either<ElementTypeDefinition, StorageOperationStatus> dataModelResponse = elementAdder.apply(elementType); + + if (dataModelResponse.isRight()) { + try { + BeEcompErrorManager.getInstance().logBeFailedAddingNodeTypeError("Create {}", elementTypeEnum.name()); + log.debug("failed to create {}: {}", elementTypeEnum, elementName); + if (dataModelResponse.right().value() != StorageOperationStatus.SCHEMA_VIOLATION) { + ResponseFormat responseFormat = getResponseFormatForElementType(convertFromStorageResponseForElementType(dataModelResponse.right().value(), elementTypeEnum), elementTypeEnum, elementType); + + eitherResult = Either.right(responseFormat); + break; + } else { + createdElementTypes.add(new ImmutablePair<ElementTypeDefinition, Boolean>(elementType, false)); + } + } finally { + propertyOperation.getTitanGenericDao().rollback(); + } + } else { + propertyOperation.getTitanGenericDao().commit(); + createdElementTypes.add(new ImmutablePair<ElementTypeDefinition, Boolean>(elementType, true)); + log.debug("{} : {} was created successfully.", elementTypeEnum, elementName); + } + if (!elementTypeItr.hasNext()) { + log.info("all {} were created successfully!!!", elementTypeEnum); + } + + } + } else { + + if (elementUpgrader != null) { + Either<ElementTypeDefinition, StorageOperationStatus> upgradeResponse = null; + try { + upgradeResponse = elementUpgrader.apply(elementType, findElementType.left().value()); + if (upgradeResponse.isRight()) { + StorageOperationStatus status = upgradeResponse.right().value(); + if (status == StorageOperationStatus.OK) { + createdElementTypes.add(new ImmutablePair<ElementTypeDefinition, Boolean>(elementType, false)); + } else { + ResponseFormat responseFormat = getResponseFormatForElementType(convertFromStorageResponseForElementType(upgradeResponse.right().value(), elementTypeEnum), elementTypeEnum, elementType); + eitherResult = Either.right(responseFormat); + break; + } + } else { + log.debug("{} : {} was upgraded successfully.", elementTypeEnum, elementName); + createdElementTypes.add(new ImmutablePair<ElementTypeDefinition, Boolean>(elementType, true)); + } + } finally { + if (upgradeResponse == null || upgradeResponse.isRight()) { + propertyOperation.getTitanGenericDao().rollback(); + } else { + propertyOperation.getTitanGenericDao().commit(); + } + } + + } else { + // mshitrit Once GroupType Versions are supported add + // code here + createdElementTypes.add(new ImmutablePair<ElementTypeDefinition, Boolean>(elementType, false)); + log.debug("{} : {} already exists.", elementTypeEnum, elementName); + } + + } + + } + } finally { + if (eitherResult.isRight()) { + propertyOperation.getTitanGenericDao().rollback(); + } + } + + return eitherResult; + + } + + public <ElementTypeDefinition> Either<List<ImmutablePair<ElementTypeDefinition, Boolean>>, ResponseFormat> createElementTypes(String elementTypesYml, Function<String, Either<List<ElementTypeDefinition>, ActionStatus>> elementTypeFromYmlCreater, + Function<List<ElementTypeDefinition>, Either<List<ImmutablePair<ElementTypeDefinition, Boolean>>, ResponseFormat>> elementTypeDaoCreater, ElementTypeEnum elementTypeEnum) { + + Either<List<ElementTypeDefinition>, ActionStatus> elementTypes = elementTypeFromYmlCreater.apply(elementTypesYml); + if (elementTypes.isRight()) { + ActionStatus status = elementTypes.right().value(); + ResponseFormat responseFormat = getResponseFormatForElementType(status, elementTypeEnum, null); + return Either.right(responseFormat); + } + return elementTypeDaoCreater.apply(elementTypes.left().value()); + + } } |