Project

General

Profile

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

    
3
import eu.dnetlib.data.claims.migration.entity.Result;
4
import eu.dnetlib.data.claims.migration.parser.ExternalRecordParser;
5
import eu.dnetlib.data.claimsDemo.SearchUtils;
6

    
7
import java.io.IOException;
8

    
9
/**
10
 * Created by kiatrop on 8/2/2016.
11
 */
12
public class ExternalRecordHandler {
13

    
14
    SearchUtils searchUtils;
15
    ExternalRecordParser externalRecordParser = null;
16

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

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

    
29
    }
30

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

    
34
    }
35

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

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

    
43
        return result;
44
    }
45

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

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

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

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

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

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

    
74
}
(6-6/15)