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.sql.SQLStoreException;
5
import eu.dnetlib.data.claims.sql.SqlDAO;
6
import eu.dnetlib.data.claims.utils.QueryGenerator;
7
import org.apache.logging.log4j.LogManager;
8
import org.apache.logging.log4j.Logger;
9

    
10
import java.sql.ResultSet;
11
import java.util.ArrayList;
12
import java.util.HashMap;
13
import java.util.List;
14
import java.util.Map;
15

    
16
/**
17
 * Created by konstantina on 10/4/2017.
18
 */
19
public class FetchProjectHandler {
20
    private Logger log = LogManager.getLogger(this.getClass());
21

    
22
    SqlDAO sqlDAO = null;
23
    QueryGenerator queryGenerator = null;
24

    
25
    public FetchProjectHandler(){
26

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

    
35
        if(rs.next()) {
36
            openaireId = rs.getString(1);
37
        }
38
        rs.close();
39
        return openaireId;
40
    }
41

    
42
    public String fetchProjectIdByToken(String token) throws Exception, SQLStoreException {
43
        String openaireId = null;
44
        ArrayList<Object> params = new ArrayList<>();
45
        String query = queryGenerator.generateSelectProjectIdByTokenQuery(token, params);
46
        ResultSet rs = sqlDAO.executePreparedQuery(query, params);
47

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

    
60
        Project project = fetchProjectByResultSet(rs);
61
        if(project == null) {
62
            log.info("No project with id : "+ projectId+"\n");
63
        }
64

    
65
        return project;
66
    }
67

    
68
    public List<String> fetchContactEmailsByProjectId(String projectId) throws Exception, SQLStoreException {
69
        ArrayList<Object> params = new ArrayList<>();
70
        String query = queryGenerator.generateSelectContactEmailsByProjectIdQuery(projectId, params);
71
        ResultSet rs = sqlDAO.executePreparedQuery(query, params);
72

    
73
        List<String> mails = null;
74

    
75
        while(rs.next()) {
76
            if(mails == null) {
77
                mails = new ArrayList<String>();
78
            }
79
            mails.add(rs.getString(1));
80
        }
81
        return mails;
82
    }
83

    
84
    public Map<String, String> fetchProjectIdsAndNamesByProjectManagerMail(String userMail) throws Exception, SQLStoreException {
85
        ArrayList<Object> params = new ArrayList<>();
86
        String query = queryGenerator.generateSelectProjectIdsAndNamesByProjectManagerMail(userMail, params);
87
        ResultSet rs = sqlDAO.executePreparedQuery(query, params);
88

    
89
        Map<String, String> projectIdsAndNames = null;
90
        while(rs.next()) {
91
            if(projectIdsAndNames == null) {
92
                projectIdsAndNames = new HashMap<String, String>();
93
            }
94
            projectIdsAndNames.put(rs.getString(1), rs.getString(2));
95
        }
96
        return projectIdsAndNames;
97
    }
98

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

    
114
    public SqlDAO getSqlDAO() {
115
        return sqlDAO;
116
    }
117

    
118
    public void setSqlDAO(SqlDAO sqlDAO) {
119
        this.sqlDAO = sqlDAO;
120
    }
121

    
122
    public QueryGenerator getQueryGenerator() {
123
        return queryGenerator;
124
    }
125

    
126
    public void setQueryGenerator(QueryGenerator queryGenerator) {
127
        this.queryGenerator = queryGenerator;
128
    }
129
}
(8-8/13)