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.dao.EmptyResultDataAccessException;
10
import org.springframework.jdbc.core.JdbcTemplate;
11
import org.springframework.jdbc.core.RowMapper;
12
import org.springframework.jdbc.datasource.DataSourceUtils;
13
import org.springframework.transaction.annotation.Transactional;
14

    
15
import javax.sql.DataSource;
16
import java.sql.Connection;
17
import java.sql.ResultSet;
18
import java.sql.SQLException;
19
import java.sql.Types;
20
import java.util.ArrayList;
21
import java.util.List;
22

    
23
/**
24
 * Created by antleb on 3/3/15.
25
 */
26
@Transactional
27
public class ProjectManagerImpl implements ProjectManager {
28

    
29
	private ProjectDAO projectDAO;
30
	private PersonDAO personDAO;
31
	private OrganizationDAO organizationDAO;
32

    
33
	@Override
34
	public List<Vocabulary> search(String term) {
35
		return projectDAO.search(term);
36
	}
37

    
38
	@Override
39
	public Project getById(String projectId) {
40

    
41
		Project project = projectDAO.getProject(projectId);
42

    
43
		loadRelationships(project);
44

    
45
		return project;
46
	}
47

    
48
	private void loadRelationships(Project project) {
49

    
50
        try {
51
            project.setCoordinator(personDAO.getPerson(project.getCoordinator().getEmail()));
52
        } catch (EmptyResultDataAccessException e) {
53
            ;
54
        }
55

    
56
		List<Organization> orgs = new ArrayList<Organization>();
57

    
58
		for (Organization org:project.getOrganizations()) {
59
			orgs.add(organizationDAO.getOrganization(org.getId()));
60
		}
61
		project.setOrganizations(orgs);
62
	}
63

    
64
	public ProjectDAO getProjectDAO() {
65
		return projectDAO;
66
	}
67

    
68
	public void setProjectDAO(ProjectDAO projectDAO) {
69
		this.projectDAO = projectDAO;
70
	}
71

    
72
	public PersonDAO getPersonDAO() {
73
		return personDAO;
74
	}
75

    
76
	public void setPersonDAO(PersonDAO personDAO) {
77
		this.personDAO = personDAO;
78
	}
79

    
80
	public OrganizationDAO getOrganizationDAO() {
81
		return organizationDAO;
82
	}
83

    
84
	public void setOrganizationDAO(OrganizationDAO organizationDAO) {
85
		this.organizationDAO = organizationDAO;
86
	}
87
}
(9-9/19)