Project

General

Profile

1
package eu.dnetlib.goldoa.service;
2

    
3
import eu.dnetlib.goldoa.domain.Organization;
4
import eu.dnetlib.goldoa.domain.Project;
5
import eu.dnetlib.goldoa.domain.Vocabulary;
6
import eu.dnetlib.goldoa.service.dao.OrganizationDAO;
7
import eu.dnetlib.goldoa.service.dao.PersonDAO;
8
import eu.dnetlib.goldoa.service.dao.ProjectDAO;
9
import org.springframework.beans.factory.annotation.Autowired;
10
import org.springframework.dao.EmptyResultDataAccessException;
11
import org.springframework.transaction.annotation.Transactional;
12

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

    
16
/**
17
 * Created by antleb on 3/3/15.
18
 */
19
@Transactional
20
public class ProjectManagerImpl implements ProjectManager {
21

    
22
    @Autowired
23
	private ProjectDAO projectDAO;
24
    @Autowired
25
	private PersonDAO personDAO;
26
    @Autowired
27
	private OrganizationDAO organizationDAO;
28

    
29
	@Override
30
	public List<Vocabulary> search(String term) {
31
		return projectDAO.search(term);
32
	}
33

    
34
	@Override
35
	public Project getById(String projectId) {
36

    
37
		Project project = projectDAO.getProject(projectId);
38

    
39
		loadRelationships(project);
40

    
41
		return project;
42
	}
43

    
44
    @Override
45
    public List<Project> getEligibleProjectsForOrganization(String organizationId) {
46
        List<Project> projects = projectDAO.getEligibleProjectsForOrganization(organizationId);
47

    
48
        return projects;
49
    }
50

    
51
    @Override
52
    public List<Project> getFutureEligibleProjectsForOrganization(String organizationId) {
53
        List<Project> projects = projectDAO.getFutureEligibleProjectsForOrganization(organizationId);
54

    
55
        return projects;
56
    }
57

    
58
    private void loadRelationships(Project project) {
59

    
60
        try {
61
            project.setCoordinator(personDAO.getPersonById(project.getCoordinator().getId()));
62
        } catch (EmptyResultDataAccessException e) {
63
            ;
64
        }
65

    
66
		List<Organization> orgs = new ArrayList<Organization>();
67

    
68
		for (Organization org:project.getOrganizations()) {
69
			orgs.add(organizationDAO.getOrganization(org.getId()));
70
		}
71
		project.setOrganizations(orgs);
72
	}
73

    
74
	public ProjectDAO getProjectDAO() {
75
		return projectDAO;
76
	}
77

    
78
	public void setProjectDAO(ProjectDAO projectDAO) {
79
		this.projectDAO = projectDAO;
80
	}
81

    
82
	public PersonDAO getPersonDAO() {
83
		return personDAO;
84
	}
85

    
86
	public void setPersonDAO(PersonDAO personDAO) {
87
		this.personDAO = personDAO;
88
	}
89

    
90
	public OrganizationDAO getOrganizationDAO() {
91
		return organizationDAO;
92
	}
93

    
94
	public void setOrganizationDAO(OrganizationDAO organizationDAO) {
95
		this.organizationDAO = organizationDAO;
96
	}
97
}
(15-15/24)