Skip to content
Snippets Groups Projects
Commit 1b554301 authored by kfilippopolitis's avatar kfilippopolitis
Browse files

Removed the algorithm name from experimentDTO so it wont be required or will...

Removed the algorithm name  from experimentDTO so it wont be required or will return algorithm name twice but the algorithm name still exists in the database to help with the filtering on the GET /experiments request.
parent 3c08abe7
No related branches found
No related tags found
1 merge request!19Feat/186 experiment refactor
......@@ -7,7 +7,6 @@ import eu.hbp.mip.models.DTOs.AlgorithmDTO;
import eu.hbp.mip.models.DTOs.ExperimentDTO;
import eu.hbp.mip.utils.JsonConverters;
import io.swagger.annotations.ApiModel;
import org.svenson.JSONParser;
import javax.persistence.*;
import java.util.*;
......@@ -117,7 +116,7 @@ public class ExperimentDAO {
public ExperimentDTO convertToDTO(boolean includeResult)
{
ExperimentDTO experimentDTO = new ExperimentDTO();
experimentDTO.setAlgorithmDetails(JsonConverters.convertJsonStringToObject(this.algorithmDetails, AlgorithmDTO.class));
experimentDTO.setAlgorithm(JsonConverters.convertJsonStringToObject(this.algorithmDetails, AlgorithmDTO.class));
experimentDTO.setCreated(this.created);
experimentDTO.setUpdated(this.updated);
experimentDTO.setFinished(this.finished);
......
......@@ -3,10 +3,8 @@ package eu.hbp.mip.models.DTOs;
import com.fasterxml.jackson.annotation.JsonInclude;
import eu.hbp.mip.models.DAOs.ExperimentDAO;
import java.lang.reflect.Array;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.UUID;
@JsonInclude(JsonInclude.Include.NON_NULL)
......@@ -23,29 +21,19 @@ public class ExperimentDTO {
private List<ExperimentDTO.ResultDTO> result;
private ExperimentDAO.Status status;
private String algorithm;
private AlgorithmDTO algorithmDetails;
private AlgorithmDTO algorithm;
public ExperimentDTO() {
}
public String getAlgorithm() {
public AlgorithmDTO getAlgorithm() {
return algorithm;
}
public void setAlgorithm(String algorithm) {
public void setAlgorithm(AlgorithmDTO algorithm) {
this.algorithm = algorithm;
}
public AlgorithmDTO getAlgorithmDetails() {
return algorithmDetails;
}
public void setAlgorithmDetails(AlgorithmDTO algorithmDetails) {
this.algorithmDetails = algorithmDetails;
this.algorithm = algorithmDetails.getName();
}
public UUID getUuid() {
return uuid;
}
......
......@@ -167,7 +167,7 @@ public class ExperimentService {
checkPostExperimentProperInput(experimentDTO, endpoint);
// Get the type and name of algorithm
String algorithmType = experimentDTO.getAlgorithmDetails().getType();
String algorithmType = experimentDTO.getAlgorithm().getType();
if(algorithmType == null){
Logging.LogUserAction(user.getUsername(), endpoint, "Please provide algorithm type.");
......@@ -207,10 +207,10 @@ public class ExperimentService {
// Get the parameters
List<AlgorithmDTO.AlgorithmParamDTO> algorithmParameters
= experimentDTO.getAlgorithmDetails().getParameters();
= experimentDTO.getAlgorithm().getParameters();
// Get the type and name of algorithm
String algorithmName = experimentDTO.getAlgorithmDetails().getName();
String algorithmName = experimentDTO.getAlgorithm().getName();
if (!allowedTransientAlgorithms(algorithmName)) {
Logging.LogUserAction(user.getUsername(), endpoint,
......@@ -356,7 +356,7 @@ public class ExperimentService {
throw new BadRequestException("CreatedBy is not editable.");
}
if (experimentDTO.getAlgorithmDetails() != null) {
if (experimentDTO.getAlgorithm() != null) {
Logging.LogUserAction(activeUserService.getActiveUser().getUsername(), endpoint, "AlgorithmDetails is not editable.");
throw new BadRequestException("AlgorithmDetails is not editable.");
}
......@@ -379,9 +379,9 @@ public class ExperimentService {
private void algorithmParametersLogging(ExperimentDTO experimentDTO, String endpoint) {
UserDAO user = activeUserService.getActiveUser();
String algorithmName = experimentDTO.getAlgorithm();
String algorithmName = experimentDTO.getAlgorithm().getName();
StringBuilder parametersLogMessage = new StringBuilder(", Parameters:\n");
experimentDTO.getAlgorithmDetails().getParameters().forEach(
experimentDTO.getAlgorithm().getParameters().forEach(
params -> parametersLogMessage
.append(" ")
.append(params.getLabel())
......@@ -401,7 +401,7 @@ public class ExperimentService {
private String getDatasetFromExperimentParameters(ExperimentDTO experimentDTO, String endpoint) {
String experimentDatasets = null;
for (AlgorithmDTO.AlgorithmParamDTO parameter : experimentDTO.getAlgorithmDetails().getParameters()) {
for (AlgorithmDTO.AlgorithmParamDTO parameter : experimentDTO.getAlgorithm().getParameters()) {
if (parameter.getLabel().equals("dataset")) {
experimentDatasets = parameter.getValue();
break;
......@@ -454,8 +454,8 @@ public class ExperimentService {
ExperimentDAO experimentDAO = new ExperimentDAO();
experimentDAO.setUuid(UUID.randomUUID());
experimentDAO.setCreatedBy(user);
experimentDAO.setAlgorithmDetails(JsonConverters.convertObjectToJsonString(experimentDTO.getAlgorithmDetails()));
experimentDAO.setAlgorithm(experimentDTO.getAlgorithm());
experimentDAO.setAlgorithmDetails(JsonConverters.convertObjectToJsonString(experimentDTO.getAlgorithm()));
experimentDAO.setAlgorithm(experimentDTO.getAlgorithm().getName());
experimentDAO.setName(experimentDTO.getName());
experimentDAO.setStatus(ExperimentDAO.Status.pending);
......@@ -520,11 +520,11 @@ public class ExperimentService {
Logging.LogUserAction(user.getUsername(), endpoint, "Created experiment with uuid :" + experimentDAO.getUuid());
// Run the 1st algorithm from the list
String algorithmName = experimentDTO.getAlgorithmDetails().getName();
String algorithmName = experimentDTO.getAlgorithm().getName();
// Get the parameters
List<AlgorithmDTO.AlgorithmParamDTO> algorithmParameters
= experimentDTO.getAlgorithmDetails().getParameters();
= experimentDTO.getAlgorithm().getParameters();
String body = gson.toJson(algorithmParameters);
String url = queryExaremeUrl + "/" + algorithmName;
......@@ -606,11 +606,11 @@ public class ExperimentService {
// Run the 1st algorithm from the list
String workflowId = experimentDTO.getAlgorithmDetails().getName();
String workflowId = experimentDTO.getAlgorithm().getName();
// Get the parameters
List<AlgorithmDTO.AlgorithmParamDTO> algorithmParameters
= experimentDTO.getAlgorithmDetails().getParameters();
= experimentDTO.getAlgorithm().getParameters();
// Convert the parameters to workflow parameters
HashMap<String, String> algorithmParamsIncludingEmpty = new HashMap<>();
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment