diff --git a/src/main/java/org/breedinginsight/brapi/v2/constants/BrAPIAdditionalInfoFields.java b/src/main/java/org/breedinginsight/brapi/v2/constants/BrAPIAdditionalInfoFields.java index 13eb6f9b8..c63646adc 100644 --- a/src/main/java/org/breedinginsight/brapi/v2/constants/BrAPIAdditionalInfoFields.java +++ b/src/main/java/org/breedinginsight/brapi/v2/constants/BrAPIAdditionalInfoFields.java @@ -20,4 +20,5 @@ public final class BrAPIAdditionalInfoFields { public static final String GERMPLASM_RAW_PEDIGREE = "rawPedigree"; public static final String GERMPLASM_PEDIGREE_BY_NAME = "pedigreeByName"; + public static final String GERMPLASM_PEDIGREE_BY_UUID = "pedigreeByUUID"; } diff --git a/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIGermplasmDAO.java b/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIGermplasmDAO.java index 333d823ee..497157c9d 100644 --- a/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIGermplasmDAO.java +++ b/src/main/java/org/breedinginsight/brapi/v2/dao/BrAPIGermplasmDAO.java @@ -157,21 +157,29 @@ private Map processGermplasmForDisplay(List parents = Arrays.asList(germplasm.getPedigree().split("/")); if (parents.size() >= 1) { if (programGermplasmByFullName.containsKey(parents.get(0))) { newPedigreeString = programGermplasmByFullName.get(parents.get(0)).getAccessionNumber(); namePedigreeString = programGermplasmByFullName.get(parents.get(0)).getDefaultDisplayName(); + uuidPedigreeString = programGermplasmByFullName.get(parents.get(0)).getExternalReferences(). + stream().filter(ref -> ref.getReferenceSource().equals(referenceSource)). + map(ref -> ref.getReferenceID()).findFirst().orElse(""); } } if (parents.size() == 2) { if (programGermplasmByFullName.containsKey(parents.get(1))) { newPedigreeString += "/" + programGermplasmByFullName.get(parents.get(1)).getAccessionNumber(); namePedigreeString += "/" + programGermplasmByFullName.get(parents.get(1)).getDefaultDisplayName(); + uuidPedigreeString += "/" + programGermplasmByFullName.get(parents.get(1)).getExternalReferences(). + stream().filter(ref -> ref.getReferenceSource().equals(referenceSource)). + map(ref -> ref.getReferenceID()).findFirst().orElse(""); } } //For use in individual germplasm display additionalInfo.addProperty(BrAPIAdditionalInfoFields.GERMPLASM_PEDIGREE_BY_NAME, namePedigreeString); + additionalInfo.addProperty(BrAPIAdditionalInfoFields.GERMPLASM_PEDIGREE_BY_UUID, uuidPedigreeString); germplasm.setPedigree(newPedigreeString); }