Revision f303cdad
Added by Andreas Müller almost 6 years ago
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
ref #6359, ref #3740 (setSubtree) some further improvements, mostly for publish