import java.util.List;
import java.util.Map;
import java.util.function.Function;
+import lombok.Getter;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
protected JanusGraphGenericDao janusGraphGenericDao;
protected PropertyOperation propertyOperation;
protected AttributeOperation attributeOperation;
+ @Getter
protected ApplicationDataTypeCache applicationDataTypeCache;
protected ToscaOperationFacade toscaOperationFacade;
protected IGroupOperation groupOperation;
protected PolicyTypeOperation policyTypeOperation;
protected ArtifactsOperations artifactToscaOperation;
protected UserValidations userValidations;
- DataTypeValidatorConverter dataTypeValidatorConverter = DataTypeValidatorConverter.getInstance();
+ private final DataTypeValidatorConverter dataTypeValidatorConverter = DataTypeValidatorConverter.getInstance();
protected BaseBusinessLogic(IElementOperation elementDao, IGroupOperation groupOperation, IGroupInstanceOperation groupInstanceOperation,
IGroupTypeOperation groupTypeOperation, InterfaceOperation interfaceOperation,
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
+import org.openecomp.sdc.be.datatypes.elements.DataTypeDataDefinition;
+import org.openecomp.sdc.be.exception.supplier.DataTypeOperationExceptionSupplier;
import org.openecomp.sdc.be.model.Component;
import org.openecomp.sdc.be.model.ComponentParametersView;
import org.openecomp.sdc.be.model.DataTypeDefinition;
import org.openecomp.sdc.be.model.operations.api.IGroupOperation;
import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation;
import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
+import org.openecomp.sdc.be.model.operations.impl.DataTypeOperation;
import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
@org.springframework.stereotype.Component("dataTypeBusinessLogic")
public class DataTypeBusinessLogic extends BaseBusinessLogic {
- final DataTypeImportManager dataTypeImportManager;
+ private final DataTypeImportManager dataTypeImportManager;
+ private final DataTypeOperation dataTypeOperation;
@Autowired
public DataTypeBusinessLogic(IElementOperation elementDao, IGroupOperation groupOperation, IGroupInstanceOperation groupInstanceOperation,
IGroupTypeOperation groupTypeOperation, InterfaceOperation interfaceOperation,
- InterfaceLifecycleOperation interfaceLifecycleTypeOperation, ArtifactsOperations artifactToscaOperation, DataTypeImportManager dataTypeImportManager) {
+ InterfaceLifecycleOperation interfaceLifecycleTypeOperation, ArtifactsOperations artifactToscaOperation,
+ DataTypeImportManager dataTypeImportManager,
+ DataTypeOperation dataTypeOperation) {
super(elementDao, groupOperation, groupInstanceOperation, groupTypeOperation, interfaceOperation, interfaceLifecycleTypeOperation,
artifactToscaOperation);
this.dataTypeImportManager = dataTypeImportManager;
+ this.dataTypeOperation = dataTypeOperation;
}
/**
* [...]
* </pre>
*
- * @param dataTypesYaml the data types to create in yaml format. It can contain multiple data types entries.
- * @param model Model name to associate with data type
+ * @param dataTypesYaml the data types to create in yaml format. It can contain multiple data types entries.
+ * @param model Model name to associate with data type
* @param includeToModelDefaultImports Add data type entry to default imports for model
*/
public void createDataTypeFromYaml(final String dataTypesYaml, final String model, final boolean includeToModelDefaultImports) {
dataTypeImportManager.createDataTypes(dataTypesYaml, model, includeToModelDefaultImports);
}
+
+ public void updateApplicationDataTypeCache(final String dataTypeId) {
+ DataTypeDataDefinition dataTypeDataDefinition = dataTypeOperation.getDataTypeByUid(dataTypeId).orElseThrow(
+ DataTypeOperationExceptionSupplier.dataTypeNotFound(dataTypeId));
+ getApplicationDataTypeCache().reload(dataTypeDataDefinition.getModel(), dataTypeId);
+ }
}
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
+import org.openecomp.sdc.be.components.impl.DataTypeBusinessLogic;
import org.openecomp.sdc.be.components.impl.aaf.AafPermission;
import org.openecomp.sdc.be.components.impl.aaf.PermissionAllowed;
import org.openecomp.sdc.be.config.BeEcompErrorManager;
private static final Logger log = Logger.getLogger(DataTypeServlet.class);
private final DataTypeOperation dataTypeOperation;
+ private final DataTypeBusinessLogic dataTypeBusinessLogic;
public DataTypeServlet(final ComponentsUtils componentsUtils,
- final DataTypeOperation dataTypeOperation) {
+ final DataTypeOperation dataTypeOperation, DataTypeBusinessLogic dataTypeBusinessLogic) {
super(componentsUtils);
this.dataTypeOperation = dataTypeOperation;
+ this.dataTypeBusinessLogic = dataTypeBusinessLogic;
}
@GET
})
@PermissionAllowed(AafPermission.PermNames.INTERNAL_ALL_VALUE)
public Response createProperty(@Parameter(in = ParameterIn.PATH, required = true, description = "The data type id")
- @PathParam("id") final String id,
+ @PathParam("id") final String id,
@RequestBody(description = "Property to add", required = true) final PropertyDefinitionDto propertyDefinitionDto) {
final PropertyDefinitionDto property = dataTypeOperation.createProperty(id, propertyDefinitionDto);
+ dataTypeBusinessLogic.updateApplicationDataTypeCache(id);
return Response.status(Status.CREATED).entity(property).build();
}