in data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/mapper/DataProductMapper.java [33:64]
public void mapModelToEntity(DataProduct dataProduct, DataProductEntity dataProductEntity) {
dataProductEntity.setName(dataProduct.getName());
if (dataProduct.hasParentDataProductId() && !dataProduct.getParentDataProductId().isEmpty()) {
DataProductEntity parentDataProductEntity = dataProductRepository
.findByExternalId(dataProduct.getParentDataProductId())
.orElseThrow(
() -> new EntityNotFoundException("Could not find the parent data product with the ID: "
+ dataProduct.getParentDataProductId()));
dataProductEntity.setParentDataProductEntity(parentDataProductEntity);
}
if (dataProduct.hasMetadata()) {
ObjectMapper mapper = new ObjectMapper();
try {
JsonNode metadata = mapper.readTree(dataProduct.getMetadata());
dataProductEntity.setMetadata(metadata);
} catch (JsonProcessingException e) {
throw new RuntimeException(e);
}
}
// Synchronize the list of metadata schemas
if (dataProductEntity.getMetadataSchemas() != null) {
dataProductEntity.getMetadataSchemas().clear();
}
for (String metadataSchemaName : dataProduct.getMetadataSchemasList()) {
// TODO: handle metadata schema not found
MetadataSchemaEntity metadataSchema = metadataSchemaRepository.findBySchemaName(metadataSchemaName);
dataProductEntity.addMetadataSchema(metadataSchema);
}
}