summaryrefslogtreecommitdiffstats
path: root/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/DataTypeOperation.java
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/DataTypeOperation.java')
-rw-r--r--catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/DataTypeOperation.java34
1 files changed, 32 insertions, 2 deletions
diff --git a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/DataTypeOperation.java b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/DataTypeOperation.java
index 391add9a94..f79f1501e7 100644
--- a/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/DataTypeOperation.java
+++ b/catalog-model/src/main/java/org/openecomp/sdc/be/model/operations/impl/DataTypeOperation.java
@@ -303,8 +303,38 @@ public class DataTypeOperation extends AbstractOperation {
return PropertyDefinitionDtoMapper.mapFrom(propertyData);
}
- public void addPropertyToAdditionalTypeDataType(DataTypeDataDefinition dataTypeDataDefinition, PropertyDefinitionDto property) {
- modelOperation.addPropertyToAdditionalType(ElementTypeEnum.DATA_TYPE, property, dataTypeDataDefinition.getModel(), dataTypeDataDefinition.getName());
+ public void updatePropertyInAdditionalTypeDataType(final DataTypeDataDefinition dataTypeDataDefinition,
+ final PropertyDefinitionDto property,
+ final boolean isAdd) {
+ modelOperation.updatePropertyInAdditionalType(ElementTypeEnum.DATA_TYPE, property, dataTypeDataDefinition.getModel(),
+ dataTypeDataDefinition.getName(), isAdd);
+ }
+
+ public PropertyDefinitionDto deleteProperty(final DataTypeDataDefinition dataTypeDataDefinition, final String propertyId) {
+ final List<PropertyDefinition> propertiesData = findAllProperties(dataTypeDataDefinition.getUniqueId());
+ final String dataTypeDataDefinitionName = dataTypeDataDefinition.getName();
+ if (CollectionUtils.isEmpty(propertiesData)) {
+ throw new OperationException(ActionStatus.PROPERTY_NOT_FOUND,
+ String.format("Failed to find property '%s' for data type '%s'", propertyId, dataTypeDataDefinitionName));
+ }
+ Optional<PropertyDefinition> optionalPropertyDefinition = propertiesData.stream()
+ .filter(propertyDataDefinition -> propertyDataDefinition.getUniqueId().equals(propertyId)).findAny();
+ optionalPropertyDefinition.orElseThrow(() -> {
+ throw new OperationException(ActionStatus.PROPERTY_NOT_FOUND,
+ String.format("Failed to find property '%s' for data type '%s'", propertyId, dataTypeDataDefinitionName));
+ });
+ final Either<PropertyData, JanusGraphOperationStatus> statusEither = propertyOperation.deletePropertyFromGraph(propertyId);
+ if (statusEither.isRight()) {
+ throw new OperationException(ActionStatus.PROPERTY_NOT_FOUND,
+ String.format("Failed to delete property '%s' from data type '%s'", propertyId, dataTypeDataDefinitionName));
+ }
+ final PropertyDefinition propertyDefinition = optionalPropertyDefinition.get();
+ final PropertyData propertyData = statusEither.left().value();
+ final PropertyDataDefinition propertyDataDefinition = propertyData.getPropertyDataDefinition();
+ propertyDataDefinition.setName(propertyDefinition.getName());
+ propertyDataDefinition.setPropertyConstraints(propertyData.getConstraints());
+ propertiesData.remove(propertyDefinition);
+ return PropertyDefinitionDtoMapper.mapFrom(propertyDataDefinition);
}
}