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

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

    
17
/**
18
 * Created by kiatrop on 5/2/2016.
19
 */
20
public class DMFContextHandler {
21
    private static Logger log = Logger.getLogger(DMFContextHandler.class );
22

    
23
    SqlDAO sqlDAO = null;
24
    QueryGenerator queryGenerator = null;
25
    DMFParser dmfParser = null;
26

    
27
    private String fetchAllDMFContext(String id) throws Exception, SQLStoreException {
28
        ResultSet rs = sqlDAO.executePreparedQuery(queryGenerator.generateSelectConceptDMFClaimsQuery(-1));
29
        return rs.getString("xml");
30
    }
31

    
32
    private String fetchDMFContext(String id) throws Exception, SQLStoreException {
33
        ResultSet rs = sqlDAO.executePreparedQuery(queryGenerator.generateSelectConceptClaimByIdQuery(id));
34
        return rs.getString("xml");
35
    }
36

    
37
    public Context extractContextFromDMF(String xml) throws ParserConfigurationException, SAXException, XPathExpressionException, IOException {
38
        return fetchContextById(dmfParser.getContextIdFromDMF(xml));
39
    }
40

    
41
    public Context fetchContextByIdFromDmf(String id) throws Exception, SQLStoreException {
42
        return extractContextFromDMF(fetchDMFContext(id));
43
    }
44

    
45
    public static Context fetchContextById(String openaireId) {
46
        Context context = new Context();
47
        if(openaireId == null ){
48
            return null;
49
        }
50
        context.setOpenaireId(openaireId);
51
        try {
52
            context.setTitle(ContextUtils.extractLabel(context.getOpenaireId()));
53

    
54
        } catch (Exception e) {
55
            log.error("ContextUtils: Couldn't get Egi label for id " + context.getOpenaireId(),e);
56
        }
57
        return context;
58

    
59
    }
60
/*    public String generateSaveQueryForContext(Context context){
61

    
62
        return queryGenerator.generateInsertContextQuery(context.getOpenaireId(),context.getTitle());
63
    }
64

    
65
    public void saveContext(Context context) throws Exception {
66

    
67
        sqlDAO.executePreparedQuery(generateSaveQueryForContext(context));
68
    }*/
69

    
70
    public SqlDAO getSqlDAO() {
71
        return sqlDAO;
72
    }
73

    
74
    public void setSqlDAO(SqlDAO sqlDAO) {
75
        this.sqlDAO = sqlDAO;
76
    }
77

    
78
    public QueryGenerator getQueryGenerator() {
79
        return queryGenerator;
80
    }
81

    
82
    public void setQueryGenerator(QueryGenerator queryGenerator) {
83
        this.queryGenerator = queryGenerator;
84
    }
85

    
86
    public DMFParser getDmfParser() {
87
        return dmfParser;
88
    }
89

    
90
    public void setDmfParser(DMFParser dmfParser) {
91
        this.dmfParser = dmfParser;
92
    }
93
}
(3-3/12)