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

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

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

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

    
27
    }
28

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

    
32
    }
33

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

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

    
41
        return result;
42
    }
43

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

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

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

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

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

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

    
72
}
(4-4/13)