Project

General

Profile

1
package eu.dnetlib.dli.resolver;
2

    
3
import eu.dnetlib.dli.resolver.model.CompletionStatus;
4
import eu.dnetlib.dli.resolver.model.DLIObjectProvenance;
5
import eu.dnetlib.dli.resolver.model.DLIResolvedObject;
6
import eu.dnetlib.pid.resolver.AbstractPIDResolver;
7
import org.springframework.beans.factory.annotation.Autowired;
8

    
9
import java.util.Arrays;
10

    
11
/**
12
 * Created by sandro on 9/26/16.
13
 */
14
public class NCBINResolver extends AbstractPIDResolver {
15

    
16
	private final static String baseUrl =
17
			"https://www.ncbi.nlm.nih.gov/sviewer/viewer.fcgi?db=nuccore&val=%s&page_size=5&fmt_mask=0&report=gbx&retmode=text&page=1&page_size=1";
18

    
19
	private final static String NCBI_NSPREFIX = "r3d100010778";
20

    
21
	@Autowired
22
	private NCBINParser NCBINParser;
23

    
24
	@Override
25
	public boolean canResolvePid(final String pidType) {
26
		return pidType != null && (pidType.toLowerCase().equals("protein") || pidType.toLowerCase().equals("ncbi-n"));
27
	}
28

    
29
	@Override
30
    public DLIResolvedObject resolve(final String pid, final String pidType) {
31

    
32
		if ((pid == null))
33
			return null;
34
        final DLIResolvedObject record = NCBINParser.parseRecord(requestURL(String.format(baseUrl, pid)));
35
        if (record != null) {
36
			record.setPid(pid);
37
			record.setPidType(pidType);
38
			record.setCompletionStatus(CompletionStatus.complete.toString());
39
            DLIObjectProvenance provenance = new DLIObjectProvenance();
40
            DLIPIDResolver.setDatasourceProvenance(provenance, NCBI_NSPREFIX);
41
            record.setDatasourceProvenance(Arrays.asList(provenance));
42
		}
43
		return record;
44
	}
45

    
46
	public NCBINParser getNCBINParser() {
47
		return NCBINParser;
48
	}
49

    
50
	public void setNCBINParser(final NCBINParser NCBINParser) {
51
		this.NCBINParser = NCBINParser;
52
	}
53
}
(10-10/15)