diff options
Diffstat (limited to 'catalog-be/src/main/java/org/openecomp/sdc/be/components/attribute/ComponentAttributeDeclarator.java')
-rw-r--r-- | catalog-be/src/main/java/org/openecomp/sdc/be/components/attribute/ComponentAttributeDeclarator.java | 146 |
1 files changed, 56 insertions, 90 deletions
diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/attribute/ComponentAttributeDeclarator.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/attribute/ComponentAttributeDeclarator.java index 56dec5d93a..47fd74e8ce 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/attribute/ComponentAttributeDeclarator.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/attribute/ComponentAttributeDeclarator.java @@ -17,124 +17,90 @@ * limitations under the License. * ============LICENSE_END========================================================= */ - package org.openecomp.sdc.be.components.attribute; import fj.data.Either; -import java.util.Collections; import java.util.List; import java.util.Optional; import org.apache.commons.collections.CollectionUtils; -import org.openecomp.sdc.be.components.impl.AttributeBusinessLogic; import org.openecomp.sdc.be.datatypes.elements.AttributeDataDefinition; import org.openecomp.sdc.be.datatypes.elements.GetOutputValueDataDefinition; -import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.AttributeDefinition; import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.OutputDefinition; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; -import org.openecomp.sdc.be.model.operations.impl.AttributeOperation; @org.springframework.stereotype.Component public class ComponentAttributeDeclarator extends DefaultAttributeDeclarator<Component, AttributeDataDefinition> { - private final ToscaOperationFacade toscaOperationFacade; - private final AttributeBusinessLogic attributeBusinessLogic; - - public ComponentAttributeDeclarator(final ComponentsUtils componentsUtils, - final AttributeOperation attributeOperation, - final ToscaOperationFacade toscaOperationFacade, - final AttributeBusinessLogic attributeBusinessLogic) { -// super(componentsUtils, attributeOperation); - this.toscaOperationFacade = toscaOperationFacade; - this.attributeBusinessLogic = attributeBusinessLogic; - } - - @Override - public AttributeDataDefinition createDeclaredAttribute(final AttributeDataDefinition attributeDataDefinition) { - return new AttributeDataDefinition(attributeDataDefinition); - } + private final ToscaOperationFacade toscaOperationFacade; - @Override - public Either<?, StorageOperationStatus> updateAttributesValues(final Component component, - final String propertiesOwnerId, - final List<AttributeDataDefinition> attributetypeList) { - if (CollectionUtils.isNotEmpty(attributetypeList)) { - for (AttributeDataDefinition attribute : attributetypeList) { - Either<AttributeDefinition, StorageOperationStatus> - storageStatus = toscaOperationFacade - .updateAttributeOfComponent(component, new AttributeDefinition(attribute)); - if (storageStatus.isRight()) { - return Either.right(storageStatus.right().value()); - } - } + public ComponentAttributeDeclarator(final ToscaOperationFacade toscaOperationFacade) { + this.toscaOperationFacade = toscaOperationFacade; } - return Either.left(attributetypeList); - } - - @Override - public Optional<Component> resolvePropertiesOwner(final Component component, final String propertiesOwnerId) { - return Optional.of(component); - } - @Override - public StorageOperationStatus unDeclareAttributesAsOutputs(final Component component, - final OutputDefinition output) { - AttributeDefinition attributeDefinition = new AttributeDefinition(output); - - // TODO - do we need this one - if (attributeBusinessLogic.isAttributeUsedByOperation(component, attributeDefinition)) { - return StorageOperationStatus.DECLARED_INPUT_USED_BY_OPERATION; + @Override + public AttributeDataDefinition createDeclaredAttribute(final AttributeDataDefinition attributeDataDefinition) { + return new AttributeDataDefinition(attributeDataDefinition); } - Optional<AttributeDefinition> attributeToUpdateCandidate = - getDeclaredAttributeByOutputId(component, output.getUniqueId()); - - if (attributeToUpdateCandidate.isPresent()) { - AttributeDefinition attributeToUpdate = attributeToUpdateCandidate.get(); - return unDeclareOutput(component, output, attributeToUpdate); + @Override + public Either<?, StorageOperationStatus> updateAttributesValues(final Component component, final String propertiesOwnerId, + final List<AttributeDataDefinition> attributetypeList) { + if (CollectionUtils.isNotEmpty(attributetypeList)) { + for (AttributeDataDefinition attribute : attributetypeList) { + Either<AttributeDefinition, StorageOperationStatus> storageStatus = toscaOperationFacade + .updateAttributeOfComponent(component, new AttributeDefinition(attribute)); + if (storageStatus.isRight()) { + return Either.right(storageStatus.right().value()); + } + } + } + return Either.left(attributetypeList); } - return StorageOperationStatus.OK; - } - - private StorageOperationStatus unDeclareOutput(final Component component, - final OutputDefinition output, - final AttributeDefinition attributeToUpdate) { - prepareValueBeforeDelete(output, attributeToUpdate, Collections.emptyList()); - attributeToUpdate.setValue(output.getDefaultValue()); - Either<AttributeDefinition, StorageOperationStatus> status = toscaOperationFacade - .updateAttributeOfComponent(component, attributeToUpdate); - if (status.isRight()) { - return status.right().value(); + @Override + public Optional<Component> resolvePropertiesOwner(final Component component, final String propertiesOwnerId) { + return Optional.of(component); } - return StorageOperationStatus.OK; - } - - private Optional<AttributeDefinition> getDeclaredAttributeByOutputId(final Component component, final String outputId) { - List<AttributeDefinition> attributes = component.getAttributes(); - - if (CollectionUtils.isEmpty(attributes)) { - return Optional.empty(); + @Override + public StorageOperationStatus unDeclareAttributesAsOutputs(final Component component, final OutputDefinition output) { + final Optional<AttributeDefinition> attributeToUpdateCandidate = getDeclaredAttributeByOutputId(component, output.getUniqueId()); + if (attributeToUpdateCandidate.isPresent()) { + AttributeDefinition attributeToUpdate = attributeToUpdateCandidate.get(); + return unDeclareOutput(component, output, attributeToUpdate); + } + return StorageOperationStatus.OK; } - for (AttributeDefinition attributeDefinition : attributes) { - List<GetOutputValueDataDefinition> getOutputValues = attributeDefinition.getGetOutputValues(); - if (CollectionUtils.isEmpty(getOutputValues)) { - continue; - } - - Optional<GetOutputValueDataDefinition> getOutputCandidate = - getOutputValues.stream().filter(getOutput -> getOutput.getOutputId().equals(outputId)).findAny(); - - if (getOutputCandidate.isPresent()) { - return Optional.of(attributeDefinition); - } + private StorageOperationStatus unDeclareOutput(final Component component, final OutputDefinition output, + final AttributeDefinition attributeToUpdate) { + attributeToUpdate.setValue(output.getDefaultValue()); + Either<AttributeDefinition, StorageOperationStatus> status = toscaOperationFacade.updateAttributeOfComponent(component, attributeToUpdate); + if (status.isRight()) { + return status.right().value(); + } + return StorageOperationStatus.OK; } - return Optional.empty(); - } - + private Optional<AttributeDefinition> getDeclaredAttributeByOutputId(final Component component, final String outputId) { + List<AttributeDefinition> attributes = component.getAttributes(); + if (CollectionUtils.isEmpty(attributes)) { + return Optional.empty(); + } + for (AttributeDefinition attributeDefinition : attributes) { + List<GetOutputValueDataDefinition> getOutputValues = attributeDefinition.getGetOutputValues(); + if (CollectionUtils.isEmpty(getOutputValues)) { + continue; + } + Optional<GetOutputValueDataDefinition> getOutputCandidate = getOutputValues.stream() + .filter(getOutput -> getOutput.getOutputId().equals(outputId)).findAny(); + if (getOutputCandidate.isPresent()) { + return Optional.of(attributeDefinition); + } + } + return Optional.empty(); + } } |