Project

General

Profile

1 36212 sandro.lab
/**
2
 *
3
 */
4
package eu.dnetlib.download.plugin;
5
6 40523 claudio.at
import java.util.ArrayList;
7
import java.util.List;
8
9 36212 sandro.lab
import com.google.common.base.Function;
10
import com.google.common.collect.Iterables;
11
import com.google.gson.Gson;
12 40045 sandro.lab
import eu.dnetlib.data.download.rmi.AbstractDownloadPlugin;
13 36212 sandro.lab
import eu.dnetlib.data.download.rmi.DownloadItem;
14
import eu.dnetlib.data.download.rmi.DownloadPlugin;
15 40523 claudio.at
import eu.dnetlib.data.download.rmi.DownloadPluginException;
16 40045 sandro.lab
import org.apache.commons.logging.Log;
17
import org.apache.commons.logging.LogFactory;
18 36212 sandro.lab
19
20
/**
21
 * @author sandro
22
 */
23
public class HALPdfDocumentPlugin extends AbstractDownloadPlugin implements DownloadPlugin {
24
25 40045 sandro.lab
    private static final Log log = LogFactory.getLog(HALPdfDocumentPlugin.class); // NOPMD by marko on 11/24/08 5:02 PM
26 36410 sandro.lab
27
28 40045 sandro.lab
    /**
29
     * {@inheritDoc}
30
     *
31
     * @see eu.dnetlib.data.download.rmi.DownloadPlugin#getPluginName()
32
     */
33
    @Override
34
    public String getPluginName() {
35
        // TODO Auto-generated method stub
36
        return "HALPdfDocumentPlugin";
37
    }
38 36212 sandro.lab
39 40045 sandro.lab
    /**
40
     * {@inheritDoc}
41
     *
42
     * @see eu.dnetlib.data.download.rmi.DownloadPlugin#retrieveUrls(java.lang.Iterable)
43
     */
44
    @Override
45
    public Iterable<DownloadItem> retrieveUrls(final Iterable<DownloadItem> urls) {
46
        return Iterables.transform(urls, new Function<DownloadItem, DownloadItem>() {
47 36212 sandro.lab
48 40045 sandro.lab
            @Override
49
            public DownloadItem apply(final DownloadItem input) {
50
                return retrieveUrl(input);
51
            }
52
        });
53
    }
54 36212 sandro.lab
55 40045 sandro.lab
    /**
56
     * {@inheritDoc}
57
     *
58
     * @see eu.dnetlib.data.download.rmi.DownloadPlugin#retrieveUrl(eu.dnetlib.data.download.rmi.DownloadItem)
59
     */
60
    @Override
61
    public DownloadItem retrieveUrl(final DownloadItem input) {
62
        try {
63
            if (checkOpenAccess(input) == null) return null;
64
            if (input == null) return null;
65
            String url = input.getOriginalUrl();
66 36212 sandro.lab
67 40045 sandro.lab
            if ((url == null) || (url.trim().length() == 0)) return input;
68
            @SuppressWarnings("unchecked")
69
            List<String> urls = new Gson().fromJson(url, ArrayList.class);
70
            if ((urls == null) || (urls.size() == 0)) return input;
71
            if (checkUrlsNotNull(input, urls)) return input;
72
            input.setOriginalUrl(null);
73
            input.setUrl(null);
74
            return input;
75
        } catch (Throwable e) {
76
            log.error("Error on retreiving URL", e);
77
            input.setOriginalUrl(null);
78
            input.setUrl(null);
79
            return input;
80
        }
81
    }
82 36212 sandro.lab
83 40045 sandro.lab
    /**
84
     * {@inheritDoc}
85
     *
86
     * @see eu.dnetlib.data.download.rmi.DownloadPlugin#setBasePath(java.lang.String)
87
     */
88
    @Override
89
    public void setBasePath(final String arg0) {
90
        // TODO Auto-generated method stub
91 36212 sandro.lab
92 40045 sandro.lab
    }
93 36212 sandro.lab
94 40045 sandro.lab
    @Override
95 40523 claudio.at
    public String extractURL(String baseURL) throws DownloadPluginException {
96 40045 sandro.lab
        return baseURL.toLowerCase().endsWith("document") ? baseURL : null;
97
    }
98 36212 sandro.lab
}