Project

General

Profile

1
package eu.dnetlib.download.plugin;
2

    
3
import java.util.ArrayList;
4
import java.util.List;
5

    
6
import com.google.common.base.Function;
7
import com.google.common.collect.Iterables;
8
import com.google.gson.Gson;
9
import eu.dnetlib.data.download.rmi.AbstractDownloadPlugin;
10
import eu.dnetlib.data.download.rmi.DownloadItem;
11
import eu.dnetlib.data.download.rmi.DownloadPlugin;
12
import eu.dnetlib.data.download.rmi.DownloadPluginException;
13

    
14
/**
15
 * The Class EasyPDFDownloadPlugin.
16
 */
17
public class EasyPDFDownloadPlugin extends AbstractDownloadPlugin implements DownloadPlugin {
18

    
19
    /*
20
     * (non-Javadoc)
21
     *
22
     * @see eu.dnetlib.data.download.rmi.DownloadPlugin#retrieveUrl(eu.dnetlib.data.download.rmi.DownloadItem)
23
     */
24
    @Override
25
    public DownloadItem retrieveUrl(final DownloadItem input) {
26
        if (checkOpenAccess(input) == null) {
27
            return null;
28
        }
29
        if (input == null) {
30
            return null;
31
        }
32
        String url = input.getOriginalUrl();
33

    
34
        if (url == null || url.trim().length() == 0) {
35
            return input;
36
        }
37
        @SuppressWarnings("unchecked")
38
        List<String> urls = new Gson().fromJson(url, ArrayList.class);
39
        if (urls == null || urls.size() == 0) {
40
            return input;
41
        }
42
        if (checkUrlsNotNull(input, urls))
43
            return input;
44
        input.setOriginalUrl(null);
45
        input.setUrl(null);
46
        return input;
47
    }
48

    
49
    @Override
50
    public Iterable<DownloadItem> retrieveUrls(final Iterable<DownloadItem> urls) {
51
        return Iterables.transform(urls, new Function<DownloadItem, DownloadItem>() {
52

    
53
            @Override
54
            public DownloadItem apply(final DownloadItem input) {
55
                return retrieveUrl(input);
56
            }
57
        });
58
    }
59

    
60
    /*
61
     * (non-Javadoc)
62
     *
63
     * @see eu.dnetlib.data.download.rmi.DownloadPlugin#getPluginName()
64
     */
65
    @Override
66
    public String getPluginName() {
67
        return "easyPDFDownloadPlugin";
68
    }
69

    
70
    @Override
71
    public void setBasePath(final String basePath) {
72
        // TODO Auto-generated method stub
73

    
74
    }
75

    
76
    @Override
77
    public String extractURL(String baseURL) throws DownloadPluginException {
78
        return baseURL.endsWith(".pdf") ? baseURL : null;
79
    }
80
}
(6-6/12)