/*
* WPCleaner: A tool to help on Wikipedia maintenance tasks.
* Copyright (C) 2013 Nicolas Vervelle
*
* See README.txt file for licensing information.
*/
package org.wikipediacleaner.api.execution;
import java.util.List;
import org.wikipediacleaner.api.API;
import org.wikipediacleaner.api.APIException;
import org.wikipediacleaner.api.MediaWikiListener;
import org.wikipediacleaner.api.constants.EnumWikipedia;
import org.wikipediacleaner.api.data.Page;
import org.wikipediacleaner.i18n.GT;
/**
* A Callable implementation for retrieving Links with Redirects.
*/
public class LinksWRCallable extends MediaWikiCallable<Page> {
private final Page page;
private final Integer namespace;
private final List<Page> knownPages;
private final boolean disambigNeeded;
/**
* @param wikipedia Wikipedia.
* @param listener Listener of MediaWiki events.
* @param api MediaWiki API.
* @param page Page.
* @param namespace If set, retrieve only links in this namespace.
* @param knownPages Already known pages.
* @param disambigNeeded True if disambiguation information is needed.
*/
public LinksWRCallable(
EnumWikipedia wikipedia, MediaWikiListener listener, API api,
Page page, Integer namespace, List<Page> knownPages,
boolean disambigNeeded) {
super(wikipedia, listener, api);
this.page = page;
this.namespace = namespace;
this.knownPages = knownPages;
this.disambigNeeded = disambigNeeded;
}
/* (non-Javadoc)
* @see java.util.concurrent.Callable#call()
*/
@Override
public Page call() throws APIException {
setText(GT._("Retrieving page links") + " - " + page.getTitle());
api.retrieveLinks(getWikipedia(), page, namespace, knownPages, true, disambigNeeded);
return page;
}
}