Project

General

Profile

« Previous | Next » 

Revision f303cdad

Added by Andreas Müller almost 6 years ago

ref #6359, ref #3740 (setSubtree) some further improvements, mostly for publish

View differences:

cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/TaxonNodeServiceImpl.java
812 812
    }
813 813

  
814 814
    @Override
815
    @Transactional
815
    @Transactional(readOnly=false)
816 816
    public UpdateResult setSecundumForSubtree(SecundumForSubtreeConfigurator config) {
817 817
        UpdateResult result = new UpdateResult();
818 818
        IProgressMonitor monitor = config.getMonitor();
......
842 842
            subTreeIndex = TreeIndex.NewInstance(subTree.treeIndex());
843 843
            int count = config.isIncludeAcceptedTaxa() ? dao.countSecundumForSubtreeAcceptedTaxa(subTreeIndex, newSec, config.isOverwriteExistingAccepted(), config.isIncludeSharedTaxa(), config.isEmptySecundumDetail()):0;
844 844
            count += config.isIncludeSynonyms() ? dao.countSecundumForSubtreeSynonyms(subTreeIndex, newSec, config.isOverwriteExistingSynonyms(), config.isIncludeSharedTaxa() , config.isEmptySecundumDetail()) :0;
845
//          Long count = dao.countChildrenOf(subTree, subTree.getClassification(), true);
846 845
            monitor.beginTask("Update Secundum Reference", count);
847 846
        }
848 847

  
......
868 867
     * {@inheritDoc}
869 868
     */
870 869
    @Override
871
    @Transactional
870
    @Transactional(readOnly=false)
872 871
    public UpdateResult setPublishForSubtree(UUID subtreeUuid, boolean publish, boolean includeAcceptedTaxa,
873 872
            boolean includeSynonyms, boolean includeSharedTaxa, IProgressMonitor monitor) {
874 873
        UpdateResult result = new UpdateResult();
875
       // IProgressMonitor monitor = config.getMonitor();
876 874
        if (monitor == null){
877 875
            monitor = DefaultProgressMonitor.NewInstance();
878 876
        }
879
        monitor.beginTask("Update publish flag", 100);
877
        TreeIndex subTreeIndex = null;
878

  
880 879
        if (subtreeUuid == null){
881 880
            result.setError();
882 881
            result.addException(new NullPointerException("No subtree given"));
......
889 888
            result.addException(new NullPointerException("Subtree does not exist"));
890 889
            monitor.done();
891 890
            return result;
891
        }else{
892
            subTreeIndex = TreeIndex.NewInstance(subTree.treeIndex());
893
            int count = includeAcceptedTaxa ? dao.countPublishForSubtreeAcceptedTaxa(subTreeIndex, publish, includeSharedTaxa):0;
894
            count += includeSynonyms ? dao.countPublishForSubtreeSynonyms(subTreeIndex, publish, includeSharedTaxa):0;
895
            monitor.beginTask("Update publish flag", count);
892 896
        }
893
        TreeIndex subTreeIndex = TreeIndex.NewInstance(subTree.treeIndex());
894 897

  
895 898

  
896 899
        if (includeAcceptedTaxa){
897 900
            monitor.subTask("Update Accepted Taxa");
898 901
            Set<TaxonBase> updatedTaxa = dao.setPublishForSubtreeAcceptedTaxa(subTreeIndex, publish, includeSharedTaxa, monitor);
899
//            taxonService.saveOrUpdate(updatedTaxa);
900 902
            result.addUpdatedObjects(updatedTaxa);
901 903
        }
902 904
        if (includeSynonyms){
903 905
            monitor.subTask("Update Synonyms");
904 906
            Set<TaxonBase> updatedSynonyms = dao.setPublishForSubtreeSynonyms(subTreeIndex, publish, includeSharedTaxa, monitor);
905
//            taxonService.saveOrUpdate(updatedSynonyms);
906 907
            result.addUpdatedObjects(updatedSynonyms);
907 908
        }
908 909
        monitor.done();

Also available in: Unified diff