Project

General

Profile

« Previous | Next » 

Revision c6aeda45

Added by Katja Luther about 5 years ago

ref #7680: set TaxonNode.setTaxon public and new saveMethod for taxonnodes

View differences:

cdmlib-model/src/main/java/eu/etaxonomy/cdm/model/taxon/TaxonNode.java
251 251
    public Taxon getTaxon() {
252 252
        return taxon;
253 253
    }
254
    protected void setTaxon(Taxon taxon) {
254
    public void setTaxon(Taxon taxon) {
255 255
        this.taxon = taxon;
256 256
        if (taxon != null){
257 257
            taxon.addTaxonNode(this);
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/ITaxonNodeService.java
360 360
     */
361 361
    List<TaxonDistributionDTO> getTaxonDistributionDTOForSubtree(UUID parentNodeUuid, List<String> propertyPaths);
362 362

  
363
    /**
364
     * @param parentNodeUuid
365
     * @param newTaxonNode
366
     * @return
367
     */
368
    UpdateResult saveNewTaxonNode(TaxonNode newTaxonNode);
369

  
363 370
}
cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TaxonNodeServiceImpl.java
844 844
        return result;
845 845

  
846 846
    }
847

  
848

  
849
    @Override
850
    @Transactional
851
    public UpdateResult saveNewTaxonNode(TaxonNode newTaxonNode){
852
        UpdateResult result = new UpdateResult();
853
        if (newTaxonNode.getTaxon().getName().getId() != 0){
854
            TaxonName name = nameService.load(newTaxonNode.getTaxon().getName().getUuid());
855
            newTaxonNode.getTaxon().setName(name);
856
        }else{
857
            for (HybridRelationship rel : newTaxonNode.getTaxon().getName().getHybridChildRelations()){
858
                if (!rel.getHybridName().isPersited()) {
859
                    nameService.save(rel.getHybridName());
860
                }
861
                if (!rel.getParentName().isPersited()) {
862
                    nameService.save(rel.getParentName());
863
                }
864
            }
865
        }
866
        UUID taxonUUID = taxonService.saveOrUpdate(newTaxonNode.getTaxon());
867
        UUID childUUID = dao.saveOrUpdate(newTaxonNode);
868

  
869
        TaxonNode parent = dao.load(newTaxonNode.getParent().getUuid());
870
        TaxonNode child = dao.load(childUUID);
871
        result.addUpdatedObject(parent);
872
        if (child != null){
873
            result.setCdmEntity(child);
874
        }
875
        return result;
876

  
877
    }
878

  
879

  
880

  
847 881
    @Override
848 882
    @Transactional
849 883
    public UpdateResult createNewTaxonNode(UUID parentNodeUuid, UUID taxonUuid, Reference ref, String microref){

Also available in: Unified diff