package mediawiki.request.wikibase;
import java.util.ArrayList;
import javat.xml.Document;
import javat.xml.Element;
import mediawiki.MediaWikiConnection;
import mediawiki.MediaWikiPostRequest;
import mediawiki.MediaWikiRequest;
import mediawiki.info.wikibase.TranslatedContent;
public class GetAliasesRequest extends MediaWikiRequest<TranslatedContent<ArrayList<String>>> {
public GetAliasesRequest(String base, String...languages){
setProperty("ids", base);
String langs = "";
for(String l : languages){
langs += "|"+l;
}
langs = langs.substring(1);
setProperty("languages", langs);
}
@Override
public TranslatedContent<ArrayList<String>> request(MediaWikiConnection c) throws Exception {
MediaWikiPostRequest p = new MediaWikiPostRequest(c);
p.putData(getProperties());
p.putData("action", "wbgetentities");
p.putData("props", "aliases");
Document d = p.requestDocument();
TranslatedContent<ArrayList<String>> aliases = new TranslatedContent<>();
for(Element e : d.getRootElement().getChildren("entities").get(0).getChildren("entity").get(0).getChildren("aliases").get(0).getChildren("alias")){
ArrayList<String> vs;
if(aliases.get(e.getAttribute("language").getValue()) == null){
vs = new ArrayList<>();
}else{
vs = aliases.get(e.getAttribute("language").getValue());
}
vs.add(e.getAttribute("value").getValue());
aliases.put(e.getAttribute("language").getValue(), vs);
}
return aliases;
}
}