Project

General

Profile

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

    
3
import eu.dnetlib.data.claims.migration.JsonldBuilder;
4
import eu.dnetlib.data.claims.migration.entity.Claim;
5
import eu.dnetlib.data.claims.migration.entity.Project;
6
import eu.dnetlib.data.claimsDemo.QueryGenerator;
7
import eu.dnetlib.data.claimsDemo.SqlDAO;
8
import org.apache.log4j.Logger;
9

    
10
import java.sql.Array;
11
import java.sql.ResultSet;
12
import java.text.DateFormat;
13
import java.text.SimpleDateFormat;
14
import java.util.ArrayList;
15
import java.util.Date;
16
import java.util.List;
17
import java.util.UUID;
18

    
19
/**
20
 * Created by konstantina on 10/4/2017.
21
 */
22
public class FetchProjectHandler {
23
    private Logger log = Logger.getLogger(this.getClass());
24

    
25
    SqlDAO sqlDAO = null;
26
    QueryGenerator queryGenerator = null;
27

    
28
    public FetchProjectHandler(){
29

    
30
    }
31

    
32
    public Project fetchProjectById(String projectId) throws Exception {
33
        //System.out.println(queryGenerator.generateSelectProjectByIdQuery(projectId));
34
        ResultSet rs = sqlDAO.executePreparedQuery(queryGenerator.generateSelectProjectByIdQuery(projectId));
35

    
36
        Project project = fetchProjectByResultSet(rs);
37
        if(project == null) {
38
            log.info("No project with id : "+ projectId+"\n");
39
        }
40

    
41
        return project;
42
    }
43

    
44
    public List<String> fetchContactEmailsByProjectId(String projectId) throws Exception {
45
        ResultSet rs = sqlDAO.executePreparedQuery(queryGenerator.generateSelectContactEmailsByProjectIdQuery(projectId));
46

    
47
        if(rs.next()) {
48
//            Array array = ((String[])rs.getArray(1));
49
            Array array = rs.getArray(1);
50
            String[] str_array = (String[])array.getArray();
51

    
52
            List<String> mails = new ArrayList<String>();
53
            for (int i=0; i<str_array.length; i++) {
54
                mails.add(str_array[i]);
55
            }
56
            return mails;
57
        }
58
        return null;
59
    }
60

    
61
    public void updateTokenByProjectId(String projectId, UUID newToken) throws Exception {
62
        sqlDAO.executeUpdateQuery(queryGenerator.generateUpdateTokenByProjectId(projectId, newToken));
63
    }
64

    
65
    public void updateContactEmailsByProjectId(String projectId, List<String> contactEmails) throws Exception {
66
        sqlDAO.executeUpdateQuery(queryGenerator.generateUpdateContactEmailsByProjectIdByProjectId(projectId, contactEmails));
67
    }
68

    
69
    public Project fetchProjectByResultSet(ResultSet rs) throws Exception {
70
        Project project = null;
71
        while(rs.next()) {
72
            project = new Project();
73
            project.setOpenaireId(rs.getString(1));
74
            project.setName(rs.getString(2));
75
            project.setAcronym(rs.getString(3));
76
            project.setFunderId(rs.getString(4));
77
            project.setFunderName(rs.getString(5));
78
            project.setFunderShortName(rs.getString(6));
79
            //project.setContactEmails((List<String>)rs.getArray(7));
80
        }
81
        return project;
82
    }
83

    
84
    public SqlDAO getSqlDAO() {
85
        return sqlDAO;
86
    }
87

    
88
    public void setSqlDAO(SqlDAO sqlDAO) {
89
        this.sqlDAO = sqlDAO;
90
    }
91

    
92
    public QueryGenerator getQueryGenerator() {
93
        return queryGenerator;
94
    }
95

    
96
    public void setQueryGenerator(QueryGenerator queryGenerator) {
97
        this.queryGenerator = queryGenerator;
98
    }
99
}
(7-7/11)