Project

General

Profile

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

    
3
import eu.dnetlib.data.claims.entity.Result;
4
import eu.dnetlib.data.claims.parser.ExternalRecordParser;
5
import eu.dnetlib.data.claims.utils.SearchUtils;
6
import org.springframework.beans.factory.annotation.Autowired;
7

    
8
/**
9
 * Created by kiatrop on 8/2/2016.
10
 */
11
public class ExternalRecordHandler {
12
//@Autowired
13
    SearchUtils searchUtils;
14
    ExternalRecordParser externalRecordParser = null;
15

    
16
    private String fetchCrossrefRecord(String doi) {
17
        return searchUtils.getCrossrefJsonRecord(doi);
18
    }
19

    
20
    /**
21
     * @param id of author - not the full one with work
22
     * @return
23
     * @throws Exception
24
     */
25
    private String fetchOrcidRecord(String id) throws Exception {
26
        return searchUtils.fetchResultXMLFromOrcid(id);
27

    
28
    }
29

    
30
    private String fetchDataciteRecord(String id) throws Exception {
31
        return searchUtils.fetchResultXMLFromDatacite(id);
32

    
33
    }
34

    
35
    public Result fetchResultfromCrossref(String doi) {
36
        return externalRecordParser.crossref2Result(fetchCrossrefRecord(doi));
37
    }
38

    
39
    public Result fetchResultfromOrcid(String id) throws Exception {
40
        Result result = externalRecordParser.orcid2Result(fetchOrcidRecord(id), id);
41

    
42
        return result;
43
    }
44

    
45
    public Result fetchResultfromDatacite(String id) throws Exception {
46
        return externalRecordParser.dataciteJson2Result(fetchDataciteRecord(id));
47
    }
48

    
49
    public SearchUtils getSearchUtils() {
50
        return searchUtils;
51
    }
52

    
53
    public void setSearchUtils(SearchUtils searchUtils) {
54
        this.searchUtils = searchUtils;
55
    }
56

    
57
    public ExternalRecordParser getExternalRecordParser() {
58
        return externalRecordParser;
59
    }
60

    
61
    public void setExternalRecordParser(ExternalRecordParser externalRecordParser) {
62
        this.externalRecordParser = externalRecordParser;
63
    }
64

    
65
    public static void main(String[] args) throws Exception {
66
        ExternalRecordHandler externalRecordHandler = new ExternalRecordHandler();
67
        ExternalRecordParser externalRecordParser = new ExternalRecordParser();
68
        externalRecordHandler.setExternalRecordParser(externalRecordParser);
69
        Result r= externalRecordHandler.fetchResultfromDatacite("10.5281/ZENODO.54730");
70
        System.out.println(r.toString());
71
    }
72

    
73
}
(4-4/12)