diff --git a/src/main/java/org/ibp/api/java/impl/middleware/dataset/validator/DatasetGeneratorInputValidator.java b/src/main/java/org/ibp/api/java/impl/middleware/dataset/validator/DatasetGeneratorInputValidator.java index 6beaef6788..4eead114d2 100644 --- a/src/main/java/org/ibp/api/java/impl/middleware/dataset/validator/DatasetGeneratorInputValidator.java +++ b/src/main/java/org/ibp/api/java/impl/middleware/dataset/validator/DatasetGeneratorInputValidator.java @@ -5,6 +5,9 @@ import org.generationcp.middleware.domain.dms.DatasetDTO; import org.generationcp.middleware.domain.dms.DatasetTypeDTO; import org.generationcp.middleware.domain.dms.Study; +import org.generationcp.middleware.domain.oms.CvId; +import org.generationcp.middleware.domain.oms.Term; +import org.generationcp.middleware.manager.api.OntologyDataManager; import org.generationcp.middleware.manager.api.StudyDataManager; import org.generationcp.middleware.service.api.dataset.DatasetService; import org.generationcp.middleware.service.api.dataset.DatasetTypeService; @@ -39,6 +42,9 @@ public class DatasetGeneratorInputValidator { @Autowired private DatasetService studyDatasetService; + @Autowired + private OntologyDataManager ontologyDataManager; + @Autowired private Environment environment; @@ -46,18 +52,13 @@ public class DatasetGeneratorInputValidator { private Integer maxAllowedDatasetsPerParent; - private final VariableType observationUnitVariableType; + private VariableType observationUnitVariableType; private static final String DATASET_NAME_REGEX = "^[a-zA-Z0-9\\s(\\\\/:*?\\\"\"<>|.)]*$"; private static final Pattern DATASET_NAME_PATTERN = Pattern.compile(DatasetGeneratorInputValidator.DATASET_NAME_REGEX); DatasetGeneratorInputValidator() { - this.observationUnitVariableType = - new VariableType( - org.generationcp.middleware.domain.ontology.VariableType.OBSERVATION_UNIT.getId().toString(), - org.generationcp.middleware.domain.ontology.VariableType.OBSERVATION_UNIT.getName(), - org.generationcp.middleware.domain.ontology.VariableType.OBSERVATION_UNIT.getDescription()); } @PostConstruct @@ -120,6 +121,15 @@ public Integer apply(final StudyInstance i) { final Study study = this.studyDataManager.getStudy(studyId); try { + final Term observationUnitTerm = this.ontologyDataManager.getAllTermsByCvId(CvId.VARIABLE_TYPE).stream() + .filter(f -> org.generationcp.middleware.domain.ontology.VariableType.OBSERVATION_UNIT.getId().equals(f.getId())).findFirst() + .get(); + this.observationUnitVariableType = + new VariableType( + String.valueOf(observationUnitTerm.getId()), + observationUnitTerm.getName(), + observationUnitTerm.getDefinition()); + final VariableDetails variableDetails = this.variableService .getVariableById(crop, study.getProgramUUID(), String.valueOf(datasetInputGenerator.getSequenceVariableId())); diff --git a/src/main/java/org/ibp/api/java/impl/middleware/dataset/validator/DatasetValidator.java b/src/main/java/org/ibp/api/java/impl/middleware/dataset/validator/DatasetValidator.java index 619c14f806..68a49139d1 100644 --- a/src/main/java/org/ibp/api/java/impl/middleware/dataset/validator/DatasetValidator.java +++ b/src/main/java/org/ibp/api/java/impl/middleware/dataset/validator/DatasetValidator.java @@ -150,7 +150,8 @@ void validateIfDatasetVariableAlreadyExists( // If variable was found, check it is a supported variable type for dataset } else if (this.isInvalidVariableTypeForDatasetType(datasetType, variableType)) { this.errors - .reject("dataset.variable.cannot.be.deleted", new Object[] {String.valueOf(variableId), variableType.getName()}, + .reject("dataset.variable.cannot.be.deleted", + new Object[] {String.valueOf(variableId), ontologyDataManager.getTermById(variableType.getId()).getName()}, ""); throw new NotSupportedException(this.errors.getAllErrors().get(0)); } diff --git a/src/main/java/org/ibp/api/java/impl/middleware/ontology/ModelServiceImpl.java b/src/main/java/org/ibp/api/java/impl/middleware/ontology/ModelServiceImpl.java index e5731fae2d..b8cf0f4601 100644 --- a/src/main/java/org/ibp/api/java/impl/middleware/ontology/ModelServiceImpl.java +++ b/src/main/java/org/ibp/api/java/impl/middleware/ontology/ModelServiceImpl.java @@ -1,13 +1,7 @@ package org.ibp.api.java.impl.middleware.ontology; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.Objects; - +import com.google.common.base.Function; import org.generationcp.middleware.domain.oms.CvId; import org.generationcp.middleware.domain.oms.Term; import org.generationcp.middleware.exceptions.MiddlewareException; @@ -22,7 +16,12 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import com.google.common.base.Function; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Objects; @Service @Transactional @@ -88,15 +87,11 @@ public int compare(String str1, String str2) { @Override public List getAllVariableTypes() { + final List variableTypeTerms = this.termDataManager.getTermByCvId(CvId.VARIABLE_TYPE.getId()); + List variableTypes = - Util.convertAll(Arrays.asList(org.generationcp.middleware.domain.ontology.VariableType.values()), - new Function() { - - @Override - public VariableType apply(org.generationcp.middleware.domain.ontology.VariableType variableType) { - return new VariableType(String.valueOf(variableType.getId()), variableType.getName(), variableType.getDescription()); - } - }); + Util.convertAll(variableTypeTerms, + term -> new VariableType(String.valueOf(term.getId()), term.getName(), term.getDefinition())); Collections.sort(variableTypes, new Comparator() { diff --git a/src/main/java/org/ibp/api/java/impl/middleware/ontology/validator/VariableValidator.java b/src/main/java/org/ibp/api/java/impl/middleware/ontology/validator/VariableValidator.java index 80c620d240..cc39d6019d 100644 --- a/src/main/java/org/ibp/api/java/impl/middleware/ontology/validator/VariableValidator.java +++ b/src/main/java/org/ibp/api/java/impl/middleware/ontology/validator/VariableValidator.java @@ -545,7 +545,7 @@ private boolean areAllPreviousVariableTypesPresent(Set