2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.cdm
.api
.service
;
12 import java
.util
.ArrayList
;
13 import java
.util
.Collection
;
14 import java
.util
.List
;
16 import java
.util
.UUID
;
18 import org
.apache
.log4j
.Logger
;
19 import org
.springframework
.beans
.factory
.annotation
.Autowired
;
20 import org
.springframework
.stereotype
.Service
;
21 import org
.springframework
.transaction
.annotation
.Transactional
;
23 import eu
.etaxonomy
.cdm
.api
.service
.pager
.Pager
;
24 import eu
.etaxonomy
.cdm
.api
.service
.pager
.impl
.DefaultPagerImpl
;
25 import eu
.etaxonomy
.cdm
.model
.agent
.Agent
;
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
.persistence
.dao
.agent
.IAgentDao
;
40 public class AgentServiceImpl
extends IdentifiableServiceBase
<Agent
,IAgentDao
> implements IAgentService
{
41 @SuppressWarnings("unused")
42 private static final Logger logger
= Logger
.getLogger(AgentServiceImpl
.class);
45 public List
<Agent
> findAgentsByTitle(String title
) {
46 return super.findCdmObjectsByTitle(title
);
49 public Agent
getAgentByUuid(UUID uuid
) {
50 return dao
.findByUuid(uuid
);
53 public UUID
saveAgent(Agent agent
) {
54 return super.saveCdmObject(agent
);
57 @Transactional(readOnly
= false)
58 public Map
<UUID
, Agent
> saveAgentAll(Collection
<?
extends Agent
> agentCollection
){
59 return saveCdmObjectAll(agentCollection
);
63 public List
<Agent
> getAllAgents(int limit
, int start
){
64 return dao
.list(limit
, start
);
67 public List
<Institution
> searchInstitutionByCode(String code
) {
68 return dao
.getInstitutionByCode(code
);
71 public void generateTitleCache() {
72 // TODO Auto-generated method stub
77 protected void setDao(IAgentDao dao
) {
82 public Pager
<InstitutionalMembership
> getInstitutionalMemberships(Person person
, Integer pageSize
, Integer pageNumber
) {
83 Integer numberOfResults
= dao
.countInstitutionalMemberships(person
);
85 List
<InstitutionalMembership
> results
= new ArrayList
<InstitutionalMembership
>();
86 if(numberOfResults
> 0) { // no point checking again
87 results
= dao
.getInstitutionalMemberships(person
, pageSize
, pageNumber
);
90 return new DefaultPagerImpl
<InstitutionalMembership
>(pageNumber
, numberOfResults
, pageSize
, results
);
93 public Pager
<Person
> getMembers(Team team
, Integer pageSize
, Integer pageNumber
) {
94 Integer numberOfResults
= dao
.countMembers(team
);
96 List
<Person
> results
= new ArrayList
<Person
>();
97 if(numberOfResults
> 0) { // no point checking again
98 results
= dao
.getMembers(team
, pageSize
, pageNumber
);
101 return new DefaultPagerImpl
<Person
>(pageNumber
, numberOfResults
, pageSize
, results
);