@@ -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