// License: GPL. For details, see LICENSE file. package reverter; import static org.openstreetmap.josm.tools.I18n.tr; import org.openstreetmap.josm.Main; import org.openstreetmap.josm.io.remotecontrol.PermissionPrefWithDefault; import org.openstreetmap.josm.io.remotecontrol.handler.RequestHandler; public class RevertChangesetHandler extends RequestHandler { public static final String command = "revert_changeset"; public static final String permissionKey = "remotecontrol.permission.revert_changeset"; public static final boolean permissionDefault = true; private int changesetId; @Override protected void handleRequest() throws RequestHandlerErrorException, RequestHandlerBadRequestException { try { Main.worker.submit(new RevertChangesetTask(changesetId, ChangesetReverter.RevertType.FULL, true)); } catch (Exception ex) { System.out.println("RemoteControl: Error parsing revert_changeset remote control request:"); ex.printStackTrace(); throw new RequestHandlerErrorException(ex); } } @Override public String[] getMandatoryParams() { return new String[] {"id"}; } @Override public PermissionPrefWithDefault getPermissionPref() { return null; } @Override public String getPermissionMessage() { return tr("Remote Control has been asked to revert a changeset."); } @Override protected void validateRequest() throws RequestHandlerBadRequestException { try { changesetId = Integer.parseInt(args.get("id")); } catch (NumberFormatException e) { throw new RequestHandlerBadRequestException("NumberFormatException: "+e.getMessage()); } } }