package mediawiki.request.wikibase; import org.json.JSONException; import javat.xml.Document; import mediawiki.MediaWikiConnection; import mediawiki.MediaWikiPostRequest; import mediawiki.MediaWikiRequest; import mediawiki.info.wikibase.Entity; import mediawiki.request.ManipulativeRequest; import mediawiki.request.TokenRequest; public class EditEntityRequest extends MediaWikiRequest<Entity> implements ManipulativeRequest { public EditEntityRequest(Entity e) throws JSONException { setProperty("data", e.toJSONObject().toString()); if(e.getLastRevID() != null) setProperty("baserevid", e.getLastRevID()); if(e.getID() != null) setProperty("id", e.getID()); } public EditEntityRequest(Entity e, String summary) throws JSONException { this(e); setProperty("summary", summary); } @Override public Entity request(MediaWikiConnection c) throws Exception { MediaWikiPostRequest p = new MediaWikiPostRequest(c); p.putData(getProperties()); p.putData("action", "wbeditentity"); p.putData("token", c.request(new TokenRequest())); Document d = p.requestDocument(); return new Entity(d.getRootElement().getChildren("entity").get(0)); } }