package mediawiki.request.wikibase; import java.util.Map.Entry; import mediawiki.MediaWikiConnection; import mediawiki.MediaWikiPostRequest; import mediawiki.MediaWikiRequest; import mediawiki.info.Language; import mediawiki.info.wikibase.TranslatedContent; import mediawiki.request.ManipulativeRequest; import mediawiki.request.TokenRequest; public class SetLabelRequest extends MediaWikiRequest implements ManipulativeRequest { private TranslatedContent<String> labels; @Deprecated public SetLabelRequest(String base, String language, String label){ this(base, new Language(language), label); } @Deprecated public SetLabelRequest(String base, String language, String label, String summary){ this(base, new Language(language), label, summary); } public SetLabelRequest(String base, Language language, String label){ this(base, language, label, ""); } public SetLabelRequest(String base, Language language, String label, String summary){ this(base, new TranslatedContent<String>(language, label), summary); } public SetLabelRequest(String base, TranslatedContent<String> labels, String summary){ setProperty("id", base); setProperty("summary", summary); this.labels = labels; } @Override public Object request(MediaWikiConnection c) throws Exception { for(Entry<Language, String> e : labels){ String token = (String) c.request(new TokenRequest()); MediaWikiPostRequest p = new MediaWikiPostRequest(c); p.putData(getProperties()); p.putData("action", "wbsetlabel"); p.putData("language", e.getKey().getName()); p.putData("value", e.getValue()); p.putData("token", token); p.requestDocument(); } return null; } }