Project

General

Profile

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

    
3
import eu.dnetlib.data.claims.migration.entity.Context;
4
import eu.dnetlib.data.claims.migration.parser.DMFParser;
5
import eu.dnetlib.data.claimsDemo.ContextUtils;
6
import eu.dnetlib.data.claimsDemo.QueryGenerator;
7
import eu.dnetlib.data.claimsDemo.SqlDAO;
8
import org.xml.sax.SAXException;
9

    
10
import javax.xml.parsers.ParserConfigurationException;
11
import javax.xml.xpath.XPathExpressionException;
12
import java.io.IOException;
13
import java.sql.ResultSet;
14

    
15
/**
16
 * Created by kiatrop on 5/2/2016.
17
 */
18
public class DMFContextHandler {
19

    
20
    SqlDAO sqlDAO = null;
21
    QueryGenerator queryGenerator = null;
22
    DMFParser dmfParser = null;
23

    
24
    private String fetchAllDMFContext(String id) throws Exception {
25
        ResultSet rs = sqlDAO.executePreparedQuery(queryGenerator.generateSelectConceptDMFClaimsQuery(-1));
26
        return rs.getString("xml");
27
    }
28
    private String fetchDMFContext(String id) throws Exception {
29
        ResultSet rs = sqlDAO.executePreparedQuery(queryGenerator.generateSelectConceptClaimByIdQuery(id));
30
        return rs.getString("xml");
31
    }
32

    
33
    public Context extractContextFromDMF(String xml) throws ParserConfigurationException, SAXException, XPathExpressionException, IOException {
34
        return fetchContextById(dmfParser.getContextIdFromDMF(xml));
35
    }
36

    
37
    public Context fetchContextByIdFromDmf(String id) throws Exception {
38
        return extractContextFromDMF(fetchDMFContext(id));
39
    }
40

    
41
    static public Context fetchContextById(String openaireId) {
42
        Context context = new Context();
43
        if(openaireId == null ){
44
            return null;
45
        }
46
        context.setOpenaireId(openaireId);
47
        try {
48
            context.setTitle(ContextUtils.extractEgiLabel(context.getOpenaireId()));
49

    
50
        } catch (Exception e) {
51
            e.printStackTrace();
52
            System.err.println("ContextUtils: Couldn't get Egi label for id " + context.getOpenaireId());
53
        }
54
        return context;
55

    
56
    }
57
/*    public String generateSaveQueryForContext(Context context){
58

    
59
        return queryGenerator.generateInsertContextQuery(context.getOpenaireId(),context.getTitle());
60
    }
61

    
62
    public void saveContext(Context context) throws Exception {
63

    
64
        sqlDAO.executePreparedQuery(generateSaveQueryForContext(context));
65
    }*/
66

    
67
    public SqlDAO getSqlDAO() {
68
        return sqlDAO;
69
    }
70

    
71
    public void setSqlDAO(SqlDAO sqlDAO) {
72
        this.sqlDAO = sqlDAO;
73
    }
74

    
75
    public QueryGenerator getQueryGenerator() {
76
        return queryGenerator;
77
    }
78

    
79
    public void setQueryGenerator(QueryGenerator queryGenerator) {
80
        this.queryGenerator = queryGenerator;
81
    }
82

    
83
    public DMFParser getDmfParser() {
84
        return dmfParser;
85
    }
86

    
87
    public void setDmfParser(DMFParser dmfParser) {
88
        this.dmfParser = dmfParser;
89
    }
90
}
(3-3/10)