Project

General

Profile

1
package eu.dnetlib.data.collector.plugins.doiresolver;
2

    
3
import eu.dnetlib.data.collector.plugin.AbstractCollectorPlugin;
4
import eu.dnetlib.data.collector.plugin.CollectorPlugin;
5
import eu.dnetlib.data.collector.rmi.CollectorServiceException;
6
import eu.dnetlib.data.collector.rmi.InterfaceDescriptor;
7

    
8
public class DOIResolverPlugin extends AbstractCollectorPlugin implements CollectorPlugin {
9

    
10
    private CrossrefResolver crossrefResolver;
11

    
12
    @Override
13
    public Iterable<String> collect(final InterfaceDescriptor interfaceDescriptor, final String fromDate, final String untilDate) throws CollectorServiceException {
14
        final String baseUrl = interfaceDescriptor.getBaseUrl();
15
        if ((baseUrl == null) || baseUrl.isEmpty()) {
16
            throw new CollectorServiceException("Param 'baseurl' is null or empty");
17
        }
18
        if (fromDate != null && !fromDate.matches("\\d{4}-\\d{2}-\\d{2}")) { throw new CollectorServiceException("Invalid date (YYYY-MM-DD): " + fromDate); }
19
        return () -> new DOIResolverIterator(interfaceDescriptor.getBaseUrl(), crossrefResolver, fromDate);
20
    }
21

    
22
    public CrossrefResolver getCrossrefResolver() {
23
        return crossrefResolver;
24
    }
25

    
26
    public void setCrossrefResolver(CrossrefResolver crossrefResolver) {
27
        this.crossrefResolver = crossrefResolver;
28
    }
29
}
(4-4/4)