Skip to content
This repository was archived by the owner on Aug 1, 2025. It is now read-only.

Commit 1fb6a61

Browse files
pedigree string fixes
1 parent 0132685 commit 1fb6a61

File tree

1 file changed

+34
-11
lines changed

1 file changed

+34
-11
lines changed

src/main/java/org/brapi/test/BrAPITestServer/service/germ/PedigreeService.java

Lines changed: 34 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
import org.brapi.test.BrAPITestServer.exceptions.BrAPIServerException;
1616
import org.brapi.test.BrAPITestServer.model.entity.germ.CrossingProjectEntity;
1717
import org.brapi.test.BrAPITestServer.model.entity.germ.GermplasmEntity;
18+
import org.brapi.test.BrAPITestServer.model.entity.germ.PedigreeEdgeEntity;
19+
import org.brapi.test.BrAPITestServer.model.entity.germ.PedigreeEdgeEntity.EdgeType;
1820
import org.brapi.test.BrAPITestServer.model.entity.germ.PedigreeNodeEntity;
1921
import org.brapi.test.BrAPITestServer.repository.germ.PedigreeRepository;
2022
import org.brapi.test.BrAPITestServer.service.PagingUtility;
@@ -415,14 +417,31 @@ private PedigreeNode convertFromEntity(PedigreeNodeEntity entity, PedigreeSearch
415417
}
416418
return node;
417419
}
418-
420+
419421
static public String getPedigreeString(PedigreeNodeEntity entity) {
420-
if (entity.getPedigreeString() == null && entity.getParentEdges() != null
421-
&& !entity.getParentEdges().isEmpty()) {
422-
List<PedigreeNodeEntity> parents = entity.getParentNodes();
423-
String pedStr = parents.get(0).getGermplasm().getGermplasmName();
424-
for (int i = 1; i < parents.size(); i++) {
425-
pedStr += "/" + parents.get(i).getGermplasm().getGermplasmName();
422+
if (entity.getPedigreeString() == null || entity.getPedigreeString().isEmpty()) {
423+
String pedStr = "";
424+
if (entity.getParentEdges() != null && !entity.getParentEdges().isEmpty()) {
425+
Optional<PedigreeNodeEntity> mother = entity.getParentEdges().stream()
426+
.filter(parentEdge -> {return ParentType.FEMALE == parentEdge.getParentType();})
427+
.map(PedigreeEdgeEntity::getConncetedNode)
428+
.findFirst();
429+
Optional<PedigreeNodeEntity> father = entity.getParentEdges().stream()
430+
.filter(parentEdge -> {return ParentType.MALE == parentEdge.getParentType();})
431+
.map(PedigreeEdgeEntity::getConncetedNode)
432+
.findFirst();
433+
434+
if(mother.isPresent()) {
435+
pedStr += mother.get().getGermplasm().getGermplasmName() + "/";
436+
}else {
437+
pedStr += "Unknown/";
438+
}
439+
440+
if(father.isPresent()) {
441+
pedStr += father.get().getGermplasm().getGermplasmName();
442+
}else {
443+
pedStr += "Unknown";
444+
}
426445
}
427446
return pedStr;
428447
} else {
@@ -431,6 +450,11 @@ static public String getPedigreeString(PedigreeNodeEntity entity) {
431450
}
432451

433452
private void updateEntity(PedigreeNodeEntity entity, PedigreeNode node) throws BrAPIServerException {
453+
if (node.getGermplasmDbId() != null && entity.getGermplasm() == null) {
454+
GermplasmEntity germplasm = germplasmService.getGermplasmEntity(node.getGermplasmDbId());
455+
entity.setGermplasm(germplasm);
456+
}
457+
434458
UpdateUtility.updateEntity(node, entity);
435459

436460
if (node.getCrossingYear() != null)
@@ -445,10 +469,6 @@ private void updateEntity(PedigreeNodeEntity entity, PedigreeNode node) throws B
445469
.getCrossingProjectEntity(node.getCrossingProjectDbId());
446470
entity.setCrossingProject(crossingProject);
447471
}
448-
if (node.getGermplasmDbId() != null) {
449-
GermplasmEntity germplasm = germplasmService.getGermplasmEntity(node.getGermplasmDbId());
450-
entity.setGermplasm(germplasm);
451-
}
452472
}
453473

454474
private void updateEntityWithEdges(PedigreeNodeEntity entity, PedigreeNode node) throws BrAPIServerException {
@@ -494,12 +514,15 @@ public PedigreeNode convertFromGermplasmToPedigree(Germplasm germplasm) {
494514
}
495515
}
496516

517+
node.setAdditionalInfo(germplasm.getAdditionalInfo());
497518
node.setBreedingMethodDbId(germplasm.getBreedingMethodDbId());
498519
node.setBreedingMethodName(germplasm.getBreedingMethodName());
499520
node.setDefaultDisplayName(germplasm.getDefaultDisplayName());
521+
node.setExternalReferences(germplasm.getExternalReferences());
500522
node.setGermplasmDbId(germplasm.getGermplasmDbId());
501523
node.setGermplasmName(germplasm.getGermplasmName());
502524
node.setGermplasmPUI(germplasm.getGermplasmPUI());
525+
node.setPedigreeString(germplasm.getPedigree());
503526

504527
if (motherOpt.isPresent()) {
505528
PedigreeNodeParents mother = new PedigreeNodeParents();

0 commit comments

Comments
 (0)