Project

General

Profile

1
package eu.dnetlib.dli.resolver;
2

    
3
import eu.dnetlib.dli.resolver.model.DLIResolvedObject;
4
import eu.dnetlib.pid.resolver.AbstractPIDResolver;
5
import org.apache.commons.io.IOUtils;
6
import org.apache.commons.logging.Log;
7
import org.apache.commons.logging.LogFactory;
8

    
9
import java.net.URL;
10

    
11
/**
12
 * Created by sandro on 3/6/17.
13
 */
14
public class ENAResolver extends AbstractPIDResolver {
15

    
16
    final static String link = "http://www.ebi.ac.uk/ena/data/view/%s&display=xml&download=xml&filename=%s.xml";
17
    private static final Log log = LogFactory.getLog(ENAResolver.class);
18

    
19
    @Override
20
    protected boolean canResolvePid(String pidType) {
21
        return pidType != null && pidType.toLowerCase().trim().equals("ena");
22
    }
23

    
24
    @Override
25
    protected DLIResolvedObject resolve(String pid, String pidType) {
26
        if (canResolvePid(pidType)) {
27
            try {
28
                URL r = new URL(String.format(link, pid, pid));
29
                final String xmlInput = IOUtils.toString(r.openStream());
30
                return new ENAParser().parser(xmlInput, pid, pidType);
31

    
32
            } catch (Throwable e) {
33
                log.debug(String.format("Error on resolving pid: %s pidType: %s ", pid, pidType), e);
34
                return null;
35
            }
36
        }
37

    
38
        return null;
39
    }
40
}
(9-9/16)