diff --git a/src/main/java/org/breedinginsight/brapps/importer/services/processors/GermplasmProcessor.java b/src/main/java/org/breedinginsight/brapps/importer/services/processors/GermplasmProcessor.java index 0d514ee72..81d9bef93 100644 --- a/src/main/java/org/breedinginsight/brapps/importer/services/processors/GermplasmProcessor.java +++ b/src/main/java/org/breedinginsight/brapps/importer/services/processors/GermplasmProcessor.java @@ -326,10 +326,9 @@ public Map process(ImportUpload upload, List
[ - ]) - if (commit) { - createPostOrder(); - } + // for commit: Construct a dependency tree for POSTing order. Dependents on unique germplasm name, ( [ - ]) + // for !commit: Validate for circular pedigree dependencies. + createPostOrder(commit); // Construct our response object return getStatisticsMap(importRows); @@ -556,9 +555,18 @@ private void validatePedigree(Germplasm germplasm, Integer rowNumber, Validation } } - private void createPostOrder() { + /* + This will set the postOrder and validate for circular pedigree dependencies. + */ + private void createPostOrder(boolean commit) { + Set created = null; // Construct a dependency tree for POSTing order - Set created = existingGermplasm.stream().map(BrAPIGermplasm::getGermplasmName).collect(Collectors.toSet()); + if(commit){ + created = existingGermplasm.stream().map(BrAPIGermplasm::getGermplasmName).collect(Collectors.toSet()); + } + else { + created = existingGermplasm.stream().map(BrAPIGermplasm::getDefaultDisplayName).collect(Collectors.toSet()); + } //todo this gets messy @@ -569,7 +577,7 @@ private void createPostOrder() { for (BrAPIGermplasm germplasm : newGermplasmList) { // If we've already planned this germplasm, skip - if (created.contains(germplasm.getGermplasmName())) { + if ( (commit && created.contains(germplasm.getGermplasmName())) || (!commit && created.contains(germplasm.getDefaultDisplayName())) ) { continue; }