|
23 | 23 | import org.brapi.test.BrAPITestServer.model.entity.pheno.TaxonEntity; |
24 | 24 | import org.brapi.test.BrAPITestServer.repository.germ.GermplasmDonorRepository; |
25 | 25 | import org.brapi.test.BrAPITestServer.repository.germ.GermplasmRepository; |
26 | | -import org.brapi.test.BrAPITestServer.repository.germ.PedigreeRepository; |
27 | 26 | import org.brapi.test.BrAPITestServer.service.DateUtility; |
28 | 27 | import org.brapi.test.BrAPITestServer.service.GeoJSONUtility; |
29 | 28 | import org.brapi.test.BrAPITestServer.service.PagingUtility; |
|
55 | 54 | import io.swagger.model.germ.GermplasmOrigin; |
56 | 55 | import io.swagger.model.germ.GermplasmSearchRequest; |
57 | 56 | import io.swagger.model.germ.GermplasmStorageTypes; |
58 | | -import io.swagger.model.germ.ParentType; |
59 | | -import io.swagger.model.germ.PedigreeNode; |
60 | | -import io.swagger.model.germ.PedigreeNodeParents; |
61 | | -import io.swagger.model.germ.PedigreeNodeSiblings; |
62 | | -import io.swagger.model.germ.ProgenyNode; |
63 | | -import io.swagger.model.germ.ProgenyNodeProgeny; |
64 | 57 | import io.swagger.model.germ.TaxonID; |
65 | 58 |
|
66 | 59 | @Service |
67 | 60 | public class GermplasmService { |
68 | 61 |
|
69 | 62 | private final GermplasmRepository germplasmRepository; |
70 | 63 | private final GermplasmDonorRepository donorRepository; |
71 | | - private final PedigreeRepository pedigreeRepository; |
72 | 64 | private final BreedingMethodService breedingMethodService; |
73 | 65 | private final CropService cropService; |
74 | 66 |
|
75 | 67 | @Autowired |
76 | | - public GermplasmService(GermplasmRepository germplasmRepository, GermplasmDonorRepository donorRepository, PedigreeRepository pedigreeRepository, |
| 68 | + public GermplasmService(GermplasmRepository germplasmRepository, GermplasmDonorRepository donorRepository, |
77 | 69 | BreedingMethodService breedingMethodService, CropService cropService) { |
78 | 70 | this.germplasmRepository = germplasmRepository; |
79 | 71 | this.donorRepository = donorRepository; |
80 | | - this.pedigreeRepository = pedigreeRepository; |
81 | 72 |
|
82 | 73 | this.breedingMethodService = breedingMethodService; |
83 | 74 | this.cropService = cropService; |
@@ -198,35 +189,6 @@ public GermplasmEntity getGermplasmEntity(String germplasmDbId, HttpStatus error |
198 | 189 | return germplasm; |
199 | 190 | } |
200 | 191 |
|
201 | | - public PedigreeNode getGermplasmPedigree(String germplasmDbId, String notation, Boolean includeSiblings) |
202 | | - throws BrAPIServerException { |
203 | | - return convertFromEntityToPedigree(getGermplasmEntity(germplasmDbId), notation, includeSiblings); |
204 | | - } |
205 | | - |
206 | | - public ProgenyNode getGermplasmProgeny(String germplasmDbId) throws BrAPIServerException { |
207 | | - GermplasmEntity germplasm = getGermplasmEntity(germplasmDbId); |
208 | | - |
209 | | - ProgenyNode result = new ProgenyNode(); |
210 | | - result.setProgeny(new ArrayList<>()); |
211 | | - result.setGermplasmDbId(germplasm.getId()); |
212 | | - result.setGermplasmName(germplasm.getGermplasmName()); |
213 | | - |
214 | | - if (germplasm.getPedigree() != null) { |
215 | | - List<PedigreeNodeEntity> progenyEntities = germplasm.getPedigree().getProgenyNodes(); |
216 | | - for (PedigreeNodeEntity progenyNode : progenyEntities) { |
217 | | - ProgenyNodeProgeny progeny = new ProgenyNodeProgeny(); |
218 | | - progeny.setGermplasmName(progenyNode.getGermplasm().getGermplasmName()); |
219 | | - progeny.setGermplasmDbId(progenyNode.getGermplasm().getId()); |
220 | | - if (progenyNode.getParentEdges() != null && !progenyNode.getParentEdges().isEmpty()) { |
221 | | - progeny.setParentType(progenyNode.getParentEdges().get(0).getParentType()); |
222 | | - } |
223 | | - result.getProgeny().add(progeny); |
224 | | - } |
225 | | - } |
226 | | - |
227 | | - return result; |
228 | | - } |
229 | | - |
230 | 192 | public Germplasm updateGermplasm(String germplasmDbId, GermplasmNewRequest body) |
231 | 193 | throws BrAPIServerException { |
232 | 194 | GermplasmEntity entity = getGermplasmEntity(germplasmDbId, HttpStatus.NOT_FOUND); |
@@ -351,8 +313,12 @@ private void updateEntity(GermplasmEntity entity, GermplasmNewRequest request) t |
351 | 313 | if (request.getInstituteCode() != null || request.getInstituteName() != null) |
352 | 314 | entity.setHostInstitute(request.getInstituteCode(), request.getInstituteName()); |
353 | 315 | entity.setMlsStatus(MlsStatusEnum.EMPTY); |
354 | | - if (request.getPedigree() != null) |
355 | | - updatePedigreeEntity(request.getPedigree(), entity); |
| 316 | + if (request.getPedigree() != null) { |
| 317 | + if(entity.getPedigree() == null) { |
| 318 | + entity.setPedigree(new PedigreeNodeEntity()); |
| 319 | + } |
| 320 | + entity.getPedigree().setPedigreeString(request.getPedigree()); |
| 321 | + } |
356 | 322 | if (request.getSeedSource() != null) |
357 | 323 | entity.setSeedSource(request.getSeedSource()); |
358 | 324 | if (request.getSeedSourceDescription() != null) |
@@ -406,35 +372,7 @@ private void updateSynonymEntities(List<GermplasmNewRequestSynonyms> synonyms, G |
406 | 372 | } |
407 | 373 | } |
408 | 374 |
|
409 | | - private void updatePedigreeEntity(String pedigree, GermplasmEntity entity) throws BrAPIServerException { |
410 | | - pedigreeEntityNullCheck(entity); |
411 | | - PedigreeNodeEntity pedEntity = entity.getPedigree(); |
412 | | - pedEntity.setPedigreeString(pedigree); |
413 | | - |
414 | | - List<String> pedigreeList = Arrays.asList(pedigree.split("/")); |
415 | | - Optional<GermplasmEntity> motherOpt = Optional.empty(); |
416 | | - Optional<GermplasmEntity> fatherOpt = Optional.empty(); |
417 | | - if (pedigreeList.size() > 0) { |
418 | | - motherOpt = Optional.ofNullable(findByUnknownIdentity(pedigreeList.get(0))); |
419 | | - if (pedigreeList.size() > 1) { |
420 | | - fatherOpt = Optional.ofNullable(findByUnknownIdentity(pedigreeList.get(1))); |
421 | | - } |
422 | | - } |
423 | | - if (motherOpt.isPresent()) { |
424 | | - pedigreeEntityNullCheck(motherOpt.get()); |
425 | | - PedigreeNodeEntity mother = motherOpt.get().getPedigree(); |
426 | | - pedEntity.addParent(mother, ParentType.FEMALE); |
427 | | - mother.addProgeny(pedEntity, ParentType.FEMALE); |
428 | | - } |
429 | | - if (fatherOpt.isPresent()) { |
430 | | - pedigreeEntityNullCheck(fatherOpt.get()); |
431 | | - PedigreeNodeEntity father = fatherOpt.get().getPedigree(); |
432 | | - pedEntity.addParent(father, ParentType.MALE); |
433 | | - father.addProgeny(pedEntity, ParentType.MALE); |
434 | | - } |
435 | | - } |
436 | | - |
437 | | - private GermplasmEntity findByUnknownIdentity(String germplasmStr) { |
| 375 | + public GermplasmEntity findByUnknownIdentity(String germplasmStr) { |
438 | 376 | List<String> germplasmList = Arrays.asList(germplasmStr); |
439 | 377 | Metadata metadata = new Metadata().pagination(new IndexPagination()); |
440 | 378 |
|
@@ -472,13 +410,6 @@ private GermplasmEntity findByUnknownIdentity(String germplasmStr) { |
472 | 410 | return null; |
473 | 411 | } |
474 | 412 |
|
475 | | - private void pedigreeEntityNullCheck(GermplasmEntity entity) { |
476 | | - if (entity.getPedigree() == null) { |
477 | | - entity.setPedigree(new PedigreeNodeEntity()); |
478 | | - entity.getPedigree().setGermplasm(entity); |
479 | | - } |
480 | | - } |
481 | | - |
482 | 413 | private void updateOriginEntities(List<GermplasmOrigin> origins, GermplasmEntity entity) { |
483 | 414 | if (entity.getGermplasmOrigin() != null) { |
484 | 415 | for (GermplasmOriginEntity oldEntity : entity.getGermplasmOrigin()) { |
@@ -542,44 +473,6 @@ private TaxonID convertFromEntity(TaxonEntity entity) { |
542 | 473 | return taxonId; |
543 | 474 | } |
544 | 475 |
|
545 | | - public PedigreeNode convertFromEntityToPedigree(GermplasmEntity germplasm, String notation, |
546 | | - Boolean includeSiblings) { |
547 | | - PedigreeNode pedigree = new PedigreeNode(); |
548 | | - pedigree.setGermplasmDbId(germplasm.getId()); |
549 | | - pedigree.setGermplasmName(germplasm.getGermplasmName()); |
550 | | - pedigree.setParents(new ArrayList<>()); |
551 | | - pedigree.setSiblings(new ArrayList<>()); |
552 | | - |
553 | | - if (germplasm.getPedigree() != null) { |
554 | | - PedigreeNodeEntity entity = germplasm.getPedigree(); |
555 | | - if (entity.getCrossingProject() != null) |
556 | | - pedigree.setCrossingProjectDbId(entity.getCrossingProject().getId()); |
557 | | - pedigree.setCrossingYear(entity.getCrossingYear()); |
558 | | - pedigree.setFamilyCode(entity.getFamilyCode()); |
559 | | - |
560 | | - if (entity.getParentEdges() != null) { |
561 | | - pedigree.getParents().addAll(entity.getParentEdges().stream().map(edge -> { |
562 | | - PedigreeNodeParents parent = new PedigreeNodeParents(); |
563 | | - parent.setGermplasmDbId(edge.getConncetedNode().getGermplasm().getId()); |
564 | | - parent.setGermplasmName(edge.getConncetedNode().getGermplasm().getGermplasmName()); |
565 | | - parent.setParentType(edge.getParentType()); |
566 | | - return parent; |
567 | | - }).collect(Collectors.toList())); |
568 | | - } |
569 | | - |
570 | | - if (includeSiblings != null && includeSiblings) { |
571 | | - List<PedigreeNodeEntity> siblingEntities = pedigreeRepository.findPedigreeSiblings(entity); |
572 | | - pedigree.setSiblings(siblingEntities.stream().map(sibNode -> { |
573 | | - PedigreeNodeSiblings progeny = new PedigreeNodeSiblings(); |
574 | | - progeny.setGermplasmDbId(sibNode.getGermplasm().getId()); |
575 | | - progeny.setGermplasmName(sibNode.getGermplasm().getGermplasmName()); |
576 | | - return progeny; |
577 | | - }).collect(Collectors.toList())); |
578 | | - } |
579 | | - } |
580 | | - return pedigree; |
581 | | - } |
582 | | - |
583 | 476 | private GermplasmMCPD convertFromEntityToMCPD(GermplasmEntity entity) { |
584 | 477 | GermplasmMCPD mcpd = new GermplasmMCPD(); |
585 | 478 | mcpd.setAccessionNames(getAccessionNames(entity)); |
|
0 commit comments