Project

General

Profile

Download (3.32 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
 * Copyright (C) 2007 EDIT
4
 * European Distributed Institute of Taxonomy
5
 * http://www.e-taxonomy.eu
6
 *
7
 * The contents of this file are subject to the Mozilla Public License Version 1.1
8
 * See LICENSE.TXT at the top of this package for the full license terms.
9
 */
10

    
11
package eu.etaxonomy.cdm.api.service;
12

    
13
import java.util.List;
14
import java.util.UUID;
15

    
16
import org.apache.log4j.Logger;
17
import org.springframework.beans.factory.annotation.Autowired;
18
import org.springframework.stereotype.Service;
19
import org.springframework.transaction.annotation.Transactional;
20

    
21
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
22
import eu.etaxonomy.cdm.model.reference.Reference;
23
import eu.etaxonomy.cdm.model.taxon.TaxonBase;
24
import eu.etaxonomy.cdm.persistence.dao.common.ICdmGenericDao;
25
import eu.etaxonomy.cdm.persistence.dao.reference.IReferenceDao;
26
import eu.etaxonomy.cdm.persistence.dto.UuidAndTitleCache;
27
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
28

    
29

    
30
@Service
31
@Transactional(readOnly = true)
32
public class ReferenceServiceImpl extends IdentifiableServiceBase<Reference,IReferenceDao> implements IReferenceService {
33

    
34
    static Logger logger = Logger.getLogger(ReferenceServiceImpl.class);
35

    
36
    @Autowired
37
    private ICdmGenericDao genericDao;
38
    /**
39
     * Constructor
40
     */
41
    public ReferenceServiceImpl(){
42
        if (logger.isDebugEnabled()) { logger.debug("Load ReferenceService Bean"); }
43
    }
44

    
45
    @Override
46
    @Transactional(readOnly = false)
47
    public void updateTitleCache(Class<? extends Reference> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<Reference> cacheStrategy, IProgressMonitor monitor) {
48
        if (clazz == null){
49
            clazz = Reference.class;
50
        }
51
        super.updateTitleCacheImpl(clazz, stepSize, cacheStrategy, monitor);
52
    }
53

    
54

    
55
    @Override
56
    protected void setOtherCachesNull(Reference ref) {
57
        if (! ref.isProtectedAbbrevTitleCache()){
58
            ref.setAbbrevTitleCache(null, false);
59
        }
60
    }
61

    
62

    
63
    @Override
64
    @Autowired
65
    protected void setDao(IReferenceDao dao) {
66
        this.dao = dao;
67
    }
68

    
69
    @Override
70
    public List<UuidAndTitleCache<Reference>> getUuidAndTitle() {
71

    
72
        return dao.getUuidAndTitle();
73
    }
74

    
75
    @Override
76
    public List<Reference> getAllReferencesForPublishing(){
77
        return dao.getAllNotNomenclaturalReferencesForPublishing();
78
    }
79

    
80
    @Override
81
    public List<Reference> getAllNomenclaturalReferences() {
82

    
83
        return dao.getAllNomenclaturalReferences();
84
    }
85

    
86
    @Override
87
    public List<TaxonBase> listCoveredTaxa(Reference reference, boolean includeSubordinateReferences, List<String> propertyPaths) {
88

    
89
        List<TaxonBase> taxonList = dao.listCoveredTaxa(reference, includeSubordinateReferences, null, propertyPaths);
90

    
91
        return taxonList;
92
    }
93

    
94
    @Override
95
    public DeleteResult delete(Reference reference) {
96
        //check whether the reference is used somewhere
97
        DeleteResult result = isDeletable(reference, null);
98

    
99
        if (result.isOk()){
100
            dao.delete(reference);
101
        }
102

    
103
        return result;
104
    }
105

    
106
    @Override
107
    @Transactional(readOnly=false)
108
    public DeleteResult delete(UUID referenceUuid) {
109
        return delete(dao.load(referenceUuid));
110
    }
111
}
(84-84/97)