Project

General

Profile

Download (4.03 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

    
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.Propagation;
20
import org.springframework.transaction.annotation.Transactional;
21

    
22
import eu.etaxonomy.cdm.api.service.pager.Pager;
23
import eu.etaxonomy.cdm.api.service.pager.impl.DefaultPagerImpl;
24
import eu.etaxonomy.cdm.model.agent.Address;
25
import eu.etaxonomy.cdm.model.agent.AgentBase;
26
import eu.etaxonomy.cdm.model.agent.Institution;
27
import eu.etaxonomy.cdm.model.agent.InstitutionalMembership;
28
import eu.etaxonomy.cdm.model.agent.Person;
29
import eu.etaxonomy.cdm.model.agent.Team;
30
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
31
import eu.etaxonomy.cdm.model.common.TermVocabulary;
32
import eu.etaxonomy.cdm.model.common.UuidAndTitleCache;
33
import eu.etaxonomy.cdm.persistence.dao.agent.IAgentDao;
34

    
35

    
36

    
37
/**
38
 * @author a.mueller
39
 *
40
 */
41
@Service
42
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
43
public class AgentServiceImpl extends IdentifiableServiceBase<AgentBase,IAgentDao> implements IAgentService {
44
    private static final Logger logger = Logger.getLogger(AgentServiceImpl.class);
45
	
46

    
47
	/**
48
	 * Constructor
49
	 */
50
	public AgentServiceImpl(){
51
		if (logger.isDebugEnabled()) { logger.debug("Load AgentService Bean"); }
52
	}
53
	
54
	public List<Institution> searchInstitutionByCode(String code) {
55
		return dao.getInstitutionByCode(code);
56
	}
57

    
58
	/* (non-Javadoc)
59
	 * @see eu.etaxonomy.cdm.api.service.IIdentifiableEntityService#updateTitleCache()
60
	 */
61
	@Override
62
	public void updateTitleCache() {
63
		Class<AgentBase> clazz = AgentBase.class;
64
		super.updateTitleCache(clazz, null, null);
65
	}
66

    
67
	@Autowired
68
	protected void setDao(IAgentDao dao) {
69
		assert dao != null;
70
		this.dao = dao;
71
	}
72

    
73
	public Pager<InstitutionalMembership> getInstitutionalMemberships(Person person, Integer pageSize, Integer pageNumber) {
74
        Integer numberOfResults = dao.countInstitutionalMemberships(person);
75
		
76
		List<InstitutionalMembership> results = new ArrayList<InstitutionalMembership>();
77
		if(numberOfResults > 0) { // no point checking again
78
			results = dao.getInstitutionalMemberships(person, pageSize, pageNumber); 
79
		}
80
		
81
		return new DefaultPagerImpl<InstitutionalMembership>(pageNumber, numberOfResults, pageSize, results);
82
	}
83

    
84
	public Pager<Person> getMembers(Team team, Integer pageSize, Integer pageNumber) {
85
		Integer numberOfResults = dao.countMembers(team);
86
			
87
		List<Person> results = new ArrayList<Person>();
88
		if(numberOfResults > 0) { // no point checking again
89
			results = dao.getMembers(team, pageSize, pageNumber); 
90
		}
91
			
92
		return new DefaultPagerImpl<Person>(pageNumber, numberOfResults, pageSize, results);
93
	}
94

    
95
	public Pager<Address> getAddresses(AgentBase agent, Integer pageSize, Integer pageNumber) {
96
		Integer numberOfResults = dao.countAddresses(agent);
97
		
98
		List<Address> results = new ArrayList<Address>();
99
		if(numberOfResults > 0) { // no point checking again
100
			results = dao.getAddresses(agent, pageSize, pageNumber); 
101
		}
102
			
103
		return new DefaultPagerImpl<Address>(pageNumber, numberOfResults, pageSize, results);
104
	}
105

    
106
	/* (non-Javadoc)
107
	 * @see eu.etaxonomy.cdm.api.service.IAgentService#getTeamOrPersonBaseUuidAndNomenclaturalTitle()
108
	 */
109
	public List<UuidAndTitleCache<Team>> getTeamUuidAndNomenclaturalTitle() {
110
		return dao.getTeamUuidAndNomenclaturalTitle();
111
	}
112

    
113
	@Override
114
	public List<UuidAndTitleCache<Person>> getPersonUuidAndTitleCache() {
115
		return dao.getPersonUuidAndTitleCache();
116
	}
117

    
118
	@Override
119
	public List<UuidAndTitleCache<Team>> getTeamUuidAndTitleCache() {
120
		return dao.getTeamUuidAndTitleCache();
121
	}	
122
}
(4-4/67)