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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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