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.SQLStoreException;
8
import eu.dnetlib.data.claimsDemo.SqlDAO;
9
import org.apache.log4j.Logger;
10

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

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

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

    
29
    public FetchProjectHandler(){
30

    
31
    }
32

    
33
    public String fetchProjectIdByToken(String token, String email) throws Exception, SQLStoreException {
34
        String openaireId = null;
35
        ArrayList<Object> params = new ArrayList<>();
36
        String query = queryGenerator.generateSelectProjectIdByTokenQuery(token, email, params);
37
        ResultSet rs = sqlDAO.executePreparedQuery(query, params);
38

    
39
        if(rs.next()) {
40
            openaireId = rs.getString(1);
41
        }
42
        rs.close();
43
        return openaireId;
44
    }
45

    
46
    public Project fetchProjectById(String projectId) throws Exception, SQLStoreException {
47
        ArrayList<Object> params = new ArrayList<>();
48
        String query = queryGenerator.generateSelectProjectByIdQuery(projectId, params);
49
        ResultSet rs = sqlDAO.executePreparedQuery(query, params);
50

    
51
        Project project = fetchProjectByResultSet(rs);
52
        if(project == null) {
53
            log.info("No project with id : "+ projectId+"\n");
54
        }
55

    
56
        return project;
57
    }
58

    
59
    public List<String> fetchContactEmailsByProjectId(String projectId) throws Exception, SQLStoreException {
60
        ArrayList<Object> params = new ArrayList<>();
61
        String query = queryGenerator.generateSelectContactEmailsByProjectIdQuery(projectId, params);
62
        ResultSet rs = sqlDAO.executePreparedQuery(query, params);
63

    
64
        if(rs.next()) {
65
//            Array array = ((String[])rs.getArray(1));
66
            Array array = rs.getArray(1);
67
            if(array != null) {
68
                String[] str_array = (String[]) array.getArray();
69

    
70
                List<String> mails = new ArrayList<String>();
71
                for (int i = 0; i < str_array.length; i++) {
72
                    mails.add(str_array[i]);
73
                }
74
                return mails;
75
            }
76
        }
77
        return null;
78
    }
79

    
80
    public Project fetchProjectByResultSet(ResultSet rs) throws Exception {
81
        Project project = null;
82
        while(rs.next()) {
83
            project = new Project();
84
            project.setOpenaireId(rs.getString(1));
85
            project.setName(rs.getString(2));
86
            project.setAcronym(rs.getString(3));
87
            project.setFunderId(rs.getString(4));
88
            project.setFunderName(rs.getString(5));
89
            project.setFunderShortName(rs.getString(6));
90
            //project.setContactEmails((List<String>)rs.getArray(7));
91
        }
92
        return project;
93
    }
94

    
95
    public SqlDAO getSqlDAO() {
96
        return sqlDAO;
97
    }
98

    
99
    public void setSqlDAO(SqlDAO sqlDAO) {
100
        this.sqlDAO = sqlDAO;
101
    }
102

    
103
    public QueryGenerator getQueryGenerator() {
104
        return queryGenerator;
105
    }
106

    
107
    public void setQueryGenerator(QueryGenerator queryGenerator) {
108
        this.queryGenerator = queryGenerator;
109
    }
110
}
(8-8/12)