package mediawiki.request; import java.util.HashMap; import java.util.Map; import util.Util; import mediawiki.info.Article; import mediawiki.request.generic.IndirectContinuingRequest; import javat.xml.Element; public class LinkshereRequest extends IndirectContinuingRequest<Article> { public LinkshereRequest(String a) { super(new String[]{"pages","page","linkshere"}, "lh", "lh"); setProperty("titles", a); } public LinkshereRequest(Article a) { this(a.getTitle()); } public LinkshereRequest(String a, boolean redirect, Integer...namespaces) { this(a); setProperty("lhshow", (redirect ? "" : "!")+"redirect" ); if(namespaces.length > 0) setProperty("lhnamespace", Util.implode(namespaces, "|")); } public LinkshereRequest(Article a, boolean redirect, Integer...namespaces) { this(a.getTitle(), redirect, namespaces); } @Override protected Article parse(Element e) { return Article.convert(e); } @Override protected Map<? extends String, ? extends String> getRequiredParameters() { HashMap<String,String> h = new HashMap<>(); h.put("action", "query"); h.put("prop", "linkshere"); return h; } }