Project

General

Profile

1
package eu.dnetlib.data.claims.handler;
2

    
3
import eu.dnetlib.data.claims.entity.Project;
4
import eu.dnetlib.data.claims.utils.QueryGenerator;
5
import eu.dnetlib.data.claims.sql.SQLStoreException;
6
import eu.dnetlib.data.claims.sql.SqlDAO;
7
import org.apache.log4j.Logger;
8

    
9
import java.sql.ResultSet;
10
import java.util.*;
11

    
12
/**
13
 * Created by konstantina on 10/4/2017.
14
 */
15
public class FetchProjectHandler {
16
    private Logger log = Logger.getLogger(this.getClass());
17

    
18
    SqlDAO sqlDAO = null;
19
    QueryGenerator queryGenerator = null;
20

    
21
    public FetchProjectHandler(){
22

    
23
    }
24
/*
25
    public String fetchProjectIdByTokenAndEmail(String token, String email) throws Exception, SQLStoreException {
26
        String openaireId = null;
27
        ArrayList<Object> params = new ArrayList<>();
28
        String query = queryGenerator.generateSelectProjectIdByTokenAndEmailQuery(token, email, params);
29
        ResultSet rs = sqlDAO.executePreparedQuery(query, params);
30

    
31
        if(rs.next()) {
32
            openaireId = rs.getString(1);
33
        }
34
        rs.close();
35
        return openaireId;
36
    }
37

    
38
    public String fetchProjectIdByToken(String token) throws Exception, SQLStoreException {
39
        String openaireId = null;
40
        ArrayList<Object> params = new ArrayList<>();
41
        String query = queryGenerator.generateSelectProjectIdByTokenQuery(token, params);
42
        ResultSet rs = sqlDAO.executePreparedQuery(query, params);
43

    
44
        if(rs.next()) {
45
            openaireId = rs.getString(1);
46
        }
47
        rs.close();
48
        return openaireId;
49
    }
50
*/
51
    public Project fetchProjectById(String projectId) throws Exception, SQLStoreException {
52
        ArrayList<Object> params = new ArrayList<>();
53
        String query = queryGenerator.generateSelectProjectByIdQuery(projectId, params);
54
        ResultSet rs = sqlDAO.executePreparedQuery(query, params);
55

    
56
        Project project = fetchProjectByResultSet(rs);
57
        if(project == null) {
58
            log.info("No project with id : "+ projectId+"\n");
59
        }
60

    
61
        return project;
62
    }
63

    
64
    public List<String> fetchContactEmailsByProjectId(String projectId) throws Exception, SQLStoreException {
65
        ArrayList<Object> params = new ArrayList<>();
66
        String query = queryGenerator.generateSelectContactEmailsByProjectIdQuery(projectId, params);
67
        ResultSet rs = sqlDAO.executePreparedQuery(query, params);
68

    
69
        List<String> mails = null;
70

    
71
        while(rs.next()) {
72
            if(mails == null) {
73
                mails = new ArrayList<String>();
74
            }
75
            mails.add(rs.getString(1));
76
        }
77
        return mails;
78
    }
79

    
80
    public Map<String, String> fetchProjectIdsAndNamesByProjectManagerMail(String userMail) throws Exception, SQLStoreException {
81
        ArrayList<Object> params = new ArrayList<>();
82
        String query = queryGenerator.generateSelectProjectIdsAndNamesByProjectManagerMail(userMail, params);
83
        ResultSet rs = sqlDAO.executePreparedQuery(query, params);
84

    
85
        Map<String, String> projectIdsAndNames = null;
86
        while(rs.next()) {
87
            if(projectIdsAndNames == null) {
88
                projectIdsAndNames = new HashMap<String, String>();
89
            }
90
            projectIdsAndNames.put(rs.getString(1), rs.getString(2));
91
        }
92
        return projectIdsAndNames;
93
    }
94

    
95
    public Project fetchProjectByResultSet(ResultSet rs) throws Exception {
96
        Project project = null;
97
        while(rs.next()) {
98
            project = new Project();
99
            project.setOpenaireId(rs.getString(1));
100
            project.setName(rs.getString(2));
101
            project.setAcronym(rs.getString(3));
102
            project.setFunderId(rs.getString(4));
103
            project.setFunderName(rs.getString(5));
104
            project.setFunderShortName(rs.getString(6));
105
            //project.setContactEmails((List<String>)rs.getArray(7));
106
        }
107
        return project;
108
    }
109

    
110
    public SqlDAO getSqlDAO() {
111
        return sqlDAO;
112
    }
113

    
114
    public void setSqlDAO(SqlDAO sqlDAO) {
115
        this.sqlDAO = sqlDAO;
116
    }
117

    
118
    public QueryGenerator getQueryGenerator() {
119
        return queryGenerator;
120
    }
121

    
122
    public void setQueryGenerator(QueryGenerator queryGenerator) {
123
        this.queryGenerator = queryGenerator;
124
    }
125
}
(8-8/12)