package org.jabref.logic.importer.fetcher;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.Optional;
import org.jabref.logic.importer.FetcherException;
import org.jabref.logic.importer.ImportFormatPreferences;
import org.jabref.model.entry.BibEntry;
import org.jsoup.helper.StringUtil;
/**
* Fetcher for ISBN trying ebook.de first and then chimbori.com
*/
public class IsbnFetcher extends AbstractIsbnFetcher {
public IsbnFetcher(ImportFormatPreferences importFormatPreferences) {
super(importFormatPreferences);
}
@Override
public String getName() {
return "ISBN";
}
/**
* Method never used
*/
@Override
public URL getURLForID(String identifier) throws URISyntaxException, MalformedURLException, FetcherException {
return null;
}
@Override
public Optional<BibEntry> performSearchById(String identifier) throws FetcherException {
if (StringUtil.isBlank(identifier)) {
return Optional.empty();
}
this.ensureThatIsbnIsValid(identifier);
IsbnViaEbookDeFetcher isbnViaEbookDeFetcher = new IsbnViaEbookDeFetcher(importFormatPreferences);
Optional<BibEntry> bibEntry = isbnViaEbookDeFetcher.performSearchById(identifier);
// nothing found at ebook.de, try chimbori.com
if (!bibEntry.isPresent()) {
IsbnViaChimboriFetcher isbnViaChimboriFetcher = new IsbnViaChimboriFetcher(importFormatPreferences);
bibEntry = isbnViaChimboriFetcher.performSearchById(identifier);
}
return bibEntry;
}
@Override
public void doPostCleanup(BibEntry entry) {
// no action needed
}
}