Project

General

Profile

Download (3.11 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.ArrayList;
14
import java.util.List;
15
import java.util.Set;
16

    
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.api.service.pager.Pager;
22
import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl;
23
import eu.etaxonomy.cdm.common.monitor.IProgressMonitor;
24
import eu.etaxonomy.cdm.model.description.MediaKey;
25
import eu.etaxonomy.cdm.model.location.NamedArea;
26
import eu.etaxonomy.cdm.model.media.Media;
27
import eu.etaxonomy.cdm.model.media.Rights;
28
import eu.etaxonomy.cdm.model.taxon.Taxon;
29
import eu.etaxonomy.cdm.persistence.dao.media.IMediaDao;
30
import eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy;
31

    
32
@Service
33
@Transactional(readOnly=true)
34
public class MediaServiceImpl extends IdentifiableServiceBase<Media,IMediaDao> implements IMediaService {
35

    
36
	@Autowired
37
	protected void setDao(IMediaDao dao) {
38
		this.dao = dao;
39
	}
40

    
41
	public Pager<MediaKey> getMediaKeys(Set<Taxon> taxonomicScope, Set<NamedArea> geoScopes, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
42
        Integer numberOfResults = dao.countMediaKeys(taxonomicScope, geoScopes);
43
		
44
		List<MediaKey> results = new ArrayList<MediaKey>();
45
		if(numberOfResults > 0) { // no point checking again  //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize)
46
			results = dao.getMediaKeys(taxonomicScope, geoScopes, pageSize, pageNumber, propertyPaths); 
47
		}
48
		
49
		return new DefaultPagerImpl<MediaKey>(pageNumber, numberOfResults, pageSize, results);
50
	}
51
	
52
	public Pager<Rights> getRights(Media t, Integer pageSize, Integer pageNumber, List<String> propertyPaths) {
53
        Integer numberOfResults = dao.countRights(t);
54
		
55
		List<Rights> results = new ArrayList<Rights>();
56
		if(numberOfResults > 0) { // no point checking again  //TODO use AbstractPagerImpl.hasResultsInRange(numberOfResults, pageNumber, pageSize)
57
			results = dao.getRights(t, pageSize, pageNumber,propertyPaths); 
58
		}
59
		
60
		return new DefaultPagerImpl<Rights>(pageNumber, numberOfResults, pageSize, results);
61
	}
62

    
63
	/* (non-Javadoc)
64
	 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache(java.lang.Integer, eu.etaxonomy.cdm.strategy.cache.common.IIdentifiableEntityCacheStrategy)
65
	 */
66
	@Override
67
	@Transactional(readOnly = false)
68
    public void updateTitleCache(Class<? extends Media> clazz, Integer stepSize, IIdentifiableEntityCacheStrategy<Media> cacheStrategy, IProgressMonitor monitor) {
69
		//IIdentifiableEntityCacheStrategy<Media> cacheStrategy = MediaDefaultCacheStrategy();
70
		if (clazz == null){
71
			clazz = Media.class;
72
		}
73
		super.updateTitleCacheImpl(clazz, stepSize, cacheStrategy, monitor);
74
	}
75
}
(71-71/97)