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

Commit ce538ea

Browse files
restructure germplasm pedigree code a little bit
1 parent 3e5afc2 commit ce538ea

File tree

2 files changed

+26
-51
lines changed

2 files changed

+26
-51
lines changed

src/main/java/org/brapi/test/BrAPITestServer/controller/germ/GermplasmApiController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public ResponseEntity<GermplasmPedigreeResponse> germplasmGermplasmDbIdPedigreeG
9898
log.debug("Request: " + request.getRequestURI());
9999
validateSecurityContext(request, "ROLE_ANONYMOUS", "ROLE_USER");
100100
validateAcceptHeader(request);
101-
PedigreeNode data = pedigreeService.getGermplasmPedigree(germplasmDbId, notation, includeSiblings);
101+
PedigreeNode data = pedigreeService.getGermplasmPedigree(germplasmDbId, includeSiblings);
102102
return responseOK(new GermplasmPedigreeResponse(), data);
103103
}
104104

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

Lines changed: 25 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -168,23 +168,35 @@ public Optional<PedigreeNodeEntity> getPedigreeNode(String germplasmDbId) {
168168
return node;
169169
}
170170

171-
public PedigreeNode getGermplasmPedigree(String germplasmDbId, String notation, Boolean includeSiblings)
171+
public PedigreeNode getGermplasmPedigree(String germplasmDbId, Boolean includeSiblings)
172172
throws BrAPIServerException {
173-
return convertFromGermplasmEntityToPedigree(germplasmService.getGermplasmEntity(germplasmDbId), notation,
174-
includeSiblings);
173+
if(includeSiblings == null)
174+
includeSiblings = false;
175+
176+
Optional<PedigreeNodeEntity> pedigreeEntityOpt = getPedigreeNode(germplasmDbId);
177+
PedigreeNode result = null;
178+
if(pedigreeEntityOpt.isPresent()) {
179+
PedigreeSearchRequest psr = new PedigreeSearchRequest();
180+
psr.setIncludeParents(true);
181+
psr.setIncludeProgeny(false);
182+
psr.includeSiblings(includeSiblings);
183+
result = convertFromEntity(pedigreeEntityOpt.get(), psr);
184+
}
185+
return result;
175186
}
176187

177188
public ProgenyNode getGermplasmProgeny(String germplasmDbId) throws BrAPIServerException {
178-
GermplasmEntity germplasm = germplasmService.getGermplasmEntity(germplasmDbId);
189+
Optional<PedigreeNodeEntity> pedigreeEntityOpt = getPedigreeNode(germplasmDbId);
179190

180-
ProgenyNode result = new ProgenyNode();
181-
result.setProgeny(new ArrayList<>());
182-
result.setGermplasmDbId(germplasm.getId());
183-
result.setGermplasmName(germplasm.getGermplasmName());
191+
ProgenyNode result = null;
192+
if (pedigreeEntityOpt.isPresent()) {
193+
PedigreeNodeEntity pedigreeEntity = pedigreeEntityOpt.get();
194+
result = new ProgenyNode();
195+
result.setProgeny(new ArrayList<>());
196+
result.setGermplasmDbId(pedigreeEntity.getGermplasm().getId());
197+
result.setGermplasmName(pedigreeEntity.getGermplasm().getGermplasmName());
184198

185-
if (germplasm.getPedigree() != null) {
186-
List<PedigreeNodeEntity> progenyEntities = germplasm.getPedigree().getProgenyNodes();
187-
for (PedigreeNodeEntity progenyNode : progenyEntities) {
199+
for (PedigreeNodeEntity progenyNode : pedigreeEntity.getProgenyNodes()) {
188200
ProgenyNodeProgeny progeny = new ProgenyNodeProgeny();
189201
progeny.setGermplasmName(progenyNode.getGermplasm().getGermplasmName());
190202
progeny.setGermplasmDbId(progenyNode.getGermplasm().getId());
@@ -193,6 +205,7 @@ public ProgenyNode getGermplasmProgeny(String germplasmDbId) throws BrAPIServerE
193205
}
194206
result.getProgeny().add(progeny);
195207
}
208+
196209
}
197210

198211
return result;
@@ -259,7 +272,7 @@ public void updateGermplasmPedigree(List<Germplasm> data) throws BrAPIServerExce
259272
updatePedigreeNodes.put(germplasm.getGermplasmDbId(), convertFromGermplasmToPedigree(germplasm));
260273
}
261274
}
262-
275+
263276
savePedigreeNodes(createPedigreeNodes);
264277
updatePedigreeNodes(updatePedigreeNodes);
265278

@@ -486,42 +499,4 @@ public PedigreeNode convertFromGermplasmToPedigree(Germplasm germplasm) {
486499

487500
return node;
488501
}
489-
490-
public PedigreeNode convertFromGermplasmEntityToPedigree(GermplasmEntity germplasm, String notation,
491-
Boolean includeSiblings) {
492-
PedigreeNode pedigree = new PedigreeNode();
493-
pedigree.setGermplasmDbId(germplasm.getId());
494-
pedigree.setGermplasmName(germplasm.getGermplasmName());
495-
pedigree.setParents(new ArrayList<>());
496-
pedigree.setSiblings(new ArrayList<>());
497-
498-
if (germplasm.getPedigree() != null) {
499-
PedigreeNodeEntity entity = germplasm.getPedigree();
500-
if (entity.getCrossingProject() != null)
501-
pedigree.setCrossingProjectDbId(entity.getCrossingProject().getId());
502-
pedigree.setCrossingYear(entity.getCrossingYear());
503-
pedigree.setFamilyCode(entity.getFamilyCode());
504-
505-
if (entity.getParentEdges() != null) {
506-
pedigree.getParents().addAll(entity.getParentEdges().stream().map(edge -> {
507-
PedigreeNodeParents parent = new PedigreeNodeParents();
508-
parent.setGermplasmDbId(edge.getConncetedNode().getGermplasm().getId());
509-
parent.setGermplasmName(edge.getConncetedNode().getGermplasm().getGermplasmName());
510-
parent.setParentType(edge.getParentType());
511-
return parent;
512-
}).collect(Collectors.toList()));
513-
}
514-
515-
if (includeSiblings != null && includeSiblings) {
516-
List<PedigreeNodeEntity> siblingEntities = pedigreeRepository.findPedigreeSiblings(entity);
517-
pedigree.setSiblings(siblingEntities.stream().map(sibNode -> {
518-
PedigreeNodeSiblings progeny = new PedigreeNodeSiblings();
519-
progeny.setGermplasmDbId(sibNode.getGermplasm().getId());
520-
progeny.setGermplasmName(sibNode.getGermplasm().getGermplasmName());
521-
return progeny;
522-
}).collect(Collectors.toList()));
523-
}
524-
}
525-
return pedigree;
526-
}
527502
}

0 commit comments

Comments
 (0)