/* * 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 Embedded In pages. */ public class EmbeddedInCallable extends MediaWikiCallable<List<Page>> { private final Page page; private final List<Integer> namespaces; private final boolean limit; /** * @param wikipedia Wikipedia. * @param listener Listener of MediaWiki events. * @param api MediaWiki API. * @param page Page. * @param namespaces List of name spaces to look into. * @param limit Flag indicating if the number of results should be limited. */ public EmbeddedInCallable( EnumWikipedia wikipedia, MediaWikiListener listener, API api, Page page, List<Integer> namespaces, boolean limit) { super(wikipedia, listener, api); this.page = page; this.namespaces = namespaces; this.limit = limit; } /* (non-Javadoc) * @see java.util.concurrent.Callable#call() */ @Override public List<Page> call() throws APIException { setText(GT._("Retrieving page usage") + " - " + page.getTitle()); api.retrieveEmbeddedIn(getWikipedia(), page, namespaces, limit); return page.getRelatedPages(Page.RelatedPages.EMBEDDED_IN); } }